From a4e693aa9d01dafe4f61c5506d3d860bfc2b603a Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 7 Dec 2018 11:29:39 +0100 Subject: [PATCH 001/192] Switched checkout_atlasexternals.sh to not use any authentication. The atlas/atlasexternals repository has been open to the public since a very long time. To make the build process a little more robust, let's not use any authentication for checking out that repository. --- Build/AtlasBuildScripts/checkout_atlasexternals.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Build/AtlasBuildScripts/checkout_atlasexternals.sh b/Build/AtlasBuildScripts/checkout_atlasexternals.sh index 144719018741..ed81eb02514d 100755 --- a/Build/AtlasBuildScripts/checkout_atlasexternals.sh +++ b/Build/AtlasBuildScripts/checkout_atlasexternals.sh @@ -23,8 +23,8 @@ usage() { echo " AtlasExternals_URL and AtlasExternals_REF to override" echo " other values (even those on the command line)." echo " If AtlasExternals_URL is set to 'current' then" - echo " no clone or checkout is done and the working copy" - echo " in the source directory is left untouched." + echo " no clone or checkout is done and the working copy" + echo " in the source directory is left untouched." } _max_retry_=5 @@ -46,7 +46,7 @@ _retry_ () { # Parse the command line arguments: TAGBRANCH="" SOURCEDIR="" -EXTERNALSURL="https://:@gitlab.cern.ch:8443/atlas/atlasexternals.git" +EXTERNALSURL="https://gitlab.cern.ch/atlas/atlasexternals.git" while getopts ":t:o:s:e:h" opt; do case $opt in t) -- GitLab From 3632b6e57a6769d63594a604906bb704b9858449 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 13 Dec 2018 16:48:42 +0100 Subject: [PATCH 002/192] Defined comparison operators for ElementLink and ElementLinkVector. The xAODTrigger code's unit tests need these operators, and they should've been defined a long time ago anyway... --- Control/AthLinksSA/AthLinks/ElementLink.h | 5 +++++ Control/AthLinksSA/AthLinks/ElementLink.icc | 12 ++++++++++ .../AthLinksSA/AthLinks/ElementLinkVector.h | 5 +++++ .../AthLinksSA/AthLinks/ElementLinkVector.icc | 22 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/Control/AthLinksSA/AthLinks/ElementLink.h b/Control/AthLinksSA/AthLinks/ElementLink.h index 6793225b3379..e5b9d36f5f93 100644 --- a/Control/AthLinksSA/AthLinks/ElementLink.h +++ b/Control/AthLinksSA/AthLinks/ElementLink.h @@ -154,6 +154,11 @@ public: /// Get the key that we reference, as a hash sgkey_t key() const { return persKey(); } + /// Comparison operator + bool operator==( const ElementLink& rhs ) const; + /// Comparison operator + bool operator!=( const ElementLink& rhs ) const; + /// Get a reference to the object in question ElementConstReference operator*() const; diff --git a/Control/AthLinksSA/AthLinks/ElementLink.icc b/Control/AthLinksSA/AthLinks/ElementLink.icc index da4ef6b421cc..56357d164e7a 100644 --- a/Control/AthLinksSA/AthLinks/ElementLink.icc +++ b/Control/AthLinksSA/AthLinks/ElementLink.icc @@ -381,6 +381,18 @@ ElementLink< STORABLE >::dataID() const { return m_event->getName( persKey() ); } +template< typename STORABLE > +bool ElementLink< STORABLE >::operator==( const ElementLink& rhs ) const { + + return ( ( key() == rhs.key() ) && ( index() == rhs.index() ) ); +} + +template< typename STORABLE > +bool ElementLink< STORABLE >::operator!=( const ElementLink& rhs ) const { + + return ( ! ( *this == rhs ) ); +} + template< typename STORABLE > typename ElementLink< STORABLE >::ElementConstReference ElementLink< STORABLE >::operator*() const { diff --git a/Control/AthLinksSA/AthLinks/ElementLinkVector.h b/Control/AthLinksSA/AthLinks/ElementLinkVector.h index f3a32b0cd0c3..051f57a9cd2a 100644 --- a/Control/AthLinksSA/AthLinks/ElementLinkVector.h +++ b/Control/AthLinksSA/AthLinks/ElementLinkVector.h @@ -79,6 +79,11 @@ public: /// Assignment operator ElemLinkVec& operator=( const ElemLinkVec& rhs ); + /// Comparison operator + bool operator==( const ElementLinkVector& rhs ) const; + /// Comparison operator + bool operator!=( const ElementLinkVector& rhs ) const; + /// @name Vector iterator functions /// @{ diff --git a/Control/AthLinksSA/AthLinks/ElementLinkVector.icc b/Control/AthLinksSA/AthLinks/ElementLinkVector.icc index 2fc137a49164..9767c09ee224 100644 --- a/Control/AthLinksSA/AthLinks/ElementLinkVector.icc +++ b/Control/AthLinksSA/AthLinks/ElementLinkVector.icc @@ -51,6 +51,28 @@ ElementLinkVector< CONTAINER >::operator=( const ElemLinkVec& rhs ) { return *this; } +template< class CONTAINER > +bool ElementLinkVector< CONTAINER >:: +operator==( const ElementLinkVector& rhs ) const { + + if( m_elVec.size() != rhs.m_elVec.size() ) { + return false; + } + for( std::size_t i = 0; i < m_elVec.size(); ++i ) { + if( m_elVec[ i ] != rhs.m_elVec[ i ] ) { + return false; + } + } + return true; +} + +template< class CONTAINER > +bool ElementLinkVector< CONTAINER >:: +operator!=( const ElementLinkVector& rhs ) const { + + return ( ! ( *this == rhs ) ); +} + //////////////////////////////////////////////////////////////////////////////// // // Implementation of the vector capacity functions -- GitLab From b9da5f96f35dfb76bf8e4eb0334483589fb0e31f Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 13 Dec 2018 16:50:45 +0100 Subject: [PATCH 003/192] Hid the decorator handle definitions in XAOD_STANDALONE mode. We will have to see how to handle the StoreGate handles in the analysis releases. But for now let's just not handle them at all. --- .../xAODCaloRings/CaloRingsContainer.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h b/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h index d5726ae6690f..af428f334e07 100644 --- a/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h +++ b/Event/xAOD/xAODCaloRings/xAODCaloRings/CaloRingsContainer.h @@ -1,8 +1,7 @@ +// 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: CaloRingsContainer.h 707323 2015-11-12 02:45:01Z wsfreund $ #ifndef XAODCALORINGS_CALORINGSCONTAINER_H #define XAODCALORINGS_CALORINGSCONTAINER_H @@ -11,8 +10,10 @@ // Core include(s): #include "AthLinks/ElementLink.h" -#include "StoreGate/ReadDecorHandle.h" -#include "StoreGate/WriteDecorHandle.h" +#ifndef XAOD_STANDALONE +# include "StoreGate/ReadDecorHandle.h" +# include "StoreGate/WriteDecorHandle.h" +#endif // XAOD_STANDALONE // Local include(s): #include "xAODCaloRings/CaloRings.h" @@ -27,10 +28,12 @@ typedef std::vector< ElementLink< CaloRingsContainer > > CaloRingsLinks; typedef SG::AuxElement::Decorator< xAOD::CaloRingsLinks > caloRingsDeco_t; /// The CaloRings element links reader type: typedef SG::AuxElement::ConstAccessor< xAOD::CaloRingsLinks > caloRingsReader_t; +#ifndef XAOD_STANDALONE /// The CaloRings element links write decorator type: template<typename T> using caloRingsDecoH_t = SG::WriteDecorHandle<T, CaloRingsLinks>; /// The CaloRings element links write decorator type: template<typename T> using caloRingsReaderH_t = SG::ReadDecorHandle<T, CaloRingsLinks>; +#endif // XAOD_STANDALONE } // namespace xAOD // Set up a CLID for the container: -- GitLab From f20799bd47636b7fa266b85bf7468b3038cb4d3c Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 13 Dec 2018 16:52:41 +0100 Subject: [PATCH 004/192] Added missing <iostream> includes to the code. In "standalone mode" upstream packages seem to pollute the build environment a bit less than the offline code does. :-P As a result, the missing include statement caused a build error in standalone mode. --- Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx | 3 +++ Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx b/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx index 80ffccbf5415..be60b1b14af8 100644 --- a/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx +++ b/Event/xAOD/xAODPrimitives/Root/getIsolationAccessor.cxx @@ -5,6 +5,9 @@ // Local include(s): #include "xAODPrimitives/tools/getIsolationAccessor.h" +// System include(s): +#include <iostream> + /// Helper macro for Accessor objects #define DEFINE_ACCESSOR(TYPE) \ case xAOD::Iso::TYPE: \ diff --git a/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx b/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx index 1db8e53a9f58..44a015b6202a 100644 --- a/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx +++ b/Event/xAOD/xAODPrimitives/Root/getIsolationDecorator.cxx @@ -1,10 +1,13 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ // Local include(s): #include "xAODPrimitives/tools/getIsolationDecorator.h" +// System include(s): +#include <iostream> + /// Helper macro for Accessor objects #define DEFINE_DECORATOR(TYPE) \ case xAOD::Iso::TYPE: \ -- GitLab From 4884b1b82c429e73b2a9507e4d12161222ad3376 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 13 Dec 2018 16:54:35 +0100 Subject: [PATCH 005/192] Removed the CLHEP dependence of the code. A dependence that was not even made explicit in the CMake configuration of the package. :-( And in any case, the value of pi can be retrieved much more easily than by using CLHEP... --- Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx | 28 +++++++++++-------- .../xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h | 14 +++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx b/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx index 6fb9aadadeed..dfa2402dbb5c 100644 --- a/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx +++ b/Event/xAOD/xAODTrigMuon/Root/TrigMuonDefs.cxx @@ -1,6 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +// Local include(s). #include "xAODTrigMuon/TrigMuonDefs.h" -#include <math.h> -#include <iostream> + +// System include(s). +#include <cmath> namespace xAOD{ @@ -10,19 +16,19 @@ namespace L2MuonParameters{ ECRegions whichECRegion( const float eta, const float phi ){ float absEta = fabs(eta); if( ( 1.3 <= absEta && absEta < 1.45) && - ( (0 <= fabs(phi) && fabs(phi) < CLHEP::pi/48. ) || - (CLHEP::pi*11./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*13./48. ) || - (CLHEP::pi*23./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*25./48. ) || - (CLHEP::pi*35./48. <= fabs(phi) && fabs(phi) < CLHEP::pi*37./48. ) || - (CLHEP::pi*47./48. <= fabs(phi) && fabs(phi) < CLHEP::pi ) + ( (0 <= fabs(phi) && fabs(phi) < M_PI/48. ) || + (M_PI*11./48. <= fabs(phi) && fabs(phi) < M_PI*13./48. ) || + (M_PI*23./48. <= fabs(phi) && fabs(phi) < M_PI*25./48. ) || + (M_PI*35./48. <= fabs(phi) && fabs(phi) < M_PI*37./48. ) || + (M_PI*47./48. <= fabs(phi) && fabs(phi) < M_PI ) ) ) return WeakBFieldA; else if( ( 1.5 <= absEta && absEta < 1.65 ) && - ( (CLHEP::pi*3./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*5./32. ) || - (CLHEP::pi*11./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*13./32.) || - (CLHEP::pi*19./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*21./32.) || - (CLHEP::pi*27./32. <= fabs(phi) && fabs(phi) < CLHEP::pi*29./32.) + ( (M_PI*3./32. <= fabs(phi) && fabs(phi) < M_PI*5./32. ) || + (M_PI*11./32. <= fabs(phi) && fabs(phi) < M_PI*13./32.) || + (M_PI*19./32. <= fabs(phi) && fabs(phi) < M_PI*21./32.) || + (M_PI*27./32. <= fabs(phi) && fabs(phi) < M_PI*29./32.) ) ) return WeakBFieldB; diff --git a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h index 434ab78233cd..564de979ed97 100644 --- a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h +++ b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/TrigMuonDefs.h @@ -1,22 +1,17 @@ // 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: TrigMuonDefs.h $ #ifndef XAODTRIGMUON_TRIGMUONDEFS_H #define XAODTRIGMUON_TRIGMUONDEFS_H -#include "CLHEP/Units/PhysicalConstants.h" - /// Namespace holding all the xAOD EDM classes namespace xAOD { namespace L2MuonParameters { - /// Define chamber types and locations + /// Define chamber types and locations enum Chamber { BarrelInner = 0, ///< Inner station in the barrel spectrometer BarrelMiddle = 1, ///< Middle station in the barrel spectrometer @@ -32,17 +27,16 @@ namespace L2MuonParameters MaxChamber = 11 ///< Number of measurement point definitions }; - /// Define algoriths ID + /// Define algoriths ID enum L2MuonAlgoId{GEV900ID=0, MUONID=1, HALOID=2, COSMICID=3, LOOSE_HM=10, MEDIUM_HM=11, TIGHT_HM=12, LOOSE_LM=13, MEDIUM_LM=14, TIGHT_LM=15, NULLID=99999}; enum ECRegions{ Bulk, WeakBFieldA, WeakBFieldB}; - + ECRegions whichECRegion( const float eta, const float phi ); } - } -- GitLab From 8659a50facde6c2d8be3a78fdc31eec4993f26cd Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 13 Dec 2018 16:58:14 +0100 Subject: [PATCH 006/192] Updated AnalysisBase to only build the core/edm packages for now. To lay the groundwork for future analysis release developments, updated the AnalysisBase project to only build the most essential packages for now. So that we could do some further development on top of this core later on. Removed the RootCore specific code from the project by now. It should really not survive into Run-3... --- Projects/AnalysisBase/CMakeLists.txt | 25 +------- .../modules/AnalysisBaseFunctions.cmake | 41 ------------ Projects/AnalysisBase/package_filters.txt | 63 +------------------ .../AnalysisBase/scripts/load_packages.C.in | 48 -------------- Projects/AnalysisBase/version.txt | 2 +- 5 files changed, 3 insertions(+), 176 deletions(-) delete mode 100644 Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake delete mode 100644 Projects/AnalysisBase/scripts/load_packages.C.in diff --git a/Projects/AnalysisBase/CMakeLists.txt b/Projects/AnalysisBase/CMakeLists.txt index add794f885d0..1a91179210d7 100644 --- a/Projects/AnalysisBase/CMakeLists.txt +++ b/Projects/AnalysisBase/CMakeLists.txt @@ -4,7 +4,7 @@ # # The minimum required CMake version: -cmake_minimum_required( VERSION 3.2 FATAL_ERROR ) +cmake_minimum_required( VERSION 3.6 FATAL_ERROR ) # Read in the project's version from a file called version.txt. But let it be # overridden from the command line if necessary. @@ -22,20 +22,6 @@ find_package( AnalysisBaseExternals REQUIRED ) # against Python to correct it. find_package( PythonInterp ) -# Add the project's modules directory to CMAKE_MODULE_PATH: -list( INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/modules ) -list( REMOVE_DUPLICATES CMAKE_MODULE_PATH ) - -# Install the files from modules/: -install( DIRECTORY ${CMAKE_SOURCE_DIR}/modules/ - DESTINATION cmake/modules - USE_SOURCE_PERMISSIONS - PATTERN ".svn" EXCLUDE - PATTERN "*~" EXCLUDE ) - -# Include the AnalysisBase specific function(s): -include( AnalysisBaseFunctions ) - # Set up the build/runtime environment: set( AnalysisBaseReleaseEnvironment_DIR ${CMAKE_SOURCE_DIR} ) find_package( AnalysisBaseReleaseEnvironment REQUIRED ) @@ -52,15 +38,6 @@ atlas_project( AnalysisBase ${ANALYSISBASE_PROJECT_VERSION} USE AnalysisBaseExternals ${AnalysisBaseExternals_VERSION} PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ ) -# Generate the RootCore/Packages.h header: -analysisbase_generate_release_header() - -# Set up the load_packages.C script: -configure_file( ${CMAKE_SOURCE_DIR}/scripts/load_packages.C.in - ${CMAKE_SCRIPT_OUTPUT_DIRECTORY}/load_packages.C @ONLY ) -install( FILES ${CMAKE_SCRIPT_OUTPUT_DIRECTORY}/load_packages.C - DESTINATION ${CMAKE_INSTALL_SCRIPTDIR} ) - # Configure and install the post-configuration file: configure_file( ${CMAKE_SOURCE_DIR}/PostConfig.cmake.in ${CMAKE_BINARY_DIR}/PostConfig.cmake @ONLY ) diff --git a/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake b/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake deleted file mode 100644 index 9e16d92bf967..000000000000 --- a/Projects/AnalysisBase/modules/AnalysisBaseFunctions.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# -# This module collects CMake functions that are useful when setting up an -# analysis release. -# - -# Function generating a RootCore/Packages.h header -# -# This function should be called in the main CMakeLists.txt file of the -# project, after the atlas_project(...) call, in order to generate a header file -# called "RootCore/Packages.h", in the format that RootCore generates it in. -# With one define statement per package that was found in he release. -# -# Usage: analysisbase_generate_release_header() -# -function( analysisbase_generate_release_header ) - - # Get the list of packages that were found: - get_property( _packages GLOBAL PROPERTY ATLAS_EXPORTED_PACKAGES ) - - # Generate a "RootCore/Package.h" file, in the same format that - # RootCore does/did: - set( _packagesFileName - ${CMAKE_BINARY_DIR}/RootCore/include/RootCore/Packages.h ) - file( MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/RootCore/include/RootCore ) - file( WRITE ${_packagesFileName} - "// Auto-generated file, please do not edit\n" - "#ifndef ROOTCORE_PACKAGES_H\n" - "#define ROOTCORE_PACKAGES_H\n\n" ) - foreach( pkgname ${_packages} ) - file( APPEND ${_packagesFileName} - "#define ROOTCORE_PACKAGE_${pkgname}\n" ) - endforeach() - file( APPEND ${_packagesFileName} "\n#endif // not ROOTCORE_PACKAGES_H\n" ) - unset( _packagesFileName ) - unset( _packages ) - - # Install the header in the usual place: - install( DIRECTORY ${CMAKE_BINARY_DIR}/RootCore/include/ - DESTINATION RootCore/include ) - -endfunction( analysisbase_generate_release_header ) diff --git a/Projects/AnalysisBase/package_filters.txt b/Projects/AnalysisBase/package_filters.txt index 7fcded02d0e9..0faac768a091 100644 --- a/Projects/AnalysisBase/package_filters.txt +++ b/Projects/AnalysisBase/package_filters.txt @@ -10,80 +10,19 @@ + Control/AthToolSupport/.* + Control/CxxUtils + Control/xAODRootAccess.* -+ DataQuality/GoodRunsLists + DetectorDescription/GeoPrimitives + DetectorDescription/IRegionSelector + DetectorDescription/RoiDescriptor + Event/EventPrimitives + Event/FourMomUtils - Event/xAOD/.*AthenaPool -+ Event/xAOD/xAODMetaDataCnv -+ Event/xAOD/xAODTriggerCnv - Event/xAOD/.*Cnv + Event/xAOD/.* + Generators/TruthUtils -+ InnerDetector/InDetRecTools/InDetTrackSelectionTool -+ InnerDetector/InDetRecTools/TrackVertexAssociationTool + MuonSpectrometer/MuonIdHelpers -+ PhysicsAnalysis/AnalysisCommon/AssociationUtils -+ PhysicsAnalysis/AnalysisCommon/CPAnalysisExamples -+ PhysicsAnalysis/AnalysisCommon/FsrUtils -+ PhysicsAnalysis/AnalysisCommon/IsolationSelection -+ PhysicsAnalysis/AnalysisCommon/PATCore -+ PhysicsAnalysis/AnalysisCommon/PATInterfaces -+ PhysicsAnalysis/AnalysisCommon/PMGTools -+ PhysicsAnalysis/AnalysisCommon/ParticleJetTools -+ PhysicsAnalysis/AnalysisCommon/PileupReweighting -+ PhysicsAnalysis/AnalysisCommon/ReweightUtils -+ PhysicsAnalysis/D3PDTools/.* -- PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools -+ PhysicsAnalysis/ElectronPhotonID/.* -+ PhysicsAnalysis/HiggsPhys/Run2/HZZ/Tools/ZMassConstraint -+ PhysicsAnalysis/Interfaces/.* -+ PhysicsAnalysis/JetMissingEtID/JetSelectorTools -+ PhysicsAnalysis/JetPhys/SemileptonicCorr -+ PhysicsAnalysis/JetTagging/JetTagPerformanceCalibration/CalibrationDataInterface -+ PhysicsAnalysis/JetTagging/JetTagPerformanceCalibration/xAODBTaggingEfficiency -+ PhysicsAnalysis/MCTruthClassifier -+ PhysicsAnalysis/MuonID/MuonIDAnalysis/.* -+ PhysicsAnalysis/MuonID/MuonSelectorTools -+ PhysicsAnalysis/SUSYPhys/SUSYTools -+ PhysicsAnalysis/TauID/DiTauMassTools -+ PhysicsAnalysis/TauID/TauAnalysisTools -+ PhysicsAnalysis/TauID/TauCorrUncert -+ PhysicsAnalysis/TopPhys/QuickAna -+ PhysicsAnalysis/TrackingID/.* -+ Reconstruction/EventShapes/EventShapeInterface -- Reconstruction/Jet/JetAnalysisTools/JetAnalysisEDM -- Reconstruction/Jet/JetEvent.* -- Reconstruction/Jet/JetMonitoring -+ Reconstruction/Jet/JetReclustering -- Reconstruction/Jet/JetRec.+ -- Reconstruction/Jet/JetSimTools -- Reconstruction/Jet/JetValidation -+ Reconstruction/Jet/Jet.* -+ Reconstruction/MET/METInterface -+ Reconstruction/MET/METUtilities -+ Reconstruction/MVAUtils -+ Reconstruction/PFlow/PFlowUtils -+ Reconstruction/egamma/egammaLayerRecalibTool -+ Reconstruction/egamma/egammaMVACalib -+ Reconstruction/egamma/egammaRecEvent -+ Reconstruction/tauRecTools + Tools/PathResolver -+ Trigger/TrigAnalysis/TrigAnalysisInterfaces -+ Trigger/TrigAnalysis/TrigBunchCrossingTool -+ Trigger/TrigAnalysis/TrigDecisionTool -+ Trigger/TrigAnalysis/TrigTauAnalysis/TrigTauMatching -+ Trigger/TrigAnalysis/TriggerMatchingTool + Trigger/TrigConfiguration/TrigConfBase -+ Trigger/TrigConfiguration/TrigConfHLTData -+ Trigger/TrigConfiguration/TrigConfInterfaces + Trigger/TrigConfiguration/TrigConfL1Data -+ Trigger/TrigConfiguration/TrigConfxAOD -+ Trigger/TrigEvent/TrigDecisionInterface ++ Trigger/TrigConfiguration/TrigConfHLTData + Trigger/TrigEvent/TrigNavStructure -+ Trigger/TrigEvent/TrigRoiConversion -+ Trigger/TrigEvent/TrigSteeringEvent -+ Trigger/TrigValidation/TrigAnalysisTest - .* diff --git a/Projects/AnalysisBase/scripts/load_packages.C.in b/Projects/AnalysisBase/scripts/load_packages.C.in deleted file mode 100644 index 9d47dbba4f5e..000000000000 --- a/Projects/AnalysisBase/scripts/load_packages.C.in +++ /dev/null @@ -1,48 +0,0 @@ -// -// This is a much simplified version of the RootCore script with the same -// name, basically just here to provide the existing scripts/tests with a -// file that they can use. -// - -// System include(s): -#include <stdexcept> - -// ROOT include(s): -#include <TSystem.h> -#include <TROOT.h> - -/// Function setting up interactive ROOT to use the analysis release -/// -/// In order to use macros or PyROOT scripts that make use of symbols -/// defined in the analysis release, the user has to execute this macro. -/// It takes care of setting up the compilation options of ACLiC, and -/// of calling xAOD::Init(). -/// -/// @param options An unused parameter, just to mimic the RootCore function -/// -void load_packages( const char* options = "" ) { - - // Make sure that some reasonable environment is set up: - const char* ROOTCOREDIR = gSystem->Getenv( "ROOTCOREDIR" ); - if( ! ROOTCOREDIR ) { - throw std::runtime_error( "ROOTCOREDIR not set, please set " - "the environment" ); - } - const std::string dir = ROOTCOREDIR; - - const char* ROOTCOREBIN = gSystem->Getenv( "ROOTCOREBIN" ); - if( ! ROOTCOREBIN ) { - throw std::runtime_error( "ROOTCOREBIN not set, please set " - "the environment"); - } - const std::string bin = ROOTCOREBIN; - - // Set the compilation options for ACLiC: - gSystem->AddIncludePath( "@CMAKE_CXX_FLAGS@" ); - - // Load the xAODRootAccess library, in a hard-coded way: - gSystem->Load( "libxAODRootAccess" ); - gROOT->ProcessLine( "xAOD::Init().ignore()" ); - - return; -} diff --git a/Projects/AnalysisBase/version.txt b/Projects/AnalysisBase/version.txt index 24ba9a38de68..01c3bca9e331 100644 --- a/Projects/AnalysisBase/version.txt +++ b/Projects/AnalysisBase/version.txt @@ -1 +1 @@ -2.7.0 +22.0.1 -- GitLab From b999d46f95011445d5e7657f67f1e29ff7fa8f8a Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 18 Dec 2018 10:05:50 +0100 Subject: [PATCH 007/192] Replaced ROOTCORE with XAOD_STANDALONE in AsgTools. This is in preparation to remove the ROOTCORE macro definition from the analysis release builds. --- .../AsgTools/AsgTools/AnaToolHandle.h | 22 ++++---- .../AsgTools/AsgTools/AnaToolHandle.icc | 50 +++++++++---------- .../AsgTools/AsgTools/IMessagePrinter.h | 2 +- .../AsgTools/AsgTools/MessageCheck.h | 6 +-- .../AsgTools/AsgTools/MessagePrinter.h | 2 +- .../AsgTools/MessagePrinterErrorCollect.h | 2 +- .../AsgTools/AsgTools/MessagePrinterMock.h | 2 +- .../AsgTools/AsgTools/SgTEvent.icc | 4 +- .../AsgTools/AsgTools/SgTEventMeta.icc | 4 +- .../AsgTools/AsgTools/ToolStore.h | 2 +- .../AsgTools/AsgTools/UnitTest.h | 2 +- .../AsgTools/Root/AnaToolHandle.cxx | 20 ++++---- .../AsgTools/Root/MessageCheck.cxx | 4 +- .../Root/MessagePrinterErrorCollect.cxx | 2 +- .../AthToolSupport/AsgTools/Root/SgTEvent.cxx | 6 +-- .../AsgTools/Root/SgTEventMeta.cxx | 6 +-- .../AsgTools/Root/ToolStore.cxx | 2 +- .../AsgTools/test/gt_AsgTool.cxx | 2 +- .../AsgTools/test/gt_MessageCheck.cxx | 2 +- .../AsgTools/test/gt_TProperty.cxx | 2 +- .../AsgTools/test/gt_UnitTest_test.cxx | 12 ++--- 21 files changed, 76 insertions(+), 80 deletions(-) diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h index 65d6c0014a87..ed7fbbb9a680 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h @@ -24,7 +24,7 @@ namespace asg { -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE typedef INamedInterface parentType_t; typedef IAsgTool interfaceType_t; #else @@ -99,7 +99,7 @@ namespace asg public: virtual ~AnaToolProperty () noexcept = default; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief apply the property to the given tool in RootCore /// \par Guarantee /// basic @@ -114,7 +114,7 @@ namespace asg const = 0; #endif -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \brief store the property in the configuration service in /// Athena /// \par Guarantee @@ -171,7 +171,7 @@ namespace asg public: void setType (std::string type) noexcept; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief register the new of the given type as factory /// /// If this is set, it is used instead of \ref type to allocate @@ -206,7 +206,7 @@ namespace asg setProperty (const std::string& val_name, const AnaToolHandle<Type>& val_value); -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \copydoc setProperty public: template<typename Type> StatusCode @@ -264,7 +264,7 @@ namespace asg AnaToolCleanup& cleanup) const; -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \brief store the properties in the configuration service in /// Athena /// \par Guarantee @@ -296,7 +296,7 @@ namespace asg std::map<std::string,std::shared_ptr<AnaToolProperty> > m_properties; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief create, configure and initialize the tool (in /// RootCore) /// \par Guarantee @@ -310,7 +310,7 @@ namespace asg #endif -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief allocate the tool /// \par Guarantee /// basic @@ -610,7 +610,7 @@ namespace asg public: void setType (std::string val_type) noexcept; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief set the value of \ref type and a factory based on the /// standard tool constructor /// @@ -855,7 +855,7 @@ namespace asg // ToolHandle<T>& handle () { // return *m_handleUser;}; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE public: template<class T2> ASG_DEPRECATED ("please use setTypeRegisterNew() instead") @@ -990,7 +990,7 @@ namespace asg (ASG_SET_ANA_TOOL_TYPE(handle,type), StatusCode (StatusCode::SUCCESS)) /// \brief set the tool type on the tool handle, using new in rootcore -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #define ASG_SET_ANA_TOOL_TYPE(handle,type) \ (handle).template setTypeRegisterNew<type> (#type) #else diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc index 5a0606fb034d..78fa035d6cae 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc @@ -2,7 +2,7 @@ #include <assert.h> #include <cstdlib> -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE #include "GaudiKernel/IJobOptionsSvc.h" #endif @@ -11,7 +11,7 @@ namespace asg { namespace detail { -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE StatusCode makeToolRootCore (const std::string& type, const std::string& name, AsgTool*& tool); @@ -37,7 +37,7 @@ namespace asg { using namespace msgUserCode; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE to = ToolHandle<T1> (dynamic_cast<T1*>(&*from)); if (!from.empty() && &*to == nullptr) { @@ -166,7 +166,7 @@ namespace asg -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \brief manage a single property in the job options service struct PropertyValueManager @@ -218,7 +218,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \brief a \ref AnaToolProperty containing a regular value in /// RootCore @@ -261,7 +261,7 @@ namespace asg : m_config (val_config) {} -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE public: virtual StatusCode applyPropertyRootCore (AsgTool& tool, const std::string& name, @@ -278,7 +278,7 @@ namespace asg } #endif -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE private: virtual StatusCode applyPropertyAthena (const std::string& toolName, @@ -310,7 +310,7 @@ namespace asg -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \brief a \ref AnaToolProperty copying a tool configuration /// from the job options service to a new place @@ -353,7 +353,7 @@ namespace asg : m_name (val_name), m_config (val_config) {} -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE public: virtual StatusCode applyPropertyRootCore (AsgTool& tool, const std::string& name, @@ -372,7 +372,7 @@ namespace asg } #endif -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE private: virtual StatusCode applyPropertyAthena (const std::string& toolName, @@ -412,7 +412,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE template<typename Type> void AnaToolConfig :: registerNew () { @@ -423,7 +423,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE template<typename Type> StatusCode AnaToolConfig :: setProperty (const std::string& val_name, const Type& val_value) { @@ -484,7 +484,7 @@ namespace asg -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE template<typename Type> StatusCode AnaToolConfig :: setProperty (const std::string& val_name, const ToolHandle<Type>& val_value) @@ -551,7 +551,7 @@ namespace asg ANA_CHECK (makeBaseTool (name, parent, baseTH, baseCleanup)); ANA_CHECK (toolHandleCast (th, baseTH)); cleanup.swap (baseCleanup); -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE baseTH->release (); #endif return StatusCode::SUCCESS; @@ -577,10 +577,6 @@ namespace asg // General requirements CHECK_INVARIANT (&*this != nullptr); CHECK_INVARIANT (m_handleUser != nullptr); - // CHECK_INVARIANT (m_parentPtr == nullptr || m_parentPtr->name() == m_parentName); - // #ifndef ROOTCORE - // CHECK_INVARIANT (m_parentPtr == m_handleUser->parent()); - // #endif #undef CHECK_INVARIANT } @@ -630,7 +626,7 @@ namespace asg m_cleanup = that.m_cleanup; } -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE if (!m_handleUser->empty()) (*m_handleUser)->release(); #endif @@ -668,7 +664,7 @@ namespace asg std::swap (m_parentPtr, that.m_parentPtr); { ToolHandle<T> tmp = *m_handleUser; -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE if (!tmp.empty()) tmp->release(); #endif @@ -827,7 +823,7 @@ namespace asg case detail::AnaToolHandleMode::RETRIEVE_SHARED: assert (sharedTool != nullptr); ANA_CHECK (detail::toolHandleCast (th, sharedTool->th())); -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE if (!th.empty()) th->release (); #endif @@ -847,7 +843,7 @@ namespace asg ANA_CHECK (makeToolRetrieve (toolPtr, th)); *m_handleUser = th; -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE if (!th.empty()) th->release (); #endif @@ -1024,7 +1020,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE template <class T> template <class T2> void AnaToolHandle<T> :: setTypeRegisterNew (std::string val_type) { @@ -1068,7 +1064,7 @@ namespace asg #ifndef NDEBUG this->testInvariant (); #endif -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE return m_handleUser->parentName() + "." + name(); #else std::string toolName; @@ -1099,7 +1095,7 @@ namespace asg m_handleUser->typeAndName() != m_originalTypeAndName) return detail::AnaToolHandleMode::USER; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE if (!m_parentName.empty()) { if (m_handleUser->parentName() != m_parentName) @@ -1116,14 +1112,14 @@ namespace asg if ((sharedTool = detail::AnaToolShareList::singleton() .getShare (fullName()))) return detail::AnaToolHandleMode::RETRIEVE_SHARED; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// \todo check whether this is actually what we want to do if (ToolStore::contains<T> (m_handleUser->name())) return detail::AnaToolHandleMode::USER; #endif } -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE //for athena, all we do here is check if the tool already exists interfaceType_t *tool = nullptr; if( detail::toolExists( fullName(), tool ) ) diff --git a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h index fbea449f8790..7277751a3f55 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h @@ -14,7 +14,7 @@ #include <AsgTools/MsgLevel.h> #include <sstream> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h index 2a6730a608d0..8c6c7e8183ff 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h @@ -79,7 +79,7 @@ #include <type_traits> #include <xAODRootAccess/tools/TReturnCode.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <AsgTools/MsgStream.h> #else #include "AthenaBaseComps/AthMessaging.h" @@ -118,7 +118,7 @@ void setMsgLevel (MSG::Level level); } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #define ASG_TOOLS_MSG_STREAM(NAME,TITLE) \ static MsgStream NAME (TITLE); #else @@ -254,7 +254,7 @@ namespace asg namespace detail { -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// Get the Athena message service /// TODO: Look into using AthenaKernel/MsgStreamMember.h IMessageSvc* getMessageSvcAthena(); diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h index ade1b961546c..9d30102cd134 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h @@ -11,7 +11,7 @@ // reports, feature suggestions, praise and complaints. -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <AsgTools/IMessagePrinter.h> diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h index 8f938acb677f..0605a3ddd71b 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h @@ -11,7 +11,7 @@ // reports, feature suggestions, praise and complaints. -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <AsgTools/IMessagePrinter.h> #include <vector> diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h index 72708f90ec02..e1627aea9a04 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h @@ -14,7 +14,7 @@ #include <AsgTools/IMessagePrinter.h> #include <gmock/gmock.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc index ab8493df8f4c..74b12c3026ae 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc @@ -7,10 +7,10 @@ #include <iostream> // xAOD include(s): -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE # include "xAODRootAccess/TEvent.h" # include "xAODRootAccess/TStore.h" -#endif // ROOTCORE +#endif // XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc index 7083f1bbc21e..af80d9c9fe4c 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc @@ -7,9 +7,9 @@ #include <iostream> // xAOD include(s): -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE # include "xAODRootAccess/TEvent.h" -#endif // ROOTCORE +#endif // XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h index 780e2d1a1d37..d35444ae2877 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h @@ -60,7 +60,7 @@ namespace asg { /// Remove a tool with a given name from the store static StatusCode remove( const std::string& name ); -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE /// dump the tool configuration for all tools to std::cout static void dumpToolConfig (); #endif diff --git a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h index 1bf196f5dd26..b7f455c9b3bb 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h @@ -46,7 +46,7 @@ namespace asg EXPECT_EQ (asg::CheckHelper<decltype(x)>::failureCode(), x) -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE #define ASSERT_FAILURE_REGEX(x,regex) \ ASSERT_FAILURE(x) #define EXPECT_FAILURE_REGEX(x,regex) \ diff --git a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx index 3949e48bc0d3..7745d60b218f 100644 --- a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx +++ b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx @@ -16,7 +16,7 @@ #include "AsgTools/ToolStore.h" -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <TInterpreter.h> #include <TROOT.h> #else @@ -105,7 +105,7 @@ namespace asg AnaToolCleanup cleanup; ANA_CHECK (config.makeTool (name, nullptr, th, cleanup)); res_result.reset (new AnaToolShare (th, cleanup)); -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE if (!th.empty()) { th->release (); @@ -123,7 +123,7 @@ namespace asg // legacy code // -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE namespace asg { @@ -307,7 +307,7 @@ namespace asg return false; if (!m_type.empty()) return false; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE if (m_factory) return false; #endif @@ -341,7 +341,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE StatusCode AnaToolConfig :: allocateTool (AsgTool*& toolPtr, const std::string& toolName) const { @@ -373,7 +373,7 @@ namespace asg -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE StatusCode AnaToolConfig :: applyPropertiesAthena (const std::string& toolName, AnaToolCleanup& cleanup) const @@ -411,7 +411,7 @@ namespace asg -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE StatusCode AnaToolConfig :: makeToolRootCore (const std::string& toolName, IAsgTool*& toolPtr, AnaToolCleanup& cleanup) const @@ -438,7 +438,7 @@ namespace asg #endif -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE /// \brief manage the reference count on a tool struct ToolRefManager @@ -509,7 +509,7 @@ namespace asg else toolName = "ToolSvc." + name; -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE interfaceType_t *baseToolPtr = nullptr; AnaToolCleanup baseCleanup; ANA_CHECK (makeToolRootCore (toolName, baseToolPtr, baseCleanup)); @@ -582,7 +582,7 @@ namespace asg -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE AnaToolPropertyCopyTool :: AnaToolPropertyCopyTool (const std::string& val_type, const std::string& val_name) diff --git a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx index 258e301973ff..6cf165df1ea2 100644 --- a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx +++ b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx @@ -16,7 +16,7 @@ #include <stdexcept> -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE #include <GaudiKernel/Bootstrap.h> #include <GaudiKernel/ISvcLocator.h> #endif @@ -33,7 +33,7 @@ namespace asg namespace detail { -#ifndef ROOTCORE +#ifndef XAOD_STANDALONE // Get the Athena message service IMessageSvc* getMessageSvcAthena() { diff --git a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx index 0562f61b6832..b99ab99822c0 100644 --- a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx +++ b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx @@ -20,7 +20,7 @@ // method implementations // -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx index db96cc4aa388..dd3d5456dabf 100644 --- a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx +++ b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx @@ -1,4 +1,4 @@ -// $Id: SgTEvent.cxx 687011 2015-08-03 09:25:07Z krasznaa $ + // System include(s): #include <iostream> @@ -7,10 +7,10 @@ #include "AsgTools/SgTEvent.h" // RootCore include(s): -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE # include "xAODRootAccessInterfaces/TActiveEvent.h" # include "xAODRootAccess/TActiveStore.h" -#endif +#endif // XAOD_STANDALONE namespace asg { diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx index 98be017fe90d..3db8b6576a85 100644 --- a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx +++ b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx @@ -1,10 +1,10 @@ -// $Id: SgTEventMeta.cxx 687011 2015-08-03 09:25:07Z krasznaa $ + // xAOD include(s): -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE # include "xAODRootAccessInterfaces/TActiveEvent.h" # include "xAODRootAccess/TEvent.h" -#endif // ROOTCORE +#endif // XAOD_STANDALONE // Local include(s): #include "AsgTools/SgTEventMeta.h" diff --git a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx index 705192955623..4ab37b606823 100644 --- a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx +++ b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx @@ -116,7 +116,7 @@ namespace asg { } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE void ToolStore::dumpToolConfig () { using namespace asg::msgProperty; diff --git a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx index 11707f192749..f60194e97fc2 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx @@ -23,7 +23,7 @@ #include <gtest/gtest-spi.h> #include <gmock/gmock.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <xAODRootAccess/Init.h> #endif diff --git a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx index 6bbec039df0a..3a55ef934396 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx @@ -23,7 +23,7 @@ #include <gtest/gtest-spi.h> #include <gmock/gmock.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <xAODRootAccess/Init.h> #endif diff --git a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx index 4aa2b6fca3a1..fda8bdb21cb6 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx @@ -19,7 +19,7 @@ #include <gtest/gtest.h> #include <gtest/gtest-spi.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <xAODRootAccess/Init.h> #endif diff --git a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx index b9ef569163f1..e4a0d39ad9aa 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx @@ -19,7 +19,7 @@ #include <gtest/gtest.h> #include <gtest/gtest-spi.h> -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE #include <xAODRootAccess/Init.h> #endif @@ -98,7 +98,7 @@ namespace asg EXPECT_FAILURE_REGEX (functionFailure("match"),".*match.*"); } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE TEST (AssertTest, failure_regex_failure_missmatch) #else TEST (AssertTest, DISABLED_failure_regex_failure_missmatch) @@ -107,7 +107,7 @@ namespace asg EXPECT_FATAL_FAILURE (ASSERT_FAILURE_REGEX (functionFailure("text 1"),".*different text.*"), "functionFailure"); } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE TEST (AssertTest, failure_regex_failure_missing) #else TEST (AssertTest, DISABLED_failure_regex_failure_missing) @@ -203,7 +203,7 @@ namespace asg EXPECT_FAILURE_REGEX (functionFailure("match"),".*match.*"); } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE TEST (ExpectTest, failure_regex_failure_missmatch) #else TEST (ExpectTest, DISABLED_failure_regex_failure_missmatch) @@ -212,7 +212,7 @@ namespace asg EXPECT_NONFATAL_FAILURE (EXPECT_FAILURE_REGEX (functionFailure("text 1"),".*different text.*"), "functionFailure"); } -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE TEST (ExpectTest, failure_regex_failure_missing) #else TEST (ExpectTest, DISABLED_failure_regex_failure_missing) @@ -266,7 +266,7 @@ namespace asg int main (int argc, char **argv) { -#ifdef ROOTCORE +#ifdef XAOD_STANDALONE StatusCode::enableFailure(); ANA_CHECK (xAOD::Init ()); #endif -- GitLab From dd264749efd1061ee7400d91812a444cc5aff30e Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 4 Jan 2019 17:26:17 +0000 Subject: [PATCH 008/192] Porting merge request from closed athena to open athena repository --- .../MuonByteStream/src/MuonCacheCreator.cxx | 31 ++++++++- .../MuonByteStream/src/MuonCacheCreator.h | 15 ++++- .../src/CSC_RawDataProviderTool.cxx | 27 ++++++-- .../src/CSC_RawDataProviderTool.h | 4 ++ .../MuonCSC_CnvTools/src/CscROD_Decoder.cxx | 64 ++++++++----------- .../python/MuonBytestreamDecodeConfig.py | 7 +- .../MuonConfig/python/MuonCablingConfig.py | 1 + .../MuonConfig/python/MuonRdoDecodeConfig.py | 3 +- .../MuonRDO/CscRawDataCollection_Cache.h | 12 ++++ .../MuonRDO/MuonRDO/CscRawDataContainer.h | 3 + .../MuonRDO/MM_RawDataCollection_Cache.h | 12 ++++ .../MuonRDO/MuonRDO/MM_RawDataContainer.h | 2 + .../MuonRDO/MuonRDO/MuonRDODict.h | 8 ++- .../MuonRDO/MuonRDO/RpcPadContainer.h | 3 + .../MuonRDO/MuonRDO/RpcPad_Cache.h | 12 ++++ .../MuonRDO/STGC_RawDataCollection_Cache.h | 12 ++++ .../MuonRDO/MuonRDO/STGC_RawDataContainer.h | 2 + .../MuonRDO/MuonRDO/TgcRdoContainer.h | 3 + .../MuonRDO/MuonRDO/TgcRdo_Cache.h | 12 ++++ .../MuonRDO/MuonRDO/selection.xml | 10 ++- .../MuonRDO/src/CscRawDataContainer.cxx | 5 ++ .../MuonRDO/src/MM_RawDataContainer.cxx | 5 ++ .../MuonRDO/src/RpcPadContainer.cxx | 6 ++ .../MuonRDO/src/STGC_RawDataContainer.cxx | 6 ++ .../MuonRDO/src/TgcRdoContainer.cxx | 5 ++ 25 files changed, 216 insertions(+), 54 deletions(-) create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataCollection_Cache.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataCollection_Cache.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/RpcPad_Cache.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataCollection_Cache.h create mode 100644 MuonSpectrometer/MuonRDO/MuonRDO/TgcRdo_Cache.h diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx index 83c0eabbd77e..e79d56408a07 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx @@ -5,13 +5,24 @@ #include "MuonCacheCreator.h" #include "MuonIdHelpers/MdtIdHelper.h" +#include "MuonIdHelpers/CscIdHelper.h" +#include "MuonIdHelpers/RpcIdHelper.h" +#include "MuonIdHelpers/TgcIdHelper.h" + /// Constructor MuonCacheCreator::MuonCacheCreator(const std::string &name,ISvcLocator *pSvcLocator): AthReentrantAlgorithm(name,pSvcLocator), - m_MdtCsmCacheKey("") + m_MdtCsmCacheKey(""), + m_CscCacheKey(""), + m_RpcCacheKey(""), + m_TgcCacheKey("") { declareProperty("MdtCsmCacheKey", m_MdtCsmCacheKey); + declareProperty("CscCacheKey", m_CscCacheKey); + declareProperty("RpcCacheKey", m_RpcCacheKey); + declareProperty("TgcCacheKey", m_TgcCacheKey); + } MuonCacheCreator::~MuonCacheCreator() { @@ -20,9 +31,13 @@ MuonCacheCreator::~MuonCacheCreator() { StatusCode MuonCacheCreator::initialize() { ATH_CHECK( m_MdtCsmCacheKey.initialize(!m_MdtCsmCacheKey.key().empty()) ); - + ATH_CHECK( m_CscCacheKey.initialize(!m_CscCacheKey.key().empty()) ); + ATH_CHECK( m_RpcCacheKey.initialize(!m_RpcCacheKey.key().empty()) ); + ATH_CHECK( m_TgcCacheKey.initialize(!m_TgcCacheKey.key().empty()) ); ATH_CHECK( detStore()->retrieve(m_mdtIdHelper,"MDTIDHELPER") ); - + ATH_CHECK( detStore()->retrieve(m_cscIdHelper,"CSCIDHELPER") ); + ATH_CHECK( detStore()->retrieve(m_rpcIdHelper,"RPCIDHELPER") ); + ATH_CHECK( detStore()->retrieve(m_tgcIdHelper,"TGCIDHELPER") ); return StatusCode::SUCCESS; } @@ -32,8 +47,18 @@ StatusCode MuonCacheCreator::execute (const EventContext& ctx) const { auto maxHashMDTs = m_mdtIdHelper->stationNameIndex("BME") != -1 ? m_mdtIdHelper->detectorElement_hash_max() : m_mdtIdHelper->module_hash_max(); ATH_CHECK(CreateContainer(m_MdtCsmCacheKey, maxHashMDTs, ctx)); + // Create the CSC cache container + ATH_CHECK(CreateContainer(m_CscCacheKey, m_cscIdHelper->module_hash_max(), ctx)); + // Create the RPC cache container + ATH_CHECK(CreateContainer(m_RpcCacheKey, m_rpcIdHelper->module_hash_max(), ctx)); + // Create the TGC cache container + ATH_CHECK(CreateContainer(m_TgcCacheKey, m_tgcIdHelper->module_hash_max(), ctx)); ATH_MSG_INFO("Created cache container " << m_MdtCsmCacheKey); + ATH_MSG_INFO("Created cache container " << m_CscCacheKey); + ATH_MSG_INFO("Created cache container " << m_RpcCacheKey); + ATH_MSG_INFO("Created cache container " << m_TgcCacheKey); + return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h index 5912719d6a48..653a3e1b5a31 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h @@ -7,8 +7,16 @@ #include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "MuonRDO/MdtCsm_Cache.h" +#include "MuonRDO/CscRawDataCollection_Cache.h" +#include "MuonRDO/RpcPad_Cache.h" +#include "MuonRDO/TgcRdo_Cache.h" + class MdtIdHelper; +class CscIdHelper; +class RpcIdHelper; +class TgcIdHelper; + class MuonCacheCreator : public AthReentrantAlgorithm { public: @@ -31,9 +39,14 @@ protected: /// Write handle key for the MDT CSM cache container SG::WriteHandleKey<MdtCsm_Cache> m_MdtCsmCacheKey; - + SG::WriteHandleKey<CscRawDataCollection_Cache> m_CscCacheKey; + SG::WriteHandleKey<RpcPad_Cache> m_RpcCacheKey; + SG::WriteHandleKey<TgcRdo_Cache> m_TgcCacheKey; /// ID helpers const MdtIdHelper* m_mdtIdHelper = 0; + const CscIdHelper* m_cscIdHelper = 0; + const RpcIdHelper* m_rpcIdHelper = 0; + const TgcIdHelper* m_tgcIdHelper = 0; };//class MuonCacheCreator diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx index 64b1f084c79f..82dc982f945e 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx @@ -39,6 +39,8 @@ Muon::CSC_RawDataProviderTool::CSC_RawDataProviderTool(const std::string& t, { declareInterface<IMuonRawDataProviderTool>(this); declareProperty("Decoder", m_decoder); + declareProperty ("CSCContainerCacheKey", m_rdoContainerCacheKey, "Optional external cache for the CSC container"); + } //================ Destructor ================================================= @@ -151,6 +153,8 @@ StatusCode Muon::CSC_RawDataProviderTool::initialize() m_activeStore->setStore( &*evtStore() ); m_createContainerEachEvent = has_bytestream || m_containerKey.key() != "CSCRDO"; + // Initialise the container cache if available + ATH_CHECK( m_rdoContainerCacheKey.initialize( !m_rdoContainerCacheKey.key().empty() ) ); // Retrieve decoder if (m_decoder.retrieve().isFailure()) { @@ -228,14 +232,25 @@ StatusCode Muon::CSC_RawDataProviderTool::convert(const ROBFragmentList& vecRobs return StatusCode::SUCCESS; } - SG::WriteHandle<CscRawDataContainer> handle(m_containerKey); - if (handle.isPresent()) + SG::WriteHandle<CscRawDataContainer> rdoContainerHandle(m_containerKey); + if (rdoContainerHandle.isPresent()) return StatusCode::SUCCESS; - ATH_CHECK( handle.record(std::unique_ptr<CscRawDataContainer>( - new CscRawDataContainer(m_muonMgr->cscIdHelper()->module_hash_max())) )); - - CscRawDataContainer* container = handle.ptr(); + // Split the methods to have one where we use the cache and one where we just setup the container + const bool externalCacheRDO = !m_rdoContainerCacheKey.key().empty(); + if(!externalCacheRDO){ + //ATH_CHECK( handle.record(std::unique_ptr<CscRawDataContainer>( new CscRawDataContainer(m_muonMgr->cscIdHelper()->module_hash_max())) )); + ATH_CHECK( rdoContainerHandle.record(std::make_unique<CscRawDataContainer>( m_muonMgr->cscIdHelper()->module_hash_max() ))); + ATH_MSG_DEBUG( "Created CSCRawDataContainer" ); + } + else{ + SG::UpdateHandle<CscRawDataCollection_Cache> update(m_rdoContainerCacheKey); + ATH_CHECK(update.isValid()); + ATH_CHECK(rdoContainerHandle.record (std::make_unique<CscRawDataContainer>( update.ptr() ))); + ATH_MSG_DEBUG("Created container using cache for " << m_rdoContainerCacheKey.key()); + } + + CscRawDataContainer* container = rdoContainerHandle.ptr(); m_activeStore->setStore( &*evtStore() ); const EventInfo* thisEventInfo; diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h index 1b40f0210506..adcfd0a18c19 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h @@ -14,6 +14,7 @@ #include "MuonCnvToolInterfaces/IMuonRawDataProviderTool.h" #include "MuonCSC_CnvTools/ICSC_ROD_Decoder.h" #include "MuonRDO/CscRawDataContainer.h" +#include "MuonRDO/CscRawDataCollection_Cache.h" #include "CSCcabling/CSCcablingSvc.h" #include "CSC_Hid2RESrcID.h" @@ -68,6 +69,9 @@ private: ActiveStoreSvc* m_activeStore; bool m_createContainerEachEvent; + + /// CSC container cache key + SG::UpdateHandleKey<CscRawDataCollection_Cache> m_rdoContainerCacheKey ; }; } // end of namespace diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx index 87e11baad907..3ee1f9bdaae2 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx @@ -210,20 +210,15 @@ void Muon::CscROD_Decoder::rodVersion2(const ROBFragment& robFrag, CscRawDataCo //assert (subDetectorId == 0x6A || subDetectorId == 0x69); // 50 or 51 - CscRawDataCollection * rawCollection = 0; - CscRawDataContainer::const_iterator it_coll = rdoIDC.indexFind(idColl); - if (rdoIDC.end() != it_coll) { + // Create the Csc container and use the cache to get it + std::unique_ptr<CscRawDataCollection> rawCollection(nullptr); + CscRawDataContainer::IDC_WriteHandle lock = rdoIDC.getWriteHandle( idColl ); + if( lock.alreadyPresent() ) { ATH_MSG_DEBUG ( "CSC RDO collection already exist with collection hash = " << idColl << " converting is skipped!"); - return; - //rawCollection = it_coll->cptr(); - } else { + } + else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = new CscRawDataCollection(idColl); - if ( (rdoIDC.addCollection(rawCollection, idColl)).isFailure() ) { - ATH_MSG_ERROR ( "Failed to add RDO collection to container" ); - delete rawCollection; - return; - } + rawCollection = std::make_unique<CscRawDataContainer>(idColl); } /** set the ROD id and the subDector id */ @@ -518,6 +513,9 @@ void Muon::CscROD_Decoder::rodVersion2(const ROBFragment& robFrag, CscRawDataCo // delete rawCollection; // return; } + + if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); + ATH_MSG_DEBUG ( "end of CscROD_Decode::fillCollection()" ); return; } @@ -541,20 +539,15 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo //assert (subDetectorId <= 1); - CscRawDataCollection * rawCollection = 0; - CscRawDataContainer::const_iterator it_coll = rdoIDC.indexFind(idColl); - if (rdoIDC.end() != it_coll) { + // Create the Csc container and use the cache to get it + std::unique_ptr<CscRawDataCollection> rawCollection(nullptr); + CscRawDataContainer::IDC_WriteHandle lock = rdoIDC.getWriteHandle( idColl ); + if( lock.alreadyPresent() ) { ATH_MSG_DEBUG ( "CSC RDO collection already exist with collection hash = " << idColl << " converting is skipped!"); - return; - //rawCollection = it_coll->cptr(); - } else { + } + else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = new CscRawDataCollection(idColl); - if ( (rdoIDC.addCollection(rawCollection, idColl)).isFailure() ) { - ATH_MSG_ERROR ( "Failed to add RDO collection to container" ); - delete rawCollection; - return; - } + rawCollection = std::make_unique<CscRawDataContainer>(idColl); } // set the ROD id and the subDector id @@ -655,6 +648,8 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo if (i < (size-rodFooter)) dpuFragment = rodReadOut.isDPU(p[i]); numberOfDPU++; } + if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); + } void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataContainer& rdoIDC, MsgStream& /*log*/) { @@ -683,20 +678,15 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo uint16_t idColl = m_cabling->collectionId(subId, rodId); - CscRawDataCollection * rawCollection = 0; - CscRawDataContainer::const_iterator it_coll = rdoIDC.indexFind(idColl); - if (rdoIDC.end() != it_coll) { + // Create the Csc container and use the cache to get it + std::unique_ptr<CscRawDataCollection> rawCollection(nullptr); + CscRawDataContainer::IDC_WriteHandle lock = rdoIDC.getWriteHandle( idColl ); + if( lock.alreadyPresent() ) { ATH_MSG_DEBUG ( "CSC RDO collection already exist with collection hash = " << idColl << " converting is skipped!"); - return; - //rawCollection = it_coll->cptr(); - } else { + } + else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = new CscRawDataCollection(idColl); - if ( (rdoIDC.addCollection(rawCollection, idColl)).isFailure() ) { - ATH_MSG_ERROR ( "Failed to add RDO collection to container" ); - delete rawCollection; - return; - } + rawCollection = std::make_unique<CscRawDataContainer>(idColl); } // set the ROD id and the subDector id @@ -757,6 +747,8 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo // check that the new fragment is body bodyFragment = rodReadOut.isBody(p[i]); } + if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); + } diff --git a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py index 74e5f1d607a4..87085da52a38 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py @@ -166,8 +166,9 @@ if __name__=="__main__": Configurable.configurableRun3Behavior=1 from AthenaConfiguration.AllConfigFlags import ConfigFlags - from AthenaConfiguration.TestDefaults import defaultTestFiles - ConfigFlags.Input.Files = defaultTestFiles.RAW + ConfigFlags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1"] + #from AthenaConfiguration.TestDefaults import defaultTestFiles + #ConfigFlags.Input.Files = defaultTestFiles.RAW # Set global tag by hand for now ConfigFlags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2018-13"#"CONDBR2-BLKPA-2015-17" ConfigFlags.GeoModel.AtlasVersion = "ATLAS-R2-2016-01-00-01"#"ATLAS-R2-2015-03-01-00" @@ -197,7 +198,7 @@ if __name__=="__main__": cfg.addEventAlgo( tgcdecodingAlg ) # Schedule Mdt data decoding - once mergeAll is working can simplify these lines - mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) + mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) cfg.merge( mdtdecodingAcc ) cfg.addEventAlgo( mdtdecodingAlg ) diff --git a/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py b/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py index 0b3862aacf0d..16e117c6de58 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonCablingConfig.py @@ -156,4 +156,5 @@ if __name__ == '__main__': acc.store(f) f.close() + diff --git a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py index 0f169aa59350..9826773b2e26 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py @@ -181,13 +181,14 @@ def muonRdoDecodeTestData(): cfg.merge( rpcdecodingAcc ) cfg.addEventAlgo( rpcdecodingAlg ) + # Schedule Mdt data decoding - once mergeAll is working can simplify these lines from MuonConfig.MuonBytestreamDecodeConfig import TgcBytestreamDecodeCfg tgcdecodingAcc, tgcdecodingAlg = TgcBytestreamDecodeCfg( ConfigFlags ) cfg.merge( tgcdecodingAcc ) cfg.addEventAlgo( tgcdecodingAlg ) from MuonConfig.MuonBytestreamDecodeConfig import MdtBytestreamDecodeCfg - mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) + mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) cfg.merge( mdtdecodingAcc ) cfg.addEventAlgo( mdtdecodingAlg ) diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataCollection_Cache.h b/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataCollection_Cache.h new file mode 100644 index 000000000000..c11f6fb18404 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataCollection_Cache.h @@ -0,0 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#pragma once + +#include "EventContainers/IdentifiableCache.h" +#include "MuonRDO/CscRawDataCollection.h" + +typedef EventContainers::IdentifiableCache< CscRawDataCollection> CscRawDataCollection_Cache; + +CLASS_DEF( CscRawDataCollection_Cache , 1099187284 , 1 ) \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataContainer.h index d5d5586cc4f4..462876e256c2 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/CscRawDataContainer.h @@ -9,6 +9,7 @@ #include "MuonRDO/CscRawDataCollection.h" #include "MuonRDO/CscRawDataCollectionIdHash.h" +#include "MuonRDO/CscRawDataCollection_Cache.h" #include "AthenaKernel/CLASS_DEF.h" #include "EventContainers/IdentifiableContainer.h" @@ -23,6 +24,8 @@ class CscRawDataContainer public: CscRawDataContainer(); CscRawDataContainer(unsigned int hashmax); + CscRawDataContainer(CscRawDataCollection_Cache* cache); + virtual ~CscRawDataContainer(); typedef IdentifiableContainer<CscRawDataCollection> MyBase; diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataCollection_Cache.h b/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataCollection_Cache.h new file mode 100644 index 000000000000..ec71952dbc55 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataCollection_Cache.h @@ -0,0 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#pragma once + +#include "EventContainers/IdentifiableCache.h" +#include "MuonRDO/MM_RawDataCollection.h" + +typedef EventContainers::IdentifiableCache< Muon::MM_RawDataCollection> MM_RawDataCollection_Cache; + +CLASS_DEF( MM_RawDataCollection_Cache , 1330272288 , 1 ) \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataContainer.h index 339fc829e149..993898afa69f 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/MM_RawDataContainer.h @@ -6,6 +6,7 @@ #define MUONRDO_MM_RAWDATACONAINTER_H #include "MuonRDO/MM_RawDataCollection.h" +#include "MuonRDO/MM_RawDataCollection_Cache.h" #include "AthenaKernel/CLASS_DEF.h" #include "EventContainers/IdentifiableContainer.h" @@ -18,6 +19,7 @@ class MM_RawDataContainer public: MM_RawDataContainer(unsigned int hashmax); MM_RawDataContainer(); + MM_RawDataContainer(MM_RawDataCollection_Cache* cache); virtual ~MM_RawDataContainer(); /// class ID diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/MuonRDODict.h b/MuonSpectrometer/MuonRDO/MuonRDO/MuonRDODict.h index 755165fddbe4..90b11bfcfd72 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/MuonRDODict.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/MuonRDODict.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 */ /* @@ -16,14 +16,20 @@ #include "MuonRDO/RpcPadContainer.h" #include "MuonRDO/TgcRdoContainer.h" #include "MuonRDO/CscRawDataContainer.h" +#include "MuonRDO/STGC_RawDataContainer.h" // collection #include "MuonRDO/MdtCsm.h" #include "MuonRDO/RpcPad.h" #include "MuonRDO/TgcRdo.h" #include "MuonRDO/CscRawDataCollection.h" +#include "MuonRDO/STGC_RawDataCollection.h" // cache #include "MuonRDO/MdtCsm_Cache.h" +#include "MuonRDO/RpcPad_Cache.h" +#include "MuonRDO/TgcRdo_Cache.h" +#include "MuonRDO/CscRawDataCollection_Cache.h" +#include "MuonRDO/STGC_RawDataCollection_Cache.h" #endif diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/RpcPadContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/RpcPadContainer.h index 9d25c59a2457..6e77bec928ab 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/RpcPadContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/RpcPadContainer.h @@ -13,6 +13,7 @@ #include <string> #include "MuonRDO/RpcCoinMatrix.h" #include "MuonRDO/RpcPad.h" +#include "MuonRDO/RpcPad_Cache.h" //#include "MuonRDO/RpcPadIdHash.h" #include "AthenaKernel/CLASS_DEF.h" #include "EventContainers/IdentifiableContainer.h" @@ -26,6 +27,8 @@ class RpcPadContainer public: RpcPadContainer(unsigned int hashmax) ; + RpcPadContainer(RpcPad_Cache* cache) ; + ~RpcPadContainer() ; typedef RpcPad::size_type size_type ; diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/RpcPad_Cache.h b/MuonSpectrometer/MuonRDO/MuonRDO/RpcPad_Cache.h new file mode 100644 index 000000000000..db6f46cce4b2 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/RpcPad_Cache.h @@ -0,0 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#pragma once + +#include "EventContainers/IdentifiableCache.h" +#include "MuonRDO/RpcPad.h" + +typedef EventContainers::IdentifiableCache< RpcPad> RpcPad_Cache; + +CLASS_DEF( RpcPad_Cache , 31498359 , 1 ) \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataCollection_Cache.h b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataCollection_Cache.h new file mode 100644 index 000000000000..9a925eb4b508 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataCollection_Cache.h @@ -0,0 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#pragma once + +#include "EventContainers/IdentifiableCache.h" +#include "MuonRDO/STGC_RawDataCollection.h" + +typedef EventContainers::IdentifiableCache< Muon::STGC_RawDataCollection> STGC_RawDataCollection_Cache; + +CLASS_DEF( STGC_RawDataCollection_Cache , 1118886635 , 1 ) \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataContainer.h index 5283fd3c5304..69dbdfd350c4 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/STGC_RawDataContainer.h @@ -6,6 +6,7 @@ #define MUONRDO_STGC_RawDataCONAINTER_H #include "MuonRDO/STGC_RawDataCollection.h" +#include "MuonRDO/STGC_RawDataCollection_Cache.h" #include "AthenaKernel/CLASS_DEF.h" #include "EventContainers/IdentifiableContainer.h" @@ -18,6 +19,7 @@ class STGC_RawDataContainer public: STGC_RawDataContainer(); STGC_RawDataContainer(unsigned int hashmax); + STGC_RawDataContainer(STGC_RawDataCollection_Cache* cache); ~STGC_RawDataContainer(); // class ID diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdoContainer.h b/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdoContainer.h index 881212512383..f323c42aaa14 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdoContainer.h +++ b/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdoContainer.h @@ -9,6 +9,7 @@ #include "MuonRDO/TgcRdo.h" #include "MuonRDO/TgcRdoIdHash.h" +#include "MuonRDO/TgcRdo_Cache.h" #include "AthenaKernel/CLASS_DEF.h" #include "EventContainers/IdentifiableContainer.h" @@ -25,6 +26,8 @@ class TgcRdoContainer public: TgcRdoContainer(); TgcRdoContainer(unsigned int hashmax); + TgcRdoContainer(TgcRdo_Cache* cache); + ~TgcRdoContainer(); typedef IdentifiableContainer<TgcRdo> MyBase; diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdo_Cache.h b/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdo_Cache.h new file mode 100644 index 000000000000..9dcecd537252 --- /dev/null +++ b/MuonSpectrometer/MuonRDO/MuonRDO/TgcRdo_Cache.h @@ -0,0 +1,12 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#pragma once + +#include "EventContainers/IdentifiableCache.h" +#include "MuonRDO/TgcRdo.h" + +typedef EventContainers::IdentifiableCache< TgcRdo> TgcRdo_Cache; + +CLASS_DEF( TgcRdo_Cache , 92530520 , 1 ) \ No newline at end of file diff --git a/MuonSpectrometer/MuonRDO/MuonRDO/selection.xml b/MuonSpectrometer/MuonRDO/MuonRDO/selection.xml index bd4933b1c5b6..7e8b304148d0 100755 --- a/MuonSpectrometer/MuonRDO/MuonRDO/selection.xml +++ b/MuonSpectrometer/MuonRDO/MuonRDO/selection.xml @@ -54,6 +54,7 @@ <class name="TgcRdoContainer" /> <class name="std::vector<TgcRdo * >" /> <class name="DataVector<TgcRdo>" id="FBF8D72D-A6B9-4689-8E02-BB0F435BF2F7" /> + <class name="TgcRdo_Cache" /> <class name="MdtCsmContainer" /> <class name="std::vector<MdtCsm * >" /> @@ -63,14 +64,17 @@ <class name="RpcPadContainer" /> <class name="std::vector<RpcPad * >" /> <class name="DataVector<RpcPad>" id="85B897F6-E15D-4215-9DAC-EA2828BCEEC9" /> + <class name="RpcPad_Cache" /> <class name="CscRawDataContainer" /> <class name="std::vector<CscRawDataCollection * >" /> <class name="DataVector<CscRawDataCollection>" id="D7600810-31BC-4344-A3C6-9C59F47E5551" /> + <class name="CscRawDataCollection_Cache" /> - <class name="sTGC_RawDataContainer" /> - <class name="std::vector<sTGC_RawDataCollection * >" /> - <class name="DataVector<sTGC_RawDataCollection>" id="3786AB67-8A7A-4DA5-B178-3FE9CB3A6FD2" /> + <class name="STGC_RawDataContainer" /> + <class name="std::vector<STGC_RawDataCollection * >" /> + <class name="DataVector<STGC_RawDataCollection>" id="3786AB67-8A7A-4DA5-B178-3FE9CB3A6FD2" /> + <class name="STGC_RawDataCollection_Cache" /> </lcgdict> diff --git a/MuonSpectrometer/MuonRDO/src/CscRawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/CscRawDataContainer.cxx index 4e5c7e34075a..da7669a8f31e 100755 --- a/MuonSpectrometer/MuonRDO/src/CscRawDataContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/CscRawDataContainer.cxx @@ -16,6 +16,11 @@ CscRawDataContainer::CscRawDataContainer(unsigned int hashmax) { } +CscRawDataContainer::CscRawDataContainer(CscRawDataCollection_Cache* cache) + : IdentifiableContainer<CscRawDataCollection>(cache) +{ +} + // Destructor. CscRawDataContainer::~CscRawDataContainer() {} diff --git a/MuonSpectrometer/MuonRDO/src/MM_RawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/MM_RawDataContainer.cxx index 869216a5ec0c..eeaafc236b0b 100755 --- a/MuonSpectrometer/MuonRDO/src/MM_RawDataContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/MM_RawDataContainer.cxx @@ -16,6 +16,11 @@ Muon::MM_RawDataContainer::MM_RawDataContainer(unsigned int hashmax) { } +Muon::MM_RawDataContainer::MM_RawDataContainer(MM_RawDataCollection_Cache* cache) +: IdentifiableContainer<MM_RawDataCollection>(cache) +{ +} + // Destructor. Muon::MM_RawDataContainer::~MM_RawDataContainer() { diff --git a/MuonSpectrometer/MuonRDO/src/RpcPadContainer.cxx b/MuonSpectrometer/MuonRDO/src/RpcPadContainer.cxx index 9ea18fbb527d..1f0eb8831db1 100755 --- a/MuonSpectrometer/MuonRDO/src/RpcPadContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/RpcPadContainer.cxx @@ -38,6 +38,12 @@ RpcPadContainer::RpcPadContainer( unsigned int hashmax) // std::cout<<"RpcPadContainer ctor ["<<this<<"]"<<std::endl; } +RpcPadContainer::RpcPadContainer( RpcPad_Cache* cache) +: IdentifiableContainer<RpcPad>(cache) +{ + // std::cout<<"RpcPadContainer ctor ["<<this<<"]"<<std::endl; +} + //********************************************************************** // Destructor. diff --git a/MuonSpectrometer/MuonRDO/src/STGC_RawDataContainer.cxx b/MuonSpectrometer/MuonRDO/src/STGC_RawDataContainer.cxx index 3db6dae06e77..d812479fc1e9 100755 --- a/MuonSpectrometer/MuonRDO/src/STGC_RawDataContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/STGC_RawDataContainer.cxx @@ -15,6 +15,12 @@ Muon::STGC_RawDataContainer::STGC_RawDataContainer(unsigned int hashmax) { } +Muon::STGC_RawDataContainer::STGC_RawDataContainer(STGC_RawDataCollection_Cache* cache) +: IdentifiableContainer<STGC_RawDataCollection>(cache) +{ +} + + // Destructor. Muon::STGC_RawDataContainer::~STGC_RawDataContainer() { diff --git a/MuonSpectrometer/MuonRDO/src/TgcRdoContainer.cxx b/MuonSpectrometer/MuonRDO/src/TgcRdoContainer.cxx index fed2bb8a881c..e91962cd4777 100755 --- a/MuonSpectrometer/MuonRDO/src/TgcRdoContainer.cxx +++ b/MuonSpectrometer/MuonRDO/src/TgcRdoContainer.cxx @@ -22,6 +22,11 @@ TgcRdoContainer::TgcRdoContainer(unsigned int hashmax) { } +TgcRdoContainer::TgcRdoContainer(TgcRdo_Cache* cache) + : IdentifiableContainer<TgcRdo>(cache) +{ +} + // Destructor. TgcRdoContainer::~TgcRdoContainer() -- GitLab From bf20932e625a61623bd5d153767e2ef153234f89 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 7 Jan 2019 17:42:02 +0000 Subject: [PATCH 009/192] Some bug fixes to the CSC ROD decoder which was not included correctly when building. Small local update to the test config and adding cache creator for all tools. This can be removed before merge --- .../src/CSC_RawDataProviderTool.cxx | 2 +- .../MuonCSC_CnvTools/src/CscROD_Decoder.cxx | 24 ++++++++----- .../python/MuonBytestreamDecodeConfig.py | 36 ++++++++++++++----- 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx index 82dc982f945e..5370323573e1 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx @@ -39,7 +39,7 @@ Muon::CSC_RawDataProviderTool::CSC_RawDataProviderTool(const std::string& t, { declareInterface<IMuonRawDataProviderTool>(this); declareProperty("Decoder", m_decoder); - declareProperty ("CSCContainerCacheKey", m_rdoContainerCacheKey, "Optional external cache for the CSC container"); + declareProperty ("CscContainerCacheKey", m_rdoContainerCacheKey, "Optional external cache for the CSC container"); } diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx index 3ee1f9bdaae2..673840e401fc 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx @@ -218,7 +218,7 @@ void Muon::CscROD_Decoder::rodVersion2(const ROBFragment& robFrag, CscRawDataCo } else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = std::make_unique<CscRawDataContainer>(idColl); + rawCollection = std::make_unique<CscRawDataCollection>(idColl); } /** set the ROD id and the subDector id */ @@ -514,7 +514,9 @@ void Muon::CscROD_Decoder::rodVersion2(const ROBFragment& robFrag, CscRawDataCo // return; } - if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); + if(rawCollection) { + lock.addOrDelete(std::move( rawCollection ) ); + } ATH_MSG_DEBUG ( "end of CscROD_Decode::fillCollection()" ); return; @@ -547,7 +549,7 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo } else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = std::make_unique<CscRawDataContainer>(idColl); + rawCollection = std::make_unique<CscRawDataCollection>(idColl); } // set the ROD id and the subDector id @@ -589,7 +591,6 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo bool dpuFragment = rodReadOut.isDPU(p[rodHeader]); if (!dpuFragment) { ATH_MSG_ERROR ( "expecting a DPU fragment, Aborting..." ); - delete rawCollection; return; } @@ -648,7 +649,11 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo if (i < (size-rodFooter)) dpuFragment = rodReadOut.isDPU(p[i]); numberOfDPU++; } - if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); + if(rawCollection) { + lock.addOrDelete(std::move( rawCollection ) ); + } + + return; } @@ -686,7 +691,7 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo } else{ ATH_MSG_DEBUG ( "CSC RDO collection does not exist - creating a new one with hash = " << idColl ); - rawCollection = std::make_unique<CscRawDataContainer>(idColl); + rawCollection = std::make_unique<CscRawDataCollection>(idColl); } // set the ROD id and the subDector id @@ -701,7 +706,6 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo bool bodyFragment = rodReadOut.isBody(p[rodHeader]); if (!bodyFragment) { ATH_MSG_ERROR ( "expecting a body fragment, Aborting..." ); - delete rawCollection; return; } uint32_t i = rodHeader; @@ -747,8 +751,10 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo // check that the new fragment is body bodyFragment = rodReadOut.isBody(p[i]); } - if(rawCollection) ATH_CHECK(lock.addOrDelete(std::move( rawCollection ) )); - + if(rawCollection) { + lock.addOrDelete(std::move( rawCollection ) ); + } + return; } diff --git a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py index 87085da52a38..8fc7bf04f710 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py @@ -4,6 +4,22 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaCommon.Constants import VERBOSE, DEBUG, INFO +## This configuration function creates the IdentifiableCaches for RDO +# +# The function returns a ComponentAccumulator which should be loaded first +# If a configuration wants to use the cache, they need to use the same names as defined here +def MuonCacheCfg(): + acc = ComponentAccumulator() + + from MuonByteStream.MuonByteStreamConf import MuonCacheCreator + cacheCreator = MuonCacheCreator(MdtCsmCacheKey = "MdtCsmCache", + CscCacheKey = "CscCache", + RpcCacheKey = "RpcCache", + TgcCacheKey = "TgcCache") + acc.addEventAlgo( cacheCreator ) + return acc, cacheCreator + + ## This configuration function sets up everything for decoding RPC bytestream data into RDOs # # The forTrigger paramater is used to put the algorithm in RoI mode @@ -82,12 +98,6 @@ def TgcBytestreamDecodeCfg(flags, forTrigger=False): def MdtBytestreamDecodeCfg(flags, forTrigger=False): acc = ComponentAccumulator() - # Configure the IdentifiableCaches when running for trigger - if forTrigger: - from MuonByteStream.MuonByteStreamConf import MuonCacheCreator - cacheCreator = MuonCacheCreator(MdtCsmCacheKey= "MdtCsmCache") - acc.addEventAlgo( cacheCreator ) - # We need the MDT cabling to be setup from MuonConfig.MuonCablingConfig import MDTCablingConfigCfg acc.merge( MDTCablingConfigCfg(flags)[0] ) @@ -149,6 +159,9 @@ def CscBytestreamDecodeCfg(flags, forTrigger=False): from MuonCSC_CnvTools.MuonCSC_CnvToolsConf import Muon__CSC_RawDataProviderTool MuonCscRawDataProviderTool = Muon__CSC_RawDataProviderTool(name = "CSC_RawDataProviderTool", Decoder = CSCRodDecoder ) + if forTrigger: + MuonCscRawDataProviderTool.CscContainerCacheKey = "CscCache" + acc.addPublicTool( MuonCscRawDataProviderTool ) # This should be removed, but now defined as PublicTool at MuFastSteering # Setup the RAW data provider algorithm @@ -160,7 +173,7 @@ def CscBytestreamDecodeCfg(flags, forTrigger=False): if __name__=="__main__": # To run this, do e.g. - # python ../athena/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeCfg.py + # python ../athena/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecode.py from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior=1 @@ -187,6 +200,11 @@ if __name__=="__main__": from ByteStreamCnvSvc.ByteStreamConfig import TrigBSReadCfg cfg.merge(TrigBSReadCfg(ConfigFlags )) + # Setup IdentifiableCaches before anything else + muoncacheacc, muoncachealg = MuonCacheCfg() + cfg.merge( muoncacheacc ) + cfg.addEventAlgo( muoncachealg ) + # Schedule Rpc data decoding - once mergeAll is working can simplify these lines rpcdecodingAcc, rpcdecodingAlg = RpcBytestreamDecodeCfg( ConfigFlags ) cfg.merge( rpcdecodingAcc ) @@ -198,12 +216,12 @@ if __name__=="__main__": cfg.addEventAlgo( tgcdecodingAlg ) # Schedule Mdt data decoding - once mergeAll is working can simplify these lines - mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) + mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags , True) cfg.merge( mdtdecodingAcc ) cfg.addEventAlgo( mdtdecodingAlg ) # Schedule Csc data decoding - once mergeAll is working can simplify these lines - cscdecodingAcc, cscdecodingAlg = CscBytestreamDecodeCfg( ConfigFlags ) + cscdecodingAcc, cscdecodingAlg = CscBytestreamDecodeCfg( ConfigFlags , True) cfg.merge( cscdecodingAcc ) cfg.addEventAlgo( cscdecodingAlg ) -- GitLab From da7d05176bcc9701ad60be37a438c3a5a0cde7ab Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 16:50:48 +0100 Subject: [PATCH 010/192] Updated TrigT1CaloByteStream --- .../src/xaod/PpmByteStreamReadV1V2Tool.cxx | 173 +++++++++--------- .../src/xaod/PpmByteStreamReadV1V2Tool.h | 15 +- .../src/xaod/SubBlockStatus.h | 3 + .../test/TrigT1CaloByteStream_entries.cxx | 3 - 4 files changed, 105 insertions(+), 89 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx index d7de8e6edce0..5a926c38333d 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.cxx @@ -12,7 +12,8 @@ // =========================================================================== #include "eformat/SourceIdentifier.h" #include "TrigT1Interfaces/TrigT1CaloDefs.h" -#include "xAODTrigL1Calo/TriggerTowerAuxContainer.h" +#include "TrigT1CaloUtils/DataError.h" +#include "xAODTrigL1Calo/TriggerTowerAuxContainer.h" #include "CaloUserHeader.h" #include "SubBlockHeader.h" @@ -30,11 +31,15 @@ uint32_t bitFieldSize(uint32_t word, uint8_t offset, uint8_t size) { return (word >> offset) & ((1U << size) - 1); } +uint32_t crateModuleMask(uint8_t crate, uint8_t module) { + return (crate << 8) | (1 << 4) | module; +} + uint32_t coolId(uint8_t crate, uint8_t module, uint8_t channel) { const uint8_t pin = channel % 16; const uint8_t asic = channel / 16; - return (crate << 24) | (1 << 20) | (module << 16) | (pin << 8) | asic; -} + return (crateModuleMask(crate, module) << 16) | (pin << 8) | asic; +} int16_t pedCorrection(uint16_t twoBytePedCor) { return twoBytePedCor > 511? (twoBytePedCor - 1024): twoBytePedCor; @@ -71,8 +76,8 @@ PpmByteStreamReadV1V2Tool::PpmByteStreamReadV1V2Tool(const std::string& name /*= m_verCode(0), m_ppPointer(0), m_ppMaxBit(0), - m_triggerTowers(nullptr), - m_maxSizeSeen(0) + m_maxSizeSeen(0), + m_triggerTowers(nullptr) { declareInterface<PpmByteStreamReadV1V2Tool>(this); declareProperty("PpmMappingTool", m_ppmMaps, @@ -100,7 +105,7 @@ StatusCode PpmByteStreamReadV1V2Tool::initialize() { ServiceHandle<IIncidentSvc> incidentSvc("IncidentSvc", name()); CHECK(incidentSvc.retrieve()); incidentSvc->addListener(this, IncidentType::EndEvent); - + return StatusCode::SUCCESS; } // =========================================================================== @@ -115,8 +120,8 @@ StatusCode PpmByteStreamReadV1V2Tool::finalize() { void PpmByteStreamReadV1V2Tool::handle( const Incident& inc ) { if ( inc.type() == IncidentType::EndEvent) { - - } + + } } // Conversion bytestream to trigger towers StatusCode PpmByteStreamReadV1V2Tool::convert( @@ -124,9 +129,11 @@ StatusCode PpmByteStreamReadV1V2Tool::convert( xAOD::TriggerTowerContainer* const ttCollection) { m_triggerTowers = ttCollection; - if (m_maxSizeSeen > m_triggerTowers->capacity()) + + if (m_maxSizeSeen > m_triggerTowers->capacity()){ m_triggerTowers->reserve (m_maxSizeSeen); - m_coolIds.clear(); + } + m_subDetectorID = eformat::TDAQ_CALO_PREPROC; m_requestedType = RequestType::PPM; @@ -135,11 +142,13 @@ StatusCode PpmByteStreamReadV1V2Tool::convert( int robCounter = 1; for (; rob != robEnd; ++rob, ++robCounter) { + StatusCode sc = processRobFragment_(rob, RequestType::PPM); if (!sc.isSuccess()) { } } + m_maxSizeSeen = std::max (m_maxSizeSeen, m_triggerTowers->size()); m_triggerTowers = nullptr; return StatusCode::SUCCESS; @@ -219,7 +228,6 @@ StatusCode PpmByteStreamReadV1V2Tool::processRobFragment_( } ATH_MSG_DEBUG("Treating crate " << rodCrate << " slink " << rodSlink); - m_caloUserHeader = CaloUserHeader(*payload); if (!m_caloUserHeader.isValid()) { ATH_MSG_ERROR("Invalid or missing user header"); @@ -245,7 +253,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processRobFragment_( } else if (SubBlockHeader::isSubBlockHeader(*payload)) { indata = 0; CHECK(processPpmBlock_()); - + m_ppLuts.clear(); m_ppFadcs.clear(); m_ppBlock.clear(); @@ -263,7 +271,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processRobFragment_( ); subBlock = blockType & 0xe; } else if (blockType == (subBlock | 1)) { - m_subBlockStatus = SubBlockStatus(*payload); + processSubBlockStatus_(m_subBlockHeader.crate(), m_subBlockHeader.module(), *payload); subBlock = 0; } } else { @@ -283,14 +291,14 @@ StatusCode PpmByteStreamReadV1V2Tool::processRobFragment_( StatusCode PpmByteStreamReadV1V2Tool::processPpmWord_(uint32_t word, int indata) { - if ( (m_subBlockHeader.format() == 0) - || (m_subBlockHeader.format() >= 2) + if ( (m_subBlockHeader.format() == 0) + || (m_subBlockHeader.format() >= 2) || (m_verCode >= 0x41)) { m_ppBlock.push_back(word); } else if ((m_verCode == 0x21) || (m_verCode == 0x31)) { return processPpmStandardR3V1_(word, indata); } else { - ATH_MSG_ERROR("Unsupported PPM version:format (" + ATH_MSG_ERROR("Unsupported PPM version:format (" << m_verCode << ":" << m_subBlockHeader.format() <<") combination"); return StatusCode::FAILURE; @@ -332,10 +340,10 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmBlock_() { CHECK(sc); return sc; } - ATH_MSG_ERROR("Unknown PPM subheader format '" - << int(m_subBlockHeader.format()) + ATH_MSG_ERROR("Unknown PPM subheader format '" + << int(m_subBlockHeader.format()) << "' for rob version '" - << MSG::hex << int(m_verCode) + << MSG::hex << int(m_verCode) << MSG::dec << "'" ); return StatusCode::FAILURE; } @@ -362,8 +370,8 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmNeutral_() { bool nonZeroData = false; for (uint8_t slice = 0; slice < numLut; ++slice) { - if (rotated[slice] - || rotated[slice + numLut] + if (rotated[slice] + || rotated[slice + numLut] || rotated[slice + 2 * numLut + numFadc]) { // CP, JET nonZeroData = true; break; @@ -385,7 +393,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmNeutral_() { lcpVal.push_back(rotated[slice] & 0xff); ljeVal.push_back(rotated[slice + numLut] & 0xff); pedCor.push_back(::pedCorrection(rotated[slice + 2 * numLut + numFadc] & 0x3ff)); - + lcpBcidVec.push_back((rotated[slice] >> 8) & 0x7); ljeSat80Vec.push_back((rotated[slice + numLut] >> 8) & 0x7); pedEn.push_back((rotated[slice + 2 * numLut + numFadc] >> 10) & 0x1); @@ -433,8 +441,8 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR3V1_() { while (chan < 64) { uint8_t present = 1; if (m_subBlockHeader.format() == 3) { - present = getPpmBytestreamField_(1); - } + present = getPpmBytestreamField_(1); + } if (present == 1) { uint8_t lutVal = 0; @@ -504,7 +512,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR3V1_() { }catch (const std::out_of_range& ex) { ATH_MSG_WARNING("Excess Data in Sub-block"); m_errorTool->rodError(m_rodSourceId, L1CaloSubBlock::UNPACK_EXCESS_DATA); - } + } return StatusCode::SUCCESS; } @@ -548,7 +556,7 @@ std::vector<uint16_t> PpmByteStreamReadV1V2Tool::getPpmAdcSamplesR3_( StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR3V1_(uint32_t word, int inData){ - StatusCode sc; + StatusCode sc = StatusCode::SUCCESS; if (m_subBlockHeader.seqNum() == 63) { // Error block ATH_MSG_DEBUG("Error PPM subblock"); //TODO: errorTool @@ -559,7 +567,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR3V1_(uint32_t word, const uint8_t wordsPerBlock = 8; // 16 towers (4 MCMs) / 2 per word const uint8_t iBlk = inData / wordsPerBlock; uint8_t iChan = m_subBlockHeader.seqNum() + 2 * (inData % wordsPerBlock); - + if (iBlk < numLut) { // First all LUT values for(uint8_t i = 0; i < 2; ++i) { uint16_t subword = (word >> 16 * i) & 0x7ff; @@ -572,12 +580,12 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR3V1_(uint32_t word, m_ppFadcs[iChan].push_back(subword); iChan++; } - + } else{ ATH_MSG_WARNING("Error decoding Ppm word (run1)"); sc = StatusCode::FAILURE; } - + } return sc; } @@ -587,7 +595,6 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmBlockR4V1_() { CHECK(processPpmStandardR4V1_()); return StatusCode::SUCCESS; } else if (m_subBlockHeader.format() >= 2) { - // TODO: convert compressed CHECK(processPpmCompressedR4V1_()); return StatusCode::SUCCESS; } @@ -609,19 +616,19 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { // } try{ - for(uint8_t chan = 0; chan < 64; ++chan) { + for(uint8_t chan = 0; chan < s_channels; ++chan) { uint8_t present = 1; std::vector<uint8_t> haveLut(numLut, 0); std::vector<uint8_t> lcpVal(numLut, 0); - + std::vector<uint8_t> lcpExt(numLut, 0); std::vector<uint8_t> lcpSat(numLut, 0); std::vector<uint8_t> lcpPeak(numLut, 0); std::vector<uint8_t> lcpBcidVec(numLut, 0); - + std::vector<uint8_t> ljeVal(numLut, 0); - + std::vector<uint8_t> ljeLow(numLut, 0); std::vector<uint8_t> ljeHigh(numLut, 0); std::vector<uint8_t> ljeRes(numLut, 0); @@ -631,7 +638,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { std::vector<uint8_t> adcExt(numAdc, 0); std::vector<int16_t> pedCor(numLut, 0); std::vector<uint8_t> pedEn(numLut, 0); - + int8_t encoding = -1; int8_t minIndex = -1; @@ -666,9 +673,9 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { ljeVal[i] = getPpmBytestreamField_(3); } } - } + } } else if (encoding < 6) { - // Get LUT presence flag for each LUT slice. + // Get LUT presence flag for each LUT slice. for(uint8_t i = 0; i < numLut; ++i){ haveLut[i] = getPpmBytestreamField_(1); } @@ -681,7 +688,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { adcExt[i] = getPpmBytestreamField_(1); } } - + for(uint8_t i = 0; i < numLut; ++i){ if (haveLut[i] == 1) { lcpVal[i] = getPpmBytestreamField_(8); @@ -690,7 +697,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { lcpPeak[i] = getPpmBytestreamField_(1); } } - // Get JEP LUT values and corresponding bits. + // Get JEP LUT values and corresponding bits. for(uint8_t i = 0; i < numLut; ++i){ if (haveLut[i] == 1) { ljeVal[i] = getPpmBytestreamField_(8); @@ -699,7 +706,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { ljeRes[i] = getPpmBytestreamField_(1); } } - + } } @@ -728,7 +735,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { for(uint8_t i=0; i < numLut; ++i){ lcpBcidVec[i] = uint8_t((lcpPeak[i] << 2) | (lcpSat[i] << 1) | lcpExt[i]); - ljeSat80Vec[i] = uint8_t((ljeRes[i] << 2) | (ljeHigh[i] << 1) | ljeLow[i]); + ljeSat80Vec[i] = uint8_t((ljeRes[i] << 2) | (ljeHigh[i] << 1) | ljeLow[i]); } CHECK(addTriggerTowerV2_(m_subBlockHeader.crate(), m_subBlockHeader.module(), chan, @@ -736,11 +743,12 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmCompressedR4V1_() { std::move(ljeVal), std::move(ljeSat80Vec), std::move(adcVal), std::move(adcExt), std::move(pedCor), std::move(pedEn))); - } + } // for } catch (const std::out_of_range& ex) { ATH_MSG_WARNING("Excess Data in Sub-block"); m_errorTool->rodError(m_rodSourceId, L1CaloSubBlock::UNPACK_EXCESS_DATA); } + //Check status workd return StatusCode::SUCCESS; } @@ -751,7 +759,7 @@ void PpmByteStreamReadV1V2Tool::interpretPpmHeaderR4V1_(uint8_t numAdc, if (numAdc == 5) { minHeader = getPpmBytestreamField_(4); - //ATH_MSG_DEBUG("SASHA: minHeader=" << int(minHeader)); + minIndex = minHeader % 5; if (minHeader < 15){ // Encodings 0-5 if (minHeader < 10) { @@ -778,7 +786,7 @@ void PpmByteStreamReadV1V2Tool::interpretPpmHeaderR4V1_(uint8_t numAdc, uint8_t encValue = fieldSize - 1; if (minHeader == encValue) { // Encoding 6 encoding = 6; - minIndex = 0; + minIndex = 0; } else { minHeader += getPpmBytestreamField_(2) << numBits; minIndex = minHeader % fieldSize; @@ -807,15 +815,15 @@ std::vector<uint16_t> PpmByteStreamReadV1V2Tool::getPpmAdcSamplesR4_( adc[minIndex] = minAdc; for(uint8_t i = 1; i < numAdc; ++i) { adc[i == minIndex? 0: i] = getPpmBytestreamField_(encoding + 2) + minAdc; - } - return adc; + } + return adc; } else { std::vector<uint16_t> adc(numAdc, 0); uint16_t minAdc = getPpmBytestreamField_(1) ? getPpmBytestreamField_(encoding * 2) - : (getPpmBytestreamField_(5) + + : (getPpmBytestreamField_(5) + m_caloUserHeader.ppLowerBound()); - + adc[minIndex] = minAdc; for (uint8_t i = 1; i < numAdc; ++i) { adc[minIndex == i? 0: i] = getPpmBytestreamField_( @@ -848,6 +856,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR4V1_() { m_ppMaxBit = 31 * m_ppBlock.size(); for (uint8_t chan = 0; chan < 64; ++chan) { + //for (uint8_t k = 0; k < 4; ++k) { std::vector<uint8_t> lcpVal; std::vector<uint8_t> lcpBcidVec; @@ -900,7 +909,7 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR4V1_() { StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR3V1_() { for(auto lut : m_ppLuts) { CHECK(addTriggerTowerV1_( - m_subBlockHeader.crate(), + m_subBlockHeader.crate(), m_subBlockHeader.module(), lut.first, lut.second, @@ -909,6 +918,26 @@ StatusCode PpmByteStreamReadV1V2Tool::processPpmStandardR3V1_() { return StatusCode::SUCCESS; } +void PpmByteStreamReadV1V2Tool::processSubBlockStatus_(uint8_t crate, uint8_t module, uint32_t payload){ + LVL1::DataError errorBits(0); + errorBits.set(LVL1::DataError::SubStatusWord, payload); + + const uint32_t error = errorBits.error(); + int curr = m_triggerTowers->size() - 1; + for(int i=0; i < s_channels; ++i){ + if (curr < 0){ + break; + } + auto tt = (*m_triggerTowers)[curr--]; + if (tt->coolId() >> 16 & crateModuleMask(crate, module)){ + tt->setErrorWord(error); + }else{ + break; + } + } +} + + StatusCode PpmByteStreamReadV1V2Tool::addTriggerTowerV2_( uint8_t crate, uint8_t module, @@ -922,52 +951,34 @@ StatusCode PpmByteStreamReadV1V2Tool::addTriggerTowerV2_( std::vector<int16_t>&& pedCor, std::vector<uint8_t>&& pedEn) { + uint32_t coolId = ::coolId(crate, module, channel); + int layer = 0; - int error = 0; double eta = 0.; double phi = 0.; - - bool isNotSpare = m_ppmMaps->mapping(crate, module, channel, eta, phi, layer); - if (!isNotSpare && !m_ppmIsRetSpare && !m_ppmIsRetMuon){ + + bool isData = m_ppmMaps->mapping(crate, module, channel, eta, phi, layer); + + if (!isData && !m_ppmIsRetSpare && !m_ppmIsRetMuon){ return StatusCode::SUCCESS; } - if (!isNotSpare) { + if (!isData) { const int pin = channel % 16; const int asic = channel / 16; eta = 16 * crate + module; phi = 4 * pin + asic; } - uint32_t coolId = ::coolId(crate, module, channel); - CHECK(m_coolIds.count(coolId) == 0); - m_coolIds.insert(coolId); - xAOD::TriggerTower* tt = new xAOD::TriggerTower(); m_triggerTowers->push_back(tt); - // tt->initialize( - // const uint_least32_t& coolId, - // const uint_least8_t& layer, - // const float& eta, - // const float& phi, - // const std::vector<uint_least8_t>& lut_cp, - // const std::vector<uint_least8_t>& lut_jep, - // const std::vector<int_least16_t>& correction, - // const std::vector<uint_least8_t>& correctionEnabled, - // const std::vector<uint_least8_t>& bcidVec, - // const std::vector<uint_least16_t>& adc, - // const std::vector<uint_least8_t>& bcidExt, - // const std::vector<uint_least8_t>& sat80, - // const uint_least16_t& error, - // const uint_least8_t& peak, - // const uint_least8_t& adcPeak - // ); + tt->initialize(coolId, eta, phi, std::move(lcpVal), std::move(ljeVal), std::move(pedCor), std::move(pedEn), std::move(lcpBcidVec), std::move(adcVal), std::move(adcExt), std::move(ljeSat80Vec), - error, m_caloUserHeader.lut(), + 0, m_caloUserHeader.lut(), m_caloUserHeader.ppFadc()); return StatusCode::SUCCESS; } @@ -1033,7 +1044,7 @@ StatusCode PpmByteStreamReadV1V2Tool::addTriggerTowerV1_( const std::vector<uint32_t>& PpmByteStreamReadV1V2Tool::ppmSourceIDs( const std::string& sgKey) { - + const int crates = 8; m_ppmIsRetMuon = false; m_ppmIsRetSpare = false; @@ -1043,7 +1054,7 @@ const std::vector<uint32_t>& PpmByteStreamReadV1V2Tool::ppmSourceIDs( } else if (sgKey.find("Spare") != std::string::npos) { m_ppmIsRetSpare = true; } - + if (m_ppmSourceIDs.empty()) { for (int crate = 0; crate < crates; ++crate) { for (int slink = 0; slink < m_srcIdMap->maxSlinks(); ++slink) { @@ -1092,12 +1103,6 @@ uint32_t PpmByteStreamReadV1V2Tool::getPpmBytestreamField_(const uint8_t numBits result = field1 | (field2 << nb1); } - // std::bitset<32> r(result); - // for(size_t i = 0; i < numBits; ++i) { - // std::cout << int(r[i]); - // } - // std::cout << " " << result << std::endl; - return result; } diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.h index 1a4f26933fb3..7d9702345557 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/PpmByteStreamReadV1V2Tool.h @@ -11,6 +11,9 @@ // =========================================================================== #include <stdint.h> #include <vector> +#include <unordered_map> +#include <unordered_set> + // =========================================================================== // Athena: @@ -138,6 +141,8 @@ private: std::vector<uint8_t>&& bcidExt ); + void processSubBlockStatus_(uint8_t crate, uint8_t module, uint32_t word); + private: ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool; /// Channel mapping tool @@ -148,7 +153,7 @@ private: private: CaloUserHeader m_caloUserHeader; SubBlockHeader m_subBlockHeader; - SubBlockStatus m_subBlockStatus; + // SubBlockStatus m_subBlockStatus; uint8_t m_subDetectorID; RequestType m_requestedType; @@ -175,10 +180,16 @@ private: // For RUN1 std::map<uint8_t, std::vector<uint16_t>> m_ppLuts; std::map<uint8_t, std::vector<uint16_t>> m_ppFadcs; + size_t m_maxSizeSeen; // ========================================================================== private: xAOD::TriggerTowerContainer* m_triggerTowers; - size_t m_maxSizeSeen; + +private: + static const uint8_t s_crates = 8; + static const uint8_t s_modules = 16; + static const uint8_t s_channels = 64; + static const uint16_t s_maxtowers = s_crates * s_modules * s_channels; }; // =========================================================================== diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/SubBlockStatus.h b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/SubBlockStatus.h index d19b867af5d0..94aa16179621 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/SubBlockStatus.h +++ b/Trigger/TrigT1/TrigT1CaloByteStream/src/xaod/SubBlockStatus.h @@ -31,6 +31,9 @@ public: uint8_t protocol() const; uint8_t parity() const; uint8_t bcLowBits() const; + + bool isPresent() const { return m_status != 0; } + }; diff --git a/Trigger/TrigT1/TrigT1CaloByteStream/test/TrigT1CaloByteStream_entries.cxx b/Trigger/TrigT1/TrigT1CaloByteStream/test/TrigT1CaloByteStream_entries.cxx index 9096a5979ed1..499e22108b3d 100644 --- a/Trigger/TrigT1/TrigT1CaloByteStream/test/TrigT1CaloByteStream_entries.cxx +++ b/Trigger/TrigT1/TrigT1CaloByteStream/test/TrigT1CaloByteStream_entries.cxx @@ -1,6 +1,3 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ #include "AthContainers/DataVector.h" // Post-LS1 -- GitLab From d4cf7ef9970b14ad4631909bf69c1c524209e030 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:04:48 +0100 Subject: [PATCH 011/192] Updated TrigT1CaloCalibConditions --- .../L1CaloDerivedRunPars.h | 38 ++ .../L1CaloDerivedRunParsContainer.h | 63 ++ .../L1CaloPprChanStrategy.h | 43 ++ .../L1CaloPprChanStrategyContainer.h | 63 ++ .../L1CaloPprConditionsContainerRun2.h | 2 +- .../L1CaloPprConditionsRun2.h | 9 + .../L1CaloReadoutConfig.h | 176 ++++++ .../L1CaloReadoutConfigContainer.h | 61 ++ .../L1CaloRunParameters.h | 62 ++ .../L1CaloRunParametersContainer.h | 63 ++ .../TrigT1CaloCalibConditionsDict.h | 17 + .../TrigT1CaloCalibConditions/selection.xml | 18 +- .../python/CreateClassesForFolder.py | 4 +- .../L1CaloCalibConditionsRun2_jobOptions.py | 17 + ...CaloCalibConditionsTier0Run2_jobOptions.py | 1 + .../src/L1CaloDerivedRunPars.cxx | 21 + .../src/L1CaloDerivedRunParsContainer.cxx | 99 +++ .../src/L1CaloPpmDeadChannelsContainer.cxx | 2 +- .../src/L1CaloPprChanCalibContainer.cxx | 2 +- .../src/L1CaloPprChanDefaultsContainer.cxx | 2 +- .../src/L1CaloPprChanStrategy.cxx | 28 + .../src/L1CaloPprChanStrategyContainer.cxx | 104 +++ .../src/L1CaloPprConditionsContainerRun2.cxx | 595 +++++++++++++----- .../src/L1CaloPprConditionsRun2.cxx | 43 ++ .../src/L1CaloReadoutConfig.cxx | 58 ++ .../src/L1CaloReadoutConfigContainer.cxx | 232 +++++++ .../src/L1CaloRunParameters.cxx | 26 + .../src/L1CaloRunParametersContainer.cxx | 122 ++++ 28 files changed, 1807 insertions(+), 164 deletions(-) create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfig.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParameters.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunPars.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunParsContainer.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategy.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategyContainer.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfig.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfigContainer.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParameters.cxx create mode 100644 Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParametersContainer.cxx diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h new file mode 100644 index 000000000000..e6da63e47fc1 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h @@ -0,0 +1,38 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H + +#include <string> +#include <iostream> + +/** + * Folder <-> Object mapping for /TRIGGER/L1Calo/V1/Conditions/DerivedRunPars . + * Automatically created using: + * + * ../python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V1/Conditions/DerivedRunPars + */ +class L1CaloDerivedRunPars +{ + friend std::ostream& operator<<(std::ostream& output, const L1CaloDerivedRunPars& r); +public: + L1CaloDerivedRunPars() {} + L1CaloDerivedRunPars(unsigned int channelId, const std::string& timingRegime, const std::string& tierZeroTag); + + unsigned int channelId() const { return m_channelId; } + std::string timingRegime() const { return m_timingRegime; } + std::string tierZeroTag() const { return m_tierZeroTag; } + + void setChannelId(unsigned int channelId) { m_channelId = channelId; } + void settimingRegime(const std::string& timingRegime) { m_timingRegime = timingRegime; } + void settierZeroTag(const std::string& tierZeroTag) { m_tierZeroTag = tierZeroTag; } + +private: + unsigned int m_channelId = 0; + std::string m_timingRegime = 0; + std::string m_tierZeroTag = 0; +}; + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h new file mode 100644 index 000000000000..7fe187481fce --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h @@ -0,0 +1,63 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARSCONTAINER_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARSCONTAINER_H + +#include <map> +#include <string> +#include <vector> +#include "AthenaKernel/CLASS_DEF.h" +#include "GaudiKernel/DataObject.h" +#include "TrigT1CaloCalibConditions/AbstractL1CaloPersistentCondition.h" +#include "TrigT1CaloCalibConditions/L1CaloCoolChannelId.h" + +class CondAttrListCollection; +class L1CaloDerivedRunPars; + +/*** +* Container of L1CaloDerivedRunPars objects. Automatically created using: +* +* ../python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V1/Conditions/DerivedRunPars +*/ +class L1CaloDerivedRunParsContainer : public DataObject, virtual public AbstractL1CaloPersistentCondition +{ +private: + enum eAttrSpecification { etimingRegime, etierZeroTag }; +public: + L1CaloDerivedRunParsContainer(); + L1CaloDerivedRunParsContainer(const std::string& folderKey); + virtual ~L1CaloDerivedRunParsContainer() {} + + // interface of AbstractL1CaloPersistentCondition + using AbstractL1CaloPersistentCondition::makeTransient; + virtual void makeTransient(const std::map<std::string, CondAttrListCollection*>); + virtual DataObject* makePersistent() const; + virtual std::vector<std::string> coolInputKeys() const { return {m_coolFolderKey}; } + virtual std::string coolOutputKey() const { return m_coolFolderKey; } + virtual void clear() { m_derivedRunParss.clear(); } + + // getters + const L1CaloDerivedRunPars* derivedRunPars(unsigned int channelId) const; + const L1CaloDerivedRunPars* derivedRunPars(const L1CaloCoolChannelId& channelId) const { + return derivedRunPars(channelId.id()); + } + + using const_iterator = std::vector<L1CaloDerivedRunPars>::const_iterator; + const_iterator begin() const { return m_derivedRunParss.begin(); } + const_iterator end() const { return m_derivedRunParss.end(); } + + // setters + void addDerivedRunPars(const L1CaloDerivedRunPars& derivedRunPars); + + void dump() const; + +private: + std::vector<L1CaloDerivedRunPars> m_derivedRunParss; + std::string m_coolFolderKey = "/TRIGGER/L1Calo/V1/Conditions/DerivedRunPars"; +}; + +CLASS_DEF( L1CaloDerivedRunParsContainer, 1081812192, 1 ) + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARSCONTAINER_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h new file mode 100644 index 000000000000..66fc2cb94d38 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h @@ -0,0 +1,43 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGY_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGY_H + +#include <iostream> +#include <string> +/** + * Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Configuration/PprChanStrategy . + * Automatically created using: + * + * ../athena/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V2/Configuration/PprChanStrategy + */ +class L1CaloPprChanStrategy +{ + friend std::ostream& operator<<(std::ostream& output, const L1CaloPprChanStrategy& r); +public: + L1CaloPprChanStrategy() {} + L1CaloPprChanStrategy(unsigned int channelId, const std::string& strategy, unsigned int code, const std::string& timingRegime, const std::string& description); + + unsigned int channelId() const { return m_channelId; } + std::string strategy() const { return m_strategy; } + unsigned int code() const { return m_code; } + std::string timingRegime() const { return m_timingRegime; } + std::string description() const { return m_description; } + + void setChannelId(unsigned int channelId) { m_channelId = channelId; } + void setStrategy(const std::string& strategy) { m_strategy = strategy; } + void setCode(unsigned int code) { m_code = code; } + void setTimingRegime(const std::string& timingRegime) { m_timingRegime = timingRegime; } + void setDescription(const std::string& description) { m_description = description; } + +private: + unsigned int m_channelId = 0; + std::string m_strategy = 0; + unsigned int m_code = 0; + std::string m_timingRegime = 0; + std::string m_description = 0; +}; + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGY_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h new file mode 100644 index 000000000000..7c6cb4dd67de --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h @@ -0,0 +1,63 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGYCONTAINER_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGYCONTAINER_H + +#include <map> +#include <string> +#include <vector> +#include "AthenaKernel/CLASS_DEF.h" +#include "GaudiKernel/DataObject.h" +#include "TrigT1CaloCalibConditions/AbstractL1CaloPersistentCondition.h" +#include "TrigT1CaloCalibConditions/L1CaloCoolChannelId.h" + +class CondAttrListCollection; +class L1CaloPprChanStrategy; + +/*** +* Container of L1CaloPprChanStrategy objects. Automatically created using: +* +* ../athena/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V2/Configuration/PprChanStrategy +*/ +class L1CaloPprChanStrategyContainer : public DataObject, virtual public AbstractL1CaloPersistentCondition +{ +private: + enum eAttrSpecification { eStrategy, eCode, eTimingRegime, eDescription }; +public: + L1CaloPprChanStrategyContainer(); + L1CaloPprChanStrategyContainer(const std::string& folderKey); + virtual ~L1CaloPprChanStrategyContainer() {} + + // interface of AbstractL1CaloPersistentCondition + using AbstractL1CaloPersistentCondition::makeTransient; + virtual void makeTransient(const std::map<std::string, CondAttrListCollection*>); + virtual DataObject* makePersistent() const; + virtual std::vector<std::string> coolInputKeys() const { return {m_coolFolderKey}; } + virtual std::string coolOutputKey() const { return m_coolFolderKey; } + virtual void clear() { m_pprChanStrategys.clear(); } + + // getters + const L1CaloPprChanStrategy* pprChanStrategy(unsigned int channelId) const; + const L1CaloPprChanStrategy* pprChanStrategy(const L1CaloCoolChannelId& channelId) const { + return pprChanStrategy(channelId.id()); + } + + using const_iterator = std::vector<L1CaloPprChanStrategy>::const_iterator; + const_iterator begin() const { return m_pprChanStrategys.begin(); } + const_iterator end() const { return m_pprChanStrategys.end(); } + + // setters + void addPprChanStrategy(const L1CaloPprChanStrategy& pprChanStrategy); + + void dump() const; + +private: + std::vector<L1CaloPprChanStrategy> m_pprChanStrategys; + std::string m_coolFolderKey = "/TRIGGER/L1Calo/V2/Configuration/PprChanStrategy"; +}; + +CLASS_DEF( L1CaloPprChanStrategyContainer, 1240855406, 1 ) + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALOPPRCHANSTRATEGYCONTAINER_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsContainerRun2.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsContainerRun2.h index 392fd213b66f..377c3f40025c 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsContainerRun2.h +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsContainerRun2.h @@ -41,7 +41,7 @@ private: eLutJepStrategy, eLutJepOffset, eLutJepNoiseCut, eLutJepSlope, eLutJepPar1, eLutJepPar2, eLutJepPar3, eLutJepPar4, eLutJepScale}; public: - enum eCoolFolders { ePprChanDefaults, ePprChanCalib }; + enum eCoolFolders { ePprChanDefaults, ePprChanCalib, ePprChanCalibCommon, ePprChanCalibStrategy }; L1CaloPprConditionsContainerRun2(); L1CaloPprConditionsContainerRun2(const std::map<L1CaloPprConditionsContainerRun2::eCoolFolders, std::string>& folderKeysMap); diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsRun2.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsRun2.h index 96a5688bf9ea..0253a6e51b8c 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsRun2.h +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloPprConditionsRun2.h @@ -22,6 +22,7 @@ class L1CaloPprConditionsRun2 public: L1CaloPprConditionsRun2() = default; + L1CaloPprConditionsRun2(unsigned short extBcidThreshold, unsigned short satBcidThreshLow, unsigned short satBcidThreshHigh, @@ -55,6 +56,12 @@ public: unsigned int pedValue, float pedMean, unsigned int pedFirSum); + + void initializeByStrategy(unsigned short firStartBit, short int firCoeff1, + short int firCoeff2, short int firCoeff3, short int firCoeff4, + short int firCoeff5, unsigned short lutCpSlope, unsigned short lutCpNoiseCut, + unsigned short lutJepSlope, unsigned short lutJepNoiseCut); + virtual ~L1CaloPprConditionsRun2() {}; // getters @@ -88,6 +95,8 @@ public: float pedMean() const { return m_pedMean; } unsigned int pedFirSum() const { return m_pedFirSum; } + + private: friend std::ostream& operator<<(std::ostream& output, const L1CaloPprConditionsRun2& r); diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfig.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfig.h new file mode 100644 index 000000000000..6d33e538378f --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfig.h @@ -0,0 +1,176 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIG_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIG_H + +#include <string> +/** + * Folder <-> Object mapping for /TRIGGER/L1Calo/V2/Configuration/ReadoutConfig . + * Automatically created using: + * + * ../python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V2/Configuration/ReadoutConfig + */ +class L1CaloReadoutConfig +{ +public: + L1CaloReadoutConfig() {} + L1CaloReadoutConfig(unsigned int channelId, const std::string& description, unsigned int baselinePointer, unsigned int numFadcSlices, unsigned int l1aFadcSlice, unsigned int numLutSlices, unsigned int l1aLutSlice, unsigned int numProcSlices, unsigned int l1aProcSlice, unsigned int numTopoSlices, unsigned int l1aTopoSlice, unsigned int latencyPpmFadc, unsigned int latencyPpmLut, unsigned int latencyCpmInput, unsigned int latencyCpmHits, unsigned int latencyCpmRoi, unsigned int latencyJemInput, unsigned int latencyJemRoi, unsigned int latencyCpCmxBackplane, unsigned int latencyCpCmxLocal, unsigned int latencyCpCmxCable, unsigned int latencyCpCmxSystem, unsigned int latencyCpCmxInfo, unsigned int latencyJetCmxBackplane, unsigned int latencyJetCmxLocal, unsigned int latencyJetCmxCable, unsigned int latencyJetCmxSystem, unsigned int latencyJetCmxInfo, unsigned int latencyJetCmxRoi, unsigned int latencyEnergyCmxBackplane, unsigned int latencyEnergyCmxLocal, unsigned int latencyEnergyCmxCable, unsigned int latencyEnergyCmxSystem, unsigned int latencyEnergyCmxInfo, unsigned int latencyEnergyCmxRoi, unsigned int latencyTopo, unsigned int internalLatencyJemJet, unsigned int internalLatencyJemSum, unsigned int bcOffsetJemJet, unsigned int bcOffsetJemSum, int bcOffsetCmx, int bcOffsetTopo, const std::string& formatTypePpm, const std::string& formatTypeCpJep, const std::string& formatTypeTopo, unsigned int compressionThresholdPpm, unsigned int compressionThresholdCpJep, unsigned int compressionThresholdTopo, unsigned int compressionBaselinePpm, unsigned int readout80ModePpm); + + unsigned int channelId() const { return m_channelId; } + std::string description() const { return m_description; } + unsigned int baselinePointer() const { return m_baselinePointer; } + unsigned int numFadcSlices() const { return m_numFadcSlices; } + unsigned int l1aFadcSlice() const { return m_l1aFadcSlice; } + unsigned int numLutSlices() const { return m_numLutSlices; } + unsigned int l1aLutSlice() const { return m_l1aLutSlice; } + unsigned int numProcSlices() const { return m_numProcSlices; } + unsigned int l1aProcSlice() const { return m_l1aProcSlice; } + unsigned int numTopoSlices() const { return m_numTopoSlices; } + unsigned int l1aTopoSlice() const { return m_l1aTopoSlice; } + unsigned int latencyPpmFadc() const { return m_latencyPpmFadc; } + unsigned int latencyPpmLut() const { return m_latencyPpmLut; } + unsigned int latencyCpmInput() const { return m_latencyCpmInput; } + unsigned int latencyCpmHits() const { return m_latencyCpmHits; } + unsigned int latencyCpmRoi() const { return m_latencyCpmRoi; } + unsigned int latencyJemInput() const { return m_latencyJemInput; } + unsigned int latencyJemRoi() const { return m_latencyJemRoi; } + unsigned int latencyCpCmxBackplane() const { return m_latencyCpCmxBackplane; } + unsigned int latencyCpCmxLocal() const { return m_latencyCpCmxLocal; } + unsigned int latencyCpCmxCable() const { return m_latencyCpCmxCable; } + unsigned int latencyCpCmxSystem() const { return m_latencyCpCmxSystem; } + unsigned int latencyCpCmxInfo() const { return m_latencyCpCmxInfo; } + unsigned int latencyJetCmxBackplane() const { return m_latencyJetCmxBackplane; } + unsigned int latencyJetCmxLocal() const { return m_latencyJetCmxLocal; } + unsigned int latencyJetCmxCable() const { return m_latencyJetCmxCable; } + unsigned int latencyJetCmxSystem() const { return m_latencyJetCmxSystem; } + unsigned int latencyJetCmxInfo() const { return m_latencyJetCmxInfo; } + unsigned int latencyJetCmxRoi() const { return m_latencyJetCmxRoi; } + unsigned int latencyEnergyCmxBackplane() const { return m_latencyEnergyCmxBackplane; } + unsigned int latencyEnergyCmxLocal() const { return m_latencyEnergyCmxLocal; } + unsigned int latencyEnergyCmxCable() const { return m_latencyEnergyCmxCable; } + unsigned int latencyEnergyCmxSystem() const { return m_latencyEnergyCmxSystem; } + unsigned int latencyEnergyCmxInfo() const { return m_latencyEnergyCmxInfo; } + unsigned int latencyEnergyCmxRoi() const { return m_latencyEnergyCmxRoi; } + unsigned int latencyTopo() const { return m_latencyTopo; } + unsigned int internalLatencyJemJet() const { return m_internalLatencyJemJet; } + unsigned int internalLatencyJemSum() const { return m_internalLatencyJemSum; } + unsigned int bcOffsetJemJet() const { return m_bcOffsetJemJet; } + unsigned int bcOffsetJemSum() const { return m_bcOffsetJemSum; } + int bcOffsetCmx() const { return m_bcOffsetCmx; } + int bcOffsetTopo() const { return m_bcOffsetTopo; } + std::string formatTypePpm() const { return m_formatTypePpm; } + std::string formatTypeCpJep() const { return m_formatTypeCpJep; } + std::string formatTypeTopo() const { return m_formatTypeTopo; } + unsigned int compressionThresholdPpm() const { return m_compressionThresholdPpm; } + unsigned int compressionThresholdCpJep() const { return m_compressionThresholdCpJep; } + unsigned int compressionThresholdTopo() const { return m_compressionThresholdTopo; } + unsigned int compressionBaselinePpm() const { return m_compressionBaselinePpm; } + unsigned int readout80ModePpm() const { return m_readout80ModePpm; } + + void setChannelId(unsigned int channelId) { m_channelId = channelId; } + void setdescription(const std::string& description) { m_description = description; } + void setbaselinePointer(unsigned int baselinePointer) { m_baselinePointer = baselinePointer; } + void setnumFadcSlices(unsigned int numFadcSlices) { m_numFadcSlices = numFadcSlices; } + void setl1aFadcSlice(unsigned int l1aFadcSlice) { m_l1aFadcSlice = l1aFadcSlice; } + void setnumLutSlices(unsigned int numLutSlices) { m_numLutSlices = numLutSlices; } + void setl1aLutSlice(unsigned int l1aLutSlice) { m_l1aLutSlice = l1aLutSlice; } + void setnumProcSlices(unsigned int numProcSlices) { m_numProcSlices = numProcSlices; } + void setl1aProcSlice(unsigned int l1aProcSlice) { m_l1aProcSlice = l1aProcSlice; } + void setnumTopoSlices(unsigned int numTopoSlices) { m_numTopoSlices = numTopoSlices; } + void setl1aTopoSlice(unsigned int l1aTopoSlice) { m_l1aTopoSlice = l1aTopoSlice; } + void setlatencyPpmFadc(unsigned int latencyPpmFadc) { m_latencyPpmFadc = latencyPpmFadc; } + void setlatencyPpmLut(unsigned int latencyPpmLut) { m_latencyPpmLut = latencyPpmLut; } + void setlatencyCpmInput(unsigned int latencyCpmInput) { m_latencyCpmInput = latencyCpmInput; } + void setlatencyCpmHits(unsigned int latencyCpmHits) { m_latencyCpmHits = latencyCpmHits; } + void setlatencyCpmRoi(unsigned int latencyCpmRoi) { m_latencyCpmRoi = latencyCpmRoi; } + void setlatencyJemInput(unsigned int latencyJemInput) { m_latencyJemInput = latencyJemInput; } + void setlatencyJemRoi(unsigned int latencyJemRoi) { m_latencyJemRoi = latencyJemRoi; } + void setlatencyCpCmxBackplane(unsigned int latencyCpCmxBackplane) { m_latencyCpCmxBackplane = latencyCpCmxBackplane; } + void setlatencyCpCmxLocal(unsigned int latencyCpCmxLocal) { m_latencyCpCmxLocal = latencyCpCmxLocal; } + void setlatencyCpCmxCable(unsigned int latencyCpCmxCable) { m_latencyCpCmxCable = latencyCpCmxCable; } + void setlatencyCpCmxSystem(unsigned int latencyCpCmxSystem) { m_latencyCpCmxSystem = latencyCpCmxSystem; } + void setlatencyCpCmxInfo(unsigned int latencyCpCmxInfo) { m_latencyCpCmxInfo = latencyCpCmxInfo; } + void setlatencyJetCmxBackplane(unsigned int latencyJetCmxBackplane) { m_latencyJetCmxBackplane = latencyJetCmxBackplane; } + void setlatencyJetCmxLocal(unsigned int latencyJetCmxLocal) { m_latencyJetCmxLocal = latencyJetCmxLocal; } + void setlatencyJetCmxCable(unsigned int latencyJetCmxCable) { m_latencyJetCmxCable = latencyJetCmxCable; } + void setlatencyJetCmxSystem(unsigned int latencyJetCmxSystem) { m_latencyJetCmxSystem = latencyJetCmxSystem; } + void setlatencyJetCmxInfo(unsigned int latencyJetCmxInfo) { m_latencyJetCmxInfo = latencyJetCmxInfo; } + void setlatencyJetCmxRoi(unsigned int latencyJetCmxRoi) { m_latencyJetCmxRoi = latencyJetCmxRoi; } + void setlatencyEnergyCmxBackplane(unsigned int latencyEnergyCmxBackplane) { m_latencyEnergyCmxBackplane = latencyEnergyCmxBackplane; } + void setlatencyEnergyCmxLocal(unsigned int latencyEnergyCmxLocal) { m_latencyEnergyCmxLocal = latencyEnergyCmxLocal; } + void setlatencyEnergyCmxCable(unsigned int latencyEnergyCmxCable) { m_latencyEnergyCmxCable = latencyEnergyCmxCable; } + void setlatencyEnergyCmxSystem(unsigned int latencyEnergyCmxSystem) { m_latencyEnergyCmxSystem = latencyEnergyCmxSystem; } + void setlatencyEnergyCmxInfo(unsigned int latencyEnergyCmxInfo) { m_latencyEnergyCmxInfo = latencyEnergyCmxInfo; } + void setlatencyEnergyCmxRoi(unsigned int latencyEnergyCmxRoi) { m_latencyEnergyCmxRoi = latencyEnergyCmxRoi; } + void setlatencyTopo(unsigned int latencyTopo) { m_latencyTopo = latencyTopo; } + void setinternalLatencyJemJet(unsigned int internalLatencyJemJet) { m_internalLatencyJemJet = internalLatencyJemJet; } + void setinternalLatencyJemSum(unsigned int internalLatencyJemSum) { m_internalLatencyJemSum = internalLatencyJemSum; } + void setbcOffsetJemJet(unsigned int bcOffsetJemJet) { m_bcOffsetJemJet = bcOffsetJemJet; } + void setbcOffsetJemSum(unsigned int bcOffsetJemSum) { m_bcOffsetJemSum = bcOffsetJemSum; } + void setbcOffsetCmx(int bcOffsetCmx) { m_bcOffsetCmx = bcOffsetCmx; } + void setbcOffsetTopo(int bcOffsetTopo) { m_bcOffsetTopo = bcOffsetTopo; } + void setformatTypePpm(const std::string& formatTypePpm) { m_formatTypePpm = formatTypePpm; } + void setformatTypeCpJep(const std::string& formatTypeCpJep) { m_formatTypeCpJep = formatTypeCpJep; } + void setformatTypeTopo(const std::string& formatTypeTopo) { m_formatTypeTopo = formatTypeTopo; } + void setcompressionThresholdPpm(unsigned int compressionThresholdPpm) { m_compressionThresholdPpm = compressionThresholdPpm; } + void setcompressionThresholdCpJep(unsigned int compressionThresholdCpJep) { m_compressionThresholdCpJep = compressionThresholdCpJep; } + void setcompressionThresholdTopo(unsigned int compressionThresholdTopo) { m_compressionThresholdTopo = compressionThresholdTopo; } + void setcompressionBaselinePpm(unsigned int compressionBaselinePpm) { m_compressionBaselinePpm = compressionBaselinePpm; } + void setreadout80ModePpm(unsigned int readout80ModePpm) { m_readout80ModePpm = readout80ModePpm; } + +private: + unsigned int m_channelId = 0; + std::string m_description = 0; + unsigned int m_baselinePointer = 0; + unsigned int m_numFadcSlices = 0; + unsigned int m_l1aFadcSlice = 0; + unsigned int m_numLutSlices = 0; + unsigned int m_l1aLutSlice = 0; + unsigned int m_numProcSlices = 0; + unsigned int m_l1aProcSlice = 0; + unsigned int m_numTopoSlices = 0; + unsigned int m_l1aTopoSlice = 0; + unsigned int m_latencyPpmFadc = 0; + unsigned int m_latencyPpmLut = 0; + unsigned int m_latencyCpmInput = 0; + unsigned int m_latencyCpmHits = 0; + unsigned int m_latencyCpmRoi = 0; + unsigned int m_latencyJemInput = 0; + unsigned int m_latencyJemRoi = 0; + unsigned int m_latencyCpCmxBackplane = 0; + unsigned int m_latencyCpCmxLocal = 0; + unsigned int m_latencyCpCmxCable = 0; + unsigned int m_latencyCpCmxSystem = 0; + unsigned int m_latencyCpCmxInfo = 0; + unsigned int m_latencyJetCmxBackplane = 0; + unsigned int m_latencyJetCmxLocal = 0; + unsigned int m_latencyJetCmxCable = 0; + unsigned int m_latencyJetCmxSystem = 0; + unsigned int m_latencyJetCmxInfo = 0; + unsigned int m_latencyJetCmxRoi = 0; + unsigned int m_latencyEnergyCmxBackplane = 0; + unsigned int m_latencyEnergyCmxLocal = 0; + unsigned int m_latencyEnergyCmxCable = 0; + unsigned int m_latencyEnergyCmxSystem = 0; + unsigned int m_latencyEnergyCmxInfo = 0; + unsigned int m_latencyEnergyCmxRoi = 0; + unsigned int m_latencyTopo = 0; + unsigned int m_internalLatencyJemJet = 0; + unsigned int m_internalLatencyJemSum = 0; + unsigned int m_bcOffsetJemJet = 0; + unsigned int m_bcOffsetJemSum = 0; + int m_bcOffsetCmx = 0; + int m_bcOffsetTopo = 0; + std::string m_formatTypePpm = 0; + std::string m_formatTypeCpJep = 0; + std::string m_formatTypeTopo = 0; + unsigned int m_compressionThresholdPpm = 0; + unsigned int m_compressionThresholdCpJep = 0; + unsigned int m_compressionThresholdTopo = 0; + unsigned int m_compressionBaselinePpm = 0; + unsigned int m_readout80ModePpm = 0; +}; + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIG_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h new file mode 100644 index 000000000000..9eaed682b996 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h @@ -0,0 +1,61 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIGCONTAINER_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIGCONTAINER_H + +#include <map> +#include <string> +#include <vector> +#include "AthenaKernel/CLASS_DEF.h" +#include "GaudiKernel/DataObject.h" +#include "TrigT1CaloCalibConditions/AbstractL1CaloPersistentCondition.h" +#include "TrigT1CaloCalibConditions/L1CaloCoolChannelId.h" + +class CondAttrListCollection; +class L1CaloReadoutConfig; + +/*** +* Container of L1CaloReadoutConfig objects. Automatically created using: +* +* ../python/CreateClassesForFolder.py --db frontier://ATLF/();schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2 /TRIGGER/L1Calo/V2/Configuration/ReadoutConfig +*/ +class L1CaloReadoutConfigContainer : public DataObject, virtual public AbstractL1CaloPersistentCondition +{ +private: + enum eAttrSpecification { edescription, ebaselinePointer, enumFadcSlices, el1aFadcSlice, enumLutSlices, el1aLutSlice, enumProcSlices, el1aProcSlice, enumTopoSlices, el1aTopoSlice, elatencyPpmFadc, elatencyPpmLut, elatencyCpmInput, elatencyCpmHits, elatencyCpmRoi, elatencyJemInput, elatencyJemRoi, elatencyCpCmxBackplane, elatencyCpCmxLocal, elatencyCpCmxCable, elatencyCpCmxSystem, elatencyCpCmxInfo, elatencyJetCmxBackplane, elatencyJetCmxLocal, elatencyJetCmxCable, elatencyJetCmxSystem, elatencyJetCmxInfo, elatencyJetCmxRoi, elatencyEnergyCmxBackplane, elatencyEnergyCmxLocal, elatencyEnergyCmxCable, elatencyEnergyCmxSystem, elatencyEnergyCmxInfo, elatencyEnergyCmxRoi, elatencyTopo, einternalLatencyJemJet, einternalLatencyJemSum, ebcOffsetJemJet, ebcOffsetJemSum, ebcOffsetCmx, ebcOffsetTopo, eformatTypePpm, eformatTypeCpJep, eformatTypeTopo, ecompressionThresholdPpm, ecompressionThresholdCpJep, ecompressionThresholdTopo, ecompressionBaselinePpm, ereadout80ModePpm }; +public: + L1CaloReadoutConfigContainer(); + L1CaloReadoutConfigContainer(const std::string& folderKey); + virtual ~L1CaloReadoutConfigContainer() {} + + // interface of AbstractL1CaloPersistentCondition + using AbstractL1CaloPersistentCondition::makeTransient; + virtual void makeTransient(const std::map<std::string, CondAttrListCollection*>); + virtual DataObject* makePersistent() const; + virtual std::vector<std::string> coolInputKeys() const { return {m_coolFolderKey}; } + virtual std::string coolOutputKey() const { return m_coolFolderKey; } + virtual void clear() { m_readoutConfigs.clear(); } + + // getters + const L1CaloReadoutConfig* readoutConfig(unsigned int channelId) const; + const L1CaloReadoutConfig* readoutConfig(const L1CaloCoolChannelId& channelId) const { + return readoutConfig(channelId.id()); + } + + using const_iterator = std::vector<L1CaloReadoutConfig>::const_iterator; + const_iterator begin() const { return m_readoutConfigs.begin(); } + const_iterator end() const { return m_readoutConfigs.end(); } + + // setters + void addReadoutConfig(const L1CaloReadoutConfig& readoutConfig); + +private: + std::vector<L1CaloReadoutConfig> m_readoutConfigs; + std::string m_coolFolderKey = "/TRIGGER/L1Calo/V2/Configuration/ReadoutConfig"; +}; + +CLASS_DEF( L1CaloReadoutConfigContainer, 1122647625, 1 ) + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALOREADOUTCONFIGCONTAINER_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParameters.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParameters.h new file mode 100644 index 000000000000..fae55ace1742 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParameters.h @@ -0,0 +1,62 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERS_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERS_H + +#include <string> +#include <iostream> + +/** + * Folder <-> Object mapping for /TRIGGER/L1Calo/V1/Conditions/RunParameters . + * Automatically created using: + * + * ./CreateClassesForFolder.py /TRIGGER/L1Calo/V1/Conditions/RunParameters + */ +class L1CaloRunParameters +{ + friend std::ostream& operator<<(std::ostream& output, const L1CaloRunParameters& r); +public: + L1CaloRunParameters() {} + L1CaloRunParameters(unsigned int channelId, const std::string& runType, const std::string& runActionName, unsigned int runActionVersion, const std::string& readoutConfig, unsigned int readoutConfigID, const std::string& ttcConfiguration, unsigned int ttcConfigurationID, const std::string& triggerMenu, const std::string& calibration, const std::string& conditions); + + unsigned int channelId() const { return m_channelId; } + std::string runType() const { return m_runType; } + std::string runActionName() const { return m_runActionName; } + unsigned int runActionVersion() const { return m_runActionVersion; } + std::string readoutConfig() const { return m_readoutConfig; } + unsigned int readoutConfigID() const { return m_readoutConfigID; } + std::string ttcConfiguration() const { return m_ttcConfiguration; } + unsigned int ttcConfigurationID() const { return m_ttcConfigurationID; } + std::string triggerMenu() const { return m_triggerMenu; } + std::string calibration() const { return m_calibration; } + std::string conditions() const { return m_conditions; } + + void setChannelId(unsigned int channelId) { m_channelId = channelId; } + void setrunType(const std::string& runType) { m_runType = runType; } + void setrunActionName(const std::string& runActionName) { m_runActionName = runActionName; } + void setrunActionVersion(unsigned int runActionVersion) { m_runActionVersion = runActionVersion; } + void setreadoutConfig(const std::string& readoutConfig) { m_readoutConfig = readoutConfig; } + void setreadoutConfigID(unsigned int readoutConfigID) { m_readoutConfigID = readoutConfigID; } + void setttcConfiguration(const std::string& ttcConfiguration) { m_ttcConfiguration = ttcConfiguration; } + void setttcConfigurationID(unsigned int ttcConfigurationID) { m_ttcConfigurationID = ttcConfigurationID; } + void settriggerMenu(const std::string& triggerMenu) { m_triggerMenu = triggerMenu; } + void setcalibration(const std::string& calibration) { m_calibration = calibration; } + void setconditions(const std::string& conditions) { m_conditions = conditions; } + +private: + unsigned int m_channelId = 0; + std::string m_runType = 0; + std::string m_runActionName = 0; + unsigned int m_runActionVersion = 0; + std::string m_readoutConfig = 0; + unsigned int m_readoutConfigID = 0; + std::string m_ttcConfiguration = 0; + unsigned int m_ttcConfigurationID = 0; + std::string m_triggerMenu = 0; + std::string m_calibration = 0; + std::string m_conditions = 0; +}; + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERS_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h new file mode 100644 index 000000000000..4b287219f8e0 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h @@ -0,0 +1,63 @@ +// -*- C++ -*- +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERSCONTAINER_H +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#define TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERSCONTAINER_H + +#include <map> +#include <string> +#include <vector> +#include "AthenaKernel/CLASS_DEF.h" +#include "GaudiKernel/DataObject.h" +#include "TrigT1CaloCalibConditions/AbstractL1CaloPersistentCondition.h" +#include "TrigT1CaloCalibConditions/L1CaloCoolChannelId.h" + +class CondAttrListCollection; +class L1CaloRunParameters; + +/*** +* Container of L1CaloRunParameters objects. Automatically created using: +* +* ./CreateClassesForFolder.py /TRIGGER/L1Calo/V1/Conditions/RunParameters +*/ +class L1CaloRunParametersContainer : public DataObject, virtual public AbstractL1CaloPersistentCondition +{ +private: + enum eAttrSpecification { erunType, erunActionName, erunActionVersion, ereadoutConfig, ereadoutConfigID, ettcConfiguration, ettcConfigurationID, etriggerMenu, ecalibration, econditions }; +public: + L1CaloRunParametersContainer(); + L1CaloRunParametersContainer(const std::string& folderKey); + virtual ~L1CaloRunParametersContainer() {} + + // interface of AbstractL1CaloPersistentCondition + using AbstractL1CaloPersistentCondition::makeTransient; + virtual void makeTransient(const std::map<std::string, CondAttrListCollection*>); + virtual DataObject* makePersistent() const; + virtual std::vector<std::string> coolInputKeys() const { return {m_coolFolderKey}; } + virtual std::string coolOutputKey() const { return m_coolFolderKey; } + virtual void clear() { m_runParameterss.clear(); } + + // getters + const L1CaloRunParameters* runParameters(unsigned int channelId) const; + const L1CaloRunParameters* runParameters(const L1CaloCoolChannelId& channelId) const { + return runParameters(channelId.id()); + } + + using const_iterator = std::vector<L1CaloRunParameters>::const_iterator; + const_iterator begin() const { return m_runParameterss.begin(); } + const_iterator end() const { return m_runParameterss.end(); } + + // setters + void addRunParameters(const L1CaloRunParameters& runParameters); + + void dump() const; + +private: + std::vector<L1CaloRunParameters> m_runParameterss; + std::string m_coolFolderKey = "/TRIGGER/L1Calo/V1/Conditions/RunParameters"; +}; + +CLASS_DEF( L1CaloRunParametersContainer, 1236303918, 1 ) + +#endif // TRIGT1CALOCALIBCONDITIONS_L1CALORUNPARAMETERSCONTAINER_H diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/TrigT1CaloCalibConditionsDict.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/TrigT1CaloCalibConditionsDict.h index 6da4777b813d..0e3d8f37e0e1 100755 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/TrigT1CaloCalibConditionsDict.h +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/TrigT1CaloCalibConditionsDict.h @@ -28,6 +28,18 @@ #include "TrigT1CaloCalibConditions/L1CaloPpmDeadChannelsContainer.h" #include "TrigT1CaloCalibConditions/L1CaloDisabledTowers.h" #include "TrigT1CaloCalibConditions/L1CaloDisabledTowersContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h" +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h" +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfig.h" + +#include "TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" + + + struct TrigT1CaloCalibConditions_DUMMY_Instantiation { // we need to instantiate templated objects to get them into the dict @@ -47,6 +59,11 @@ struct TrigT1CaloCalibConditions_DUMMY_Instantiation { L1CaloPprChanDefaultsContainer::const_iterator L1CaloPprChanDefaultsContainerCI; L1CaloPpmDeadChannelsContainer::const_iterator L1CaloPpmDeadChannelsContainerCI; L1CaloDisabledTowersContainer::const_iterator L1CaloDisabledTowersContainerCI; + L1CaloPprChanStrategyContainer::const_iterator L1CaloPprChanStrategyContainerConstInterator; + L1CaloDerivedRunParsContainer::const_iterator L1CaloDerivedRunParsContainerConstInterator; + L1CaloReadoutConfigContainer::const_iterator L1CaloReadoutConfigContainerConstInterator; + L1CaloRunParametersContainer::const_iterator L1CaloRunParametersContainerConstInterator; + }; #endif diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/selection.xml b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/selection.xml index e4a04f37c28b..ca303690bf51 100755 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/selection.xml +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/selection.xml @@ -29,7 +29,7 @@ <class name="L1CaloPprConditionsContainer" id="CDC75AED-FE0B-41AD-957B-94CD6A75B4EF" /> <class name="L1CaloPprConditions" /> <class name="L1CaloPprConditionsContainerRun2" id="CDC75AED-FE0B-41AD-957B-94CD6A75B4EF" /> -<!-- <class name="L1CaloPprConditionsRun2" /> --> + <!-- <class name="L1CaloPprConditionsRun2" /> --> <class name="ChanCalibErrorCode" /> <class name="ChanDeadErrorCode" /> @@ -61,4 +61,18 @@ <class name="L1CaloDisabledTowersContainer" id="C3641506-70A4-4F96-844C-6B7B74F8A48C" /> <class name="L1CaloDisabledTowersContainer::const_iterator" /> <class name="L1CaloDisabledTowers" /> -</lcgdict> + + <class name="L1CaloPprChanStrategyContainer" id="E1ADA778-3F76-4774-BBE4-A384BF2E268D" /> + <class name="L1CaloPprChanStrategyContainer::const_iterator" /> + <class name="L1CaloPprChanStrategy" /> + + <class name="L1CaloDerivedRunParsContainer" id="F6852A0F-35C3-4FCF-B6C0-22CB27EA1857" /> + <class name="L1CaloDerivedRunParsContainer::const_iterator" /> + <class name="L1CaloDerivedRunPars" /> + + <class name="L1CaloRunParametersContainer" id="C32C53CB-FDDC-44A0-9140-B0CCDD32AE6F" /> + <class name="L1CaloRunParametersContainer::const_iterator" /> + <class name="L1CaloRunParameters" /> + + + </lcgdict> diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py b/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py index a55dee0dd629..251d7f10565c 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/python/CreateClassesForFolder.py @@ -225,7 +225,9 @@ def _mapToCpp(t): 'Int16' : 'short', 'Int32' : 'int', 'Double': 'double', - 'Blob64k': 'char*'} + 'Blob64k': 'char*', + 'String255': 'char*' + } return _m[t] def _toCamelCase(identifier): diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsRun2_jobOptions.py b/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsRun2_jobOptions.py index 8e6009100d39..1ae1935c8478 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsRun2_jobOptions.py +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsRun2_jobOptions.py @@ -4,8 +4,25 @@ include("TrigT1CaloCalibConditions/L1CaloCalibConditionsTier0Run2_jobOptions.py" from IOVDbSvc.CondDB import conddb L1CaloFolderList = [] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Configuration/PprChanStrategy"] L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Calibration/Physics/PprChanCalib"] + L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCommon"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanLowMu"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanHighMu"] + +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib1/PprChanCalib"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib1/PprChanCommon"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib1/PprChanLowMu"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib1/PprChanHighMu"] + +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib2/PprChanCalib"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib2/PprChanCommon"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib2/PprChanLowMu"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Calibration/Calib2/PprChanHighMu"] + + L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Conditions/RunParameters"] L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Conditions/DerivedRunPars"] L1CaloFolderList += ["/TRIGGER/Receivers/Conditions/VgaDac"] diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsTier0Run2_jobOptions.py b/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsTier0Run2_jobOptions.py index 9e24ea325898..28b267d64e39 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsTier0Run2_jobOptions.py +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/share/L1CaloCalibConditionsTier0Run2_jobOptions.py @@ -10,6 +10,7 @@ from IOVDbSvc.CondDB import conddb L1CaloFolderList = [] L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Calibration/PpmDeadChannels"] L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Conditions/DisabledTowers"] +L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Conditions/RunParameters"] L1CaloFolderList += ["/TRIGGER/L1Calo/V1/Configuration/PprChanDefaults"] L1CaloFolderList += ["/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults"] diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunPars.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunPars.cxx new file mode 100644 index 000000000000..38da7013ed2a --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunPars.cxx @@ -0,0 +1,21 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h" + +#include <iomanip> + +L1CaloDerivedRunPars::L1CaloDerivedRunPars(unsigned int channelId, const std::string& timingRegime, const std::string& tierZeroTag) + : m_channelId(channelId) + , m_timingRegime(timingRegime) + , m_tierZeroTag(tierZeroTag) +{ +} + +std::ostream& operator<<(std::ostream& output, const L1CaloDerivedRunPars& r) { + output << "channelID: " << std::hex << r.channelId() << std::dec + << ", timingRegime: " << r.timingRegime() + << ", tierZeroTag: " << r.tierZeroTag(); + + return output; +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunParsContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunParsContainer.cxx new file mode 100644 index 000000000000..c1641fe96aee --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloDerivedRunParsContainer.cxx @@ -0,0 +1,99 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h" + +#include <algorithm> +#include <memory> + +#include "CxxUtils/make_unique.h" +#include "CoralBase/AttributeListSpecification.h" +#include "AthenaPoolUtilities/CondAttrListCollection.h" +#include "AthenaPoolUtilities/AthenaAttributeList.h" + +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h" + +L1CaloDerivedRunParsContainer::L1CaloDerivedRunParsContainer() + : AbstractL1CaloPersistentCondition("CondAttrListCollection") +{ + this->addSpecification(etimingRegime, "timingRegime", "string"); + this->addSpecification(etierZeroTag, "tierZeroTag", "string"); +} + +L1CaloDerivedRunParsContainer::L1CaloDerivedRunParsContainer(const std::string& folderKey) + : L1CaloDerivedRunParsContainer() // delegating constructor +{ + m_coolFolderKey = folderKey; +} + + +DataObject* L1CaloDerivedRunParsContainer::makePersistent() const +{ + using CxxUtils::make_unique; + + if(m_coolFolderKey.empty()) return nullptr; + + auto* attrSpecification = this->createAttributeListSpecification(); + if(!attrSpecification || !attrSpecification->size()) return nullptr; + + auto attrListCollection = make_unique<CondAttrListCollection>(true); + for(const auto& item : m_derivedRunParss) { + AthenaAttributeList attrList(*attrSpecification); + attrList[specificationName(etimingRegime)].setValue(item.timingRegime()); + attrList[specificationName(etierZeroTag)].setValue(item.tierZeroTag()); + + attrListCollection->add(item.channelId(), attrList); + } + return static_cast<DataObject*>(attrListCollection.release()); +} + +void L1CaloDerivedRunParsContainer::makeTransient(const std::map<std::string, CondAttrListCollection*> condAttrListCollectionMap) +{ + clear(); + + auto it = condAttrListCollectionMap.find(m_coolFolderKey); + if(it == std::end(condAttrListCollectionMap)) return; + + auto attrListCollection = it->second; + for(const auto& item : *attrListCollection) { + auto chanNum = item.first; + const auto& attrList = item.second; + + auto timingRegime = attrList[specificationName(etimingRegime)].data<std::string>(); + auto tierZeroTag = attrList[specificationName(etierZeroTag)].data<std::string>(); + + addDerivedRunPars(L1CaloDerivedRunPars(chanNum, timingRegime, tierZeroTag)); + } +} + +const L1CaloDerivedRunPars* L1CaloDerivedRunParsContainer::derivedRunPars(unsigned int channelId) const +{ + auto it = std::lower_bound(std::begin(m_derivedRunParss), + std::end(m_derivedRunParss), + channelId, + [](const L1CaloDerivedRunPars& el, unsigned int val) -> bool { + return el.channelId() < val; + }); + if(it == std::end(m_derivedRunParss)) return nullptr; + return &(*it); +} + +void L1CaloDerivedRunParsContainer::addDerivedRunPars(const L1CaloDerivedRunPars& derivedRunPars) +{ + // insert into the correct position mainting the sorted vector + m_derivedRunParss.insert(std::lower_bound(std::begin(m_derivedRunParss), + std::end(m_derivedRunParss), + derivedRunPars.channelId(), + [](const L1CaloDerivedRunPars& el, unsigned int va) -> bool { + return el.channelId() < va; + }), + derivedRunPars); +} + + +void L1CaloDerivedRunParsContainer::dump() const { + L1CaloDerivedRunParsContainer::const_iterator it = this->begin(); + for(;it!=this->end();++it) { + std::cout << " * item: " << *it <<std::endl; + } +} \ No newline at end of file diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPpmDeadChannelsContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPpmDeadChannelsContainer.cxx index 6a1c51fe8c3a..d436ac0ebe52 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPpmDeadChannelsContainer.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPpmDeadChannelsContainer.cxx @@ -55,7 +55,7 @@ void L1CaloPpmDeadChannelsContainer::makeTransient(const std::map<std::string, C // In the case of overlay, we need multiple instances of L1CaloPpmDeadChannelsContainer // Take the last element in the map if (condAttrListCollectionMap.empty()) return; - auto it = condAttrListCollectionMap.rbegin(); + auto it = condAttrListCollectionMap.rbegin(); auto attrListCollection = it->second; for(const auto& item : *attrListCollection) { diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanCalibContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanCalibContainer.cxx index 068618707981..bacd529054f8 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanCalibContainer.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanCalibContainer.cxx @@ -119,7 +119,7 @@ void L1CaloPprChanCalibContainer::makeTransient(const std::map<std::string, Cond // In the case of overlay, we need multiple instances of L1CaloPprChanCalibContainer // Take the last element in the map if (condAttrListCollectionMap.empty()) return; - auto it = condAttrListCollectionMap.rbegin(); + auto it = condAttrListCollectionMap.rbegin(); auto attrListCollection = it->second; diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanDefaultsContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanDefaultsContainer.cxx index dbffcdf70ffc..4d4eee2d2529 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanDefaultsContainer.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanDefaultsContainer.cxx @@ -119,7 +119,7 @@ void L1CaloPprChanDefaultsContainer::makeTransient(const std::map<std::string, C // In the case of overlay, we need multiple instances of L1CaloPprChanDefaultsContainer // Take the last element in the map if (condAttrListCollectionMap.empty()) return; - auto it = condAttrListCollectionMap.rbegin(); + auto it = condAttrListCollectionMap.rbegin(); auto attrListCollection = it->second; for(const auto& item : *attrListCollection) { diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategy.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategy.cxx new file mode 100644 index 000000000000..57f3495305b8 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategy.cxx @@ -0,0 +1,28 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h" + +#include <iostream> +#include <iomanip> +#include <string> + +L1CaloPprChanStrategy::L1CaloPprChanStrategy(unsigned int channelId, + const std::string& strategy, + unsigned int code, + const std::string& timingRegime, + const std::string& description) + : m_channelId(channelId), + m_strategy(strategy), + m_code(code), + m_timingRegime(timingRegime), + m_description(description) {} + +std::ostream& operator<<(std::ostream& output, const L1CaloPprChanStrategy& r) { + output << "channelID: " << std::hex << r.m_channelId << std::dec + << ", strategy: " << r.m_strategy << ", code: " << r.m_code + << ", m_timingRegime: " << r.m_timingRegime + << ", description: " << r.m_description; + + return output; +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategyContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategyContainer.cxx new file mode 100644 index 000000000000..149a1eb2fd5f --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprChanStrategyContainer.cxx @@ -0,0 +1,104 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h" + +#include <algorithm> +#include <memory> + +#include "CxxUtils/make_unique.h" +#include "CoralBase/AttributeListSpecification.h" +#include "AthenaPoolUtilities/CondAttrListCollection.h" +#include "AthenaPoolUtilities/AthenaAttributeList.h" + +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h" + +L1CaloPprChanStrategyContainer::L1CaloPprChanStrategyContainer() + : AbstractL1CaloPersistentCondition("CondAttrListCollection") +{ + this->addSpecification(eStrategy, "Strategy", "string"); + this->addSpecification(eCode, "Code", "unsigned int"); + this->addSpecification(eTimingRegime, "TimingRegime", "string"); + this->addSpecification(eDescription, "Description", "string"); +} + +L1CaloPprChanStrategyContainer::L1CaloPprChanStrategyContainer(const std::string& folderKey) + : L1CaloPprChanStrategyContainer() // delegating constructor +{ + m_coolFolderKey = folderKey; +} + + +DataObject* L1CaloPprChanStrategyContainer::makePersistent() const +{ + using CxxUtils::make_unique; + + if(m_coolFolderKey.empty()) return nullptr; + + auto* attrSpecification = this->createAttributeListSpecification(); + if(!attrSpecification || !attrSpecification->size()) return nullptr; + + auto attrListCollection = make_unique<CondAttrListCollection>(true); + for(const auto& item : m_pprChanStrategys) { + AthenaAttributeList attrList(*attrSpecification); + attrList[specificationName(eStrategy)].setValue(item.strategy()); + attrList[specificationName(eCode)].setValue(item.code()); + attrList[specificationName(eTimingRegime)].setValue(item.timingRegime()); + attrList[specificationName(eDescription)].setValue(item.description()); + + attrListCollection->add(item.channelId(), attrList); + } + return static_cast<DataObject*>(attrListCollection.release()); +} + +void L1CaloPprChanStrategyContainer::makeTransient(const std::map<std::string, CondAttrListCollection*> condAttrListCollectionMap) +{ + clear(); + + auto it = condAttrListCollectionMap.find(m_coolFolderKey); + if(it == std::end(condAttrListCollectionMap)) return; + + auto attrListCollection = it->second; + for(const auto& item : *attrListCollection) { + auto chanNum = item.first; + const auto& attrList = item.second; + + auto strategy = attrList[specificationName(eStrategy)].data<std::string>(); + auto code = attrList[specificationName(eCode)].data<unsigned int>(); + auto timingRegime = attrList[specificationName(eTimingRegime)].data<std::string>(); + auto description = attrList[specificationName(eDescription)].data<std::string>(); + + addPprChanStrategy(L1CaloPprChanStrategy(chanNum, strategy, code, timingRegime, description)); + } +} + +const L1CaloPprChanStrategy* L1CaloPprChanStrategyContainer::pprChanStrategy(unsigned int channelId) const +{ + auto it = std::lower_bound(std::begin(m_pprChanStrategys), + std::end(m_pprChanStrategys), + channelId, + [](const L1CaloPprChanStrategy& el, unsigned int val) -> bool { + return el.channelId() < val; + }); + if(it == std::end(m_pprChanStrategys)) return nullptr; + return &(*it); +} + +void L1CaloPprChanStrategyContainer::addPprChanStrategy(const L1CaloPprChanStrategy& pprChanStrategy) +{ + // insert into the correct position mainting the sorted vector + m_pprChanStrategys.insert(std::lower_bound(std::begin(m_pprChanStrategys), + std::end(m_pprChanStrategys), + pprChanStrategy.channelId(), + [](const L1CaloPprChanStrategy& el, unsigned int va) -> bool { + return el.channelId() < va; + }), + pprChanStrategy); +} + +void L1CaloPprChanStrategyContainer::dump() const { + L1CaloPprChanStrategyContainer::const_iterator it = this->begin(); + for(;it!=this->end();++it) { + std::cout << " * item: " << *it <<std::endl; + } +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsContainerRun2.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsContainerRun2.cxx index 207b352c6a8c..4f2dab89e403 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsContainerRun2.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsContainerRun2.cxx @@ -16,85 +16,156 @@ const unsigned int L1CaloPprConditionsContainerRun2::s_vectorSize; L1CaloPprConditionsContainerRun2::L1CaloPprConditionsContainerRun2() - : AbstractL1CaloPersistentCondition("CondAttrListCollection") - , m_coolFoldersKeysMap({{L1CaloPprConditionsContainerRun2::ePprChanCalib, "/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib"}, - {L1CaloPprConditionsContainerRun2::ePprChanDefaults, "/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults"}}) -{ - // Define DB rows names and types in order to construct the AttributeListSpecification object - this->addSpecification(eExtBcidThreshold, std::string("ExtBcidThreshold"), std::string("UInt16")); - this->addSpecification(eSatBcidThreshLow, std::string("SatBcidThreshLow"), std::string("UInt16")); - this->addSpecification(eSatBcidThreshHigh, std::string("SatBcidThreshHigh"), std::string("UInt16")); - this->addSpecification(eSatBcidLevel, std::string("SatBcidLevel"), std::string("UInt16")); - this->addSpecification(eBcidEnergyRangeLow, std::string("BcidEnergyRangeLow"), std::string("UInt16")); - this->addSpecification(eBcidEnergyRangeHigh, std::string("BcidEnergyRangeHigh"), std::string("UInt16")); - this->addSpecification(eFirStartBit, std::string("FirStartBit"), std::string("UInt16")); - - this->addSpecification(eBcidDecision1, std::string("CR12_BcidDecision1"), std::string("Int32")); - this->addSpecification(eSatOverride1, std::string("CR12_SatOverride1"), std::string("Int32")); - this->addSpecification(eBcidDecision2, std::string("CR13_BcidDecision2"), std::string("Int32")); - this->addSpecification(eSatOverride2, std::string("CR13_SatOverride2"), std::string("Int32")); - this->addSpecification(eBcidDecision3, std::string("CR14_BcidDecision3"), std::string("Int32")); - this->addSpecification(eSatOverride3, std::string("CR14_SatOverride3"), std::string("Int32")); - this->addSpecification(ePeakFinderCond, std::string("CR15_PeakFinderCond"), std::string("Int32")); - this->addSpecification(eDecisionSource, std::string("CR15_DecisionSource"), std::string("Int32")); - - this->addSpecification(eFirCoeff1, std::string("FirCoeff1"), std::string("short")); - this->addSpecification(eFirCoeff2, std::string("FirCoeff2"), std::string("short")); - this->addSpecification(eFirCoeff3, std::string("FirCoeff3"), std::string("short")); - this->addSpecification(eFirCoeff4, std::string("FirCoeff4"), std::string("short")); - this->addSpecification(eFirCoeff5, std::string("FirCoeff5"), std::string("short")); - - this->addSpecification(ePedValue, std::string("PedValue"), std::string("UInt32")); - this->addSpecification(ePedMean, std::string("PedMean"), std::string("Double")); - this->addSpecification(ePedFirSum, std::string("PedFirSum"), std::string("UInt32")); - - this->addSpecification(eLutCpStrategy, std::string("LutCpStrategy"), std::string("UInt16")); - this->addSpecification(eLutCpOffset, std::string("LutCpOffset"), std::string("UInt16")); - this->addSpecification(eLutCpSlope, std::string("LutCpSlope"), std::string("UInt16")); - this->addSpecification(eLutCpNoiseCut, std::string("LutCpNoiseCut"), std::string("UInt16")); - this->addSpecification(eLutCpScale, std::string("LutCpScale"), std::string("UInt16")); - this->addSpecification(eLutCpPar1, std::string("LutCpPar1"), std::string("UInt16")); - this->addSpecification(eLutCpPar2, std::string("LutCpPar2"), std::string("UInt16")); - this->addSpecification(eLutCpPar3, std::string("LutCpPar3"), std::string("UInt16")); - this->addSpecification(eLutCpPar4, std::string("LutCpPar4"), std::string("UInt16")); - - this->addSpecification(eLutJepStrategy, std::string("LutJepStrategy"), std::string("UInt16")); - this->addSpecification(eLutJepOffset, std::string("LutJepOffset"), std::string("UInt16")); - this->addSpecification(eLutJepSlope, std::string("LutJepSlope"), std::string("UInt16")); - this->addSpecification(eLutJepNoiseCut, std::string("LutJepNoiseCut"), std::string("UInt16")); - this->addSpecification(eLutJepScale, std::string("LutJepScale"), std::string("UInt16")); - this->addSpecification(eLutJepPar1, std::string("LutJepPar1"), std::string("UInt16")); - this->addSpecification(eLutJepPar2, std::string("LutJepPar2"), std::string("UInt16")); - this->addSpecification(eLutJepPar3, std::string("LutJepPar3"), std::string("UInt16")); - this->addSpecification(eLutJepPar4, std::string("LutJepPar4"), std::string("UInt16")); + : AbstractL1CaloPersistentCondition("CondAttrListCollection"), + m_coolFoldersKeysMap( + {{L1CaloPprConditionsContainerRun2::ePprChanCalib, + "/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib"}, + {L1CaloPprConditionsContainerRun2::ePprChanDefaults, + "/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults"}}) { + this->addSpecification(eBcidDecision1, std::string("CR12_BcidDecision1"), + std::string("Int32")); + this->addSpecification(eSatOverride1, std::string("CR12_SatOverride1"), + std::string("Int32")); + this->addSpecification(eBcidDecision2, std::string("CR13_BcidDecision2"), + std::string("Int32")); + this->addSpecification(eSatOverride2, std::string("CR13_SatOverride2"), + std::string("Int32")); + this->addSpecification(eBcidDecision3, std::string("CR14_BcidDecision3"), + std::string("Int32")); + this->addSpecification(eSatOverride3, std::string("CR14_SatOverride3"), + std::string("Int32")); + this->addSpecification(ePeakFinderCond, std::string("CR15_PeakFinderCond"), + std::string("Int32")); + this->addSpecification(eDecisionSource, std::string("CR15_DecisionSource"), + std::string("Int32")); + + // ------------------------------------------------------------------------------------------------------------------ + // Common + // ------------------------------------------------------------------------------------------------------------------ + // Define DB rows names and types in order to construct the + // AttributeListSpecification object + this->addSpecification(eExtBcidThreshold, std::string("ExtBcidThreshold"), + std::string("UInt16")); + this->addSpecification(eSatBcidThreshLow, std::string("SatBcidThreshLow"), + std::string("UInt16")); + this->addSpecification(eSatBcidThreshHigh, std::string("SatBcidThreshHigh"), + std::string("UInt16")); + this->addSpecification(eSatBcidLevel, std::string("SatBcidLevel"), + std::string("UInt16")); + this->addSpecification(eBcidEnergyRangeLow, std::string("BcidEnergyRangeLow"), + std::string("UInt16")); + this->addSpecification(eBcidEnergyRangeHigh, + std::string("BcidEnergyRangeHigh"), + std::string("UInt16")); + + this->addSpecification(ePedValue, std::string("PedValue"), + std::string("UInt32")); + this->addSpecification(ePedMean, std::string("PedMean"), + std::string("Double")); + + this->addSpecification(eLutCpStrategy, std::string("LutCpStrategy"), + std::string("UInt16")); + + this->addSpecification(eLutCpScale, std::string("LutCpScale"), + std::string("UInt16")); + this->addSpecification(eLutCpPar1, std::string("LutCpPar1"), + std::string("UInt16")); + this->addSpecification(eLutCpPar2, std::string("LutCpPar2"), + std::string("UInt16")); + this->addSpecification(eLutCpPar3, std::string("LutCpPar3"), + std::string("UInt16")); + this->addSpecification(eLutCpPar4, std::string("LutCpPar4"), + std::string("UInt16")); + + this->addSpecification(eLutJepStrategy, std::string("LutJepStrategy"), + std::string("UInt16")); + + this->addSpecification(eLutJepScale, std::string("LutJepScale"), + std::string("UInt16")); + this->addSpecification(eLutJepPar1, std::string("LutJepPar1"), + std::string("UInt16")); + this->addSpecification(eLutJepPar2, std::string("LutJepPar2"), + std::string("UInt16")); + this->addSpecification(eLutJepPar3, std::string("LutJepPar3"), + std::string("UInt16")); + this->addSpecification(eLutJepPar4, std::string("LutJepPar4"), + std::string("UInt16")); + + // Missing attributes in model with strategy + this->addSpecification(ePedFirSum, std::string("PedFirSum"), + std::string("UInt32")); + this->addSpecification(eLutCpOffset, std::string("LutCpOffset"), + std::string("UInt16")); + this->addSpecification(eLutJepOffset, std::string("LutJepOffset"), + std::string("UInt16")); + // ------------------------------------------------------------------------------------------------------------------ + // Strategy + // ------------------------------------------------------------------------------------------------------------------ + this->addSpecification(eFirStartBit, std::string("FirStartBit"), + std::string("UInt16")); + this->addSpecification(eFirCoeff1, std::string("FirCoeff1"), + std::string("short")); + this->addSpecification(eFirCoeff2, std::string("FirCoeff2"), + std::string("short")); + this->addSpecification(eFirCoeff3, std::string("FirCoeff3"), + std::string("short")); + this->addSpecification(eFirCoeff4, std::string("FirCoeff4"), + std::string("short")); + this->addSpecification(eFirCoeff5, std::string("FirCoeff5"), + std::string("short")); + this->addSpecification(eLutCpNoiseCut, std::string("LutCpNoiseCut"), + std::string("UInt16")); + this->addSpecification(eLutCpSlope, std::string("LutCpSlope"), + std::string("UInt16")); + this->addSpecification(eLutJepNoiseCut, std::string("LutJepNoiseCut"), + std::string("UInt16")); + this->addSpecification(eLutJepSlope, std::string("LutJepSlope"), + std::string("UInt16")); + // ------------------------------------------------------------------------------------------------------------------ m_pprConditionsVec.reserve(s_vectorSize); this->clear(); } -L1CaloPprConditionsContainerRun2::L1CaloPprConditionsContainerRun2(const std::map<L1CaloPprConditionsContainerRun2::eCoolFolders, std::string>& folderKeysMap) - : L1CaloPprConditionsContainerRun2() // delegating constructor +L1CaloPprConditionsContainerRun2::L1CaloPprConditionsContainerRun2( + const std::map<L1CaloPprConditionsContainerRun2::eCoolFolders, std::string>& + folderKeysMap) + : L1CaloPprConditionsContainerRun2() // delegating constructor { m_coolFoldersKeysMap = folderKeysMap; } -L1CaloPprConditionsContainerRun2::~L1CaloPprConditionsContainerRun2() -{ +L1CaloPprConditionsContainerRun2::~L1CaloPprConditionsContainerRun2() { this->clear(); } -std::string L1CaloPprConditionsContainerRun2::coolFolderKey(L1CaloPprConditionsContainerRun2::eCoolFolders efolder) const { - +std::string L1CaloPprConditionsContainerRun2::coolFolderKey( + L1CaloPprConditionsContainerRun2::eCoolFolders efolder) const { auto it = m_coolFoldersKeysMap.find(efolder); - if(it != m_coolFoldersKeysMap.end()) { + if (it != m_coolFoldersKeysMap.end()) { return it->second; } else { return std::string(""); } } -std::vector<std::string> L1CaloPprConditionsContainerRun2::coolInputKeys() const { - return {this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanCalib), this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanDefaults)}; +std::vector<std::string> L1CaloPprConditionsContainerRun2::coolInputKeys() + const { + std::vector<std::string> result{ + this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanDefaults)}; + std::string calibKey = + this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanCalib); + + if (!calibKey.empty()) { + result.push_back(calibKey); + } else { + result.push_back(this->coolFolderKey( + L1CaloPprConditionsContainerRun2::ePprChanCalibCommon)); + result.push_back(this->coolFolderKey( + L1CaloPprConditionsContainerRun2::ePprChanCalibStrategy)); + } + + return result; } std::string L1CaloPprConditionsContainerRun2::coolOutputKey() const { @@ -106,131 +177,341 @@ DataObject* L1CaloPprConditionsContainerRun2::makePersistent() const { return 0; } -void L1CaloPprConditionsContainerRun2::makeTransient(const std::map<std::string, CondAttrListCollection*> condAttrListCollectionMap) { - +void L1CaloPprConditionsContainerRun2::makeTransient(const std::map< + std::string, CondAttrListCollection*> condAttrListCollectionMap) { this->clear(); - - std::string chanCalibFolderKey(this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanCalib)); - auto it_pprChanCalibAttrListCollection = condAttrListCollectionMap.find(chanCalibFolderKey); - if(it_pprChanCalibAttrListCollection == condAttrListCollectionMap.end()) { - std::cout << "L1CaloPprConditionsContainerRun2 : Could not find requested CondAttrListCollection " << chanCalibFolderKey << std::endl; - return; + // -------------------------------------------------------------------------- + // Folder names + std::string chanCalibFolderKey = + this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanCalib); + std::string chanCalibCommonFolderKey = this->coolFolderKey( + L1CaloPprConditionsContainerRun2::ePprChanCalibCommon); + std::string chanCalibStrategyFolderKey = this->coolFolderKey( + L1CaloPprConditionsContainerRun2::ePprChanCalibStrategy); + + decltype(condAttrListCollectionMap)::const_iterator + it_pprChanCalibAttrListCollection = condAttrListCollectionMap.end(); + + decltype(condAttrListCollectionMap)::const_iterator + it_pprChanCalibStrategyAttrListCollection = + condAttrListCollectionMap.end(); + // -------------------------------------------------------------------------- + bool isUseStrategy = false; + // Check that folders exist + if (!chanCalibFolderKey.empty()) { + it_pprChanCalibAttrListCollection = + condAttrListCollectionMap.find(chanCalibFolderKey); + } else { + isUseStrategy = true; + it_pprChanCalibAttrListCollection = + condAttrListCollectionMap.find(chanCalibCommonFolderKey); + + it_pprChanCalibStrategyAttrListCollection = + condAttrListCollectionMap.find(chanCalibStrategyFolderKey); } + // -------------------------------------------------------------------------- + if (isUseStrategy) { + // Check that strategy folder exists + if (it_pprChanCalibStrategyAttrListCollection == + condAttrListCollectionMap.end()) { + std::cout << "L1CaloPprConditionsContainerRun2 : Could not find " + "requested CondAttrListCollection " + << chanCalibStrategyFolderKey << std::endl; + return; + } - CondAttrListCollection* chanCalibAttrListCollection = it_pprChanCalibAttrListCollection->second; - - std::string chanDefaultsFolderKey(this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanDefaults)); - auto it_pprChanDefaultsAttrListCollection = condAttrListCollectionMap.find(chanDefaultsFolderKey); - if(it_pprChanDefaultsAttrListCollection == condAttrListCollectionMap.end()) { - std::cout << "L1CaloPprConditionsContainerRun2 : Could not find requested CondAttrListCollection " << chanDefaultsFolderKey << std::endl; + // Check that common folder exists + if (it_pprChanCalibAttrListCollection == condAttrListCollectionMap.end()) { + std::cout << "L1CaloPprConditionsContainerRun2 : Could not find " + "requested CondAttrListCollection " + << chanCalibCommonFolderKey << std::endl; + return; + } + } else { + if (it_pprChanCalibAttrListCollection == condAttrListCollectionMap.end()) { + std::cout << "L1CaloPprConditionsContainerRun2 : Could not find " + "requested CondAttrListCollection " + << chanCalibCommonFolderKey << std::endl; + return; + } + } + // -------------------------------------------------------------------------- + CondAttrListCollection* chanCalibAttrListCollection = + it_pprChanCalibAttrListCollection->second; + + std::string chanDefaultsFolderKey( + this->coolFolderKey(L1CaloPprConditionsContainerRun2::ePprChanDefaults)); + auto it_pprChanDefaultsAttrListCollection = + condAttrListCollectionMap.find(chanDefaultsFolderKey); + if (it_pprChanDefaultsAttrListCollection == condAttrListCollectionMap.end()) { + std::cout << "L1CaloPprConditionsContainerRun2 : Could not find requested " + "CondAttrListCollection " << chanDefaultsFolderKey + << std::endl; return; } + // -------------------------------------------------------------------------- + CondAttrListCollection* chanDefaultsAttrListCollection = + it_pprChanDefaultsAttrListCollection->second; - CondAttrListCollection* chanDefaultsAttrListCollection = it_pprChanDefaultsAttrListCollection->second; - // There should be only one channel (channel#1) in the Default folder - // we just retrieve that one, waiting for a better method to retrieve that information. + // we just retrieve that one, waiting for a better method to retrieve that + // information. const int defaultChannel = 1; - const AthenaAttributeList& chanDefaultAttrList(chanDefaultsAttrListCollection->attributeList(defaultChannel)); - - m_bcidDecision1 = chanDefaultAttrList[ this->specificationName(eBcidDecision1) ].data<int>(); - m_satOverride1 = chanDefaultAttrList[ this->specificationName(eSatOverride1) ].data<int>(); - m_bcidDecision2 = chanDefaultAttrList[ this->specificationName(eBcidDecision2) ].data<int>(); - m_satOverride2 = chanDefaultAttrList[ this->specificationName(eSatOverride2) ].data<int>(); - m_bcidDecision3 = chanDefaultAttrList[ this->specificationName(eBcidDecision3) ].data<int>(); - m_satOverride3 = chanDefaultAttrList[ this->specificationName(eSatOverride3) ].data<int>(); - m_peakFinderCond = chanDefaultAttrList[ this->specificationName(ePeakFinderCond) ].data<int>(); - m_decisionSource = chanDefaultAttrList[ this->specificationName(eDecisionSource) ].data<int>(); - - //loop over CondAttrListCollection + const AthenaAttributeList& chanDefaultAttrList( + chanDefaultsAttrListCollection->attributeList(defaultChannel)); + + m_bcidDecision1 = + chanDefaultAttrList[this->specificationName(eBcidDecision1)].data<int>(); + m_satOverride1 = + chanDefaultAttrList[this->specificationName(eSatOverride1)].data<int>(); + m_bcidDecision2 = + chanDefaultAttrList[this->specificationName(eBcidDecision2)].data<int>(); + m_satOverride2 = + chanDefaultAttrList[this->specificationName(eSatOverride2)].data<int>(); + m_bcidDecision3 = + chanDefaultAttrList[this->specificationName(eBcidDecision3)].data<int>(); + m_satOverride3 = + chanDefaultAttrList[this->specificationName(eSatOverride3)].data<int>(); + m_peakFinderCond = + chanDefaultAttrList[this->specificationName(ePeakFinderCond)].data<int>(); + m_decisionSource = + chanDefaultAttrList[this->specificationName(eDecisionSource)].data<int>(); + // ------------------------------------------------------------------------ + // loop over CondAttrListCollection auto it_AttrListColl = chanCalibAttrListCollection->begin(); auto it_AttrListCollE = chanCalibAttrListCollection->end(); - for(;it_AttrListColl != it_AttrListCollE; ++it_AttrListColl) { - CondAttrListCollection::ChanNum chanNum(it_AttrListColl->first); - const AthenaAttributeList& chanCalibAttrList(it_AttrListColl->second); - - unsigned short extBcidThreshold = chanCalibAttrList[ this->specificationName(eExtBcidThreshold) ].data<unsigned short>(); - unsigned short satBcidThreshLow = chanCalibAttrList[ this->specificationName(eSatBcidThreshLow) ].data<unsigned short>(); - unsigned short satBcidThreshHigh = chanCalibAttrList[ this->specificationName(eSatBcidThreshHigh) ].data<unsigned short>(); - unsigned short satBcidLevel = chanCalibAttrList[ this->specificationName(eSatBcidLevel) ].data<unsigned short>(); - - unsigned short bcidEnergyRangeLow = chanCalibAttrList[ this->specificationName(eBcidEnergyRangeLow) ].data<unsigned short>(); - unsigned short bcidEnergyRangeHigh = chanCalibAttrList[ this->specificationName(eBcidEnergyRangeHigh) ].data<unsigned short>(); - - unsigned short firStartBit = chanCalibAttrList[ this->specificationName(eFirStartBit) ].data<unsigned short>(); - - short int firCoeff1 = chanCalibAttrList[ this->specificationName(eFirCoeff1) ].data<short>(); - short int firCoeff2 = chanCalibAttrList[ this->specificationName(eFirCoeff2) ].data<short>(); - short int firCoeff3 = chanCalibAttrList[ this->specificationName(eFirCoeff3) ].data<short>(); - short int firCoeff4 = chanCalibAttrList[ this->specificationName(eFirCoeff4) ].data<short>(); - short int firCoeff5 = chanCalibAttrList[ this->specificationName(eFirCoeff5) ].data<short>(); - - unsigned short lutCpStrategy = chanCalibAttrList[ this->specificationName(eLutCpStrategy) ].data<unsigned short>(); - unsigned short lutCpOffset = chanCalibAttrList[ this->specificationName(eLutCpOffset) ].data<unsigned short>(); - unsigned short lutCpSlope = chanCalibAttrList[ this->specificationName(eLutCpSlope) ].data<unsigned short>(); - unsigned short lutCpNoiseCut = chanCalibAttrList[ this->specificationName(eLutCpNoiseCut) ].data<unsigned short>(); - unsigned short lutCpScale = chanCalibAttrList[ this->specificationName(eLutCpScale) ].data<unsigned short>(); - short lutCpPar1 = chanCalibAttrList[ this->specificationName(eLutCpPar1) ].data<short>(); - short lutCpPar2 = chanCalibAttrList[ this->specificationName(eLutCpPar2) ].data<short>(); - short lutCpPar3 = chanCalibAttrList[ this->specificationName(eLutCpPar3) ].data<short>(); - short lutCpPar4 = chanCalibAttrList[ this->specificationName(eLutCpPar4) ].data<short>(); - - unsigned short lutJepStrategy = chanCalibAttrList[ this->specificationName(eLutJepStrategy) ].data<unsigned short>(); - unsigned short lutJepOffset = chanCalibAttrList[ this->specificationName(eLutJepOffset) ].data<unsigned short>(); - unsigned short lutJepSlope = chanCalibAttrList[ this->specificationName(eLutJepSlope) ].data<unsigned short>(); - unsigned short lutJepNoiseCut = chanCalibAttrList[ this->specificationName(eLutJepNoiseCut) ].data<unsigned short>(); - unsigned short lutJepScale = chanCalibAttrList[ this->specificationName(eLutJepScale) ].data<unsigned short>(); - short lutJepPar1 = chanCalibAttrList[ this->specificationName(eLutJepPar1) ].data<short>(); - short lutJepPar2 = chanCalibAttrList[ this->specificationName(eLutJepPar2) ].data<short>(); - short lutJepPar3 = chanCalibAttrList[ this->specificationName(eLutJepPar3) ].data<short>(); - short lutJepPar4 = chanCalibAttrList[ this->specificationName(eLutJepPar4) ].data<short>(); - - unsigned int pedValue = chanCalibAttrList[ this->specificationName(ePedValue) ].data<unsigned int>(); - float pedMean = (float) chanCalibAttrList[ this->specificationName(ePedMean) ].data<double>(); - unsigned int pedFirSum = chanCalibAttrList[ this->specificationName(ePedFirSum) ].data<unsigned int>(); - - L1CaloCoolChannelId coolId(chanNum); - unsigned int index = (coolId.crate()<<10)+(coolId.module()<<6)+(coolId.subModule()<<2)+coolId.channel(); - if (index < s_vectorSize) { - m_pprConditionsVec[index] = new L1CaloPprConditionsRun2(extBcidThreshold, satBcidThreshLow, satBcidThreshHigh, - satBcidLevel, bcidEnergyRangeLow, bcidEnergyRangeHigh, - firStartBit, firCoeff1, firCoeff2, firCoeff3, firCoeff4, firCoeff5, - lutCpStrategy, lutCpOffset, lutCpSlope, lutCpNoiseCut, lutCpPar1, lutCpPar2, lutCpPar3, lutCpPar4, lutCpScale, - lutJepStrategy, lutJepOffset, lutJepSlope, lutJepNoiseCut, lutJepPar1, lutJepPar2, lutJepPar3, lutJepPar4, lutJepScale, - pedValue, pedMean, pedFirSum); + // -------------------------------------------------------------------------- + for (; it_AttrListColl != it_AttrListCollE; ++it_AttrListColl) { + // ------------------------------------------------------------------------ + L1CaloCoolChannelId coolId(it_AttrListColl->first); + unsigned int index = (coolId.crate() << 10) + (coolId.module() << 6) + + (coolId.subModule() << 2) + coolId.channel(); + // ------------------------------------------------------------------------ + if (index >= s_vectorSize) { + continue; } + // ------------------------------------------------------------------------ + const AthenaAttributeList& chanCalibAttrList(it_AttrListColl->second); + // ------------------------------------------------------------------------ + unsigned short extBcidThreshold = + chanCalibAttrList[this->specificationName(eExtBcidThreshold)] + .data<unsigned short>(); + unsigned short satBcidThreshLow = + chanCalibAttrList[this->specificationName(eSatBcidThreshLow)] + .data<unsigned short>(); + unsigned short satBcidThreshHigh = + chanCalibAttrList[this->specificationName(eSatBcidThreshHigh)] + .data<unsigned short>(); + unsigned short satBcidLevel = + chanCalibAttrList[this->specificationName(eSatBcidLevel)] + .data<unsigned short>(); + + unsigned short bcidEnergyRangeLow = + chanCalibAttrList[this->specificationName(eBcidEnergyRangeLow)] + .data<unsigned short>(); + unsigned short bcidEnergyRangeHigh = + chanCalibAttrList[this->specificationName(eBcidEnergyRangeHigh)] + .data<unsigned short>(); + unsigned short lutCpStrategy = + chanCalibAttrList[this->specificationName(eLutCpStrategy)] + .data<unsigned short>(); + + short lutCpPar1 = + chanCalibAttrList[this->specificationName(eLutCpPar1)].data<short>(); + short lutCpPar2 = + chanCalibAttrList[this->specificationName(eLutCpPar2)].data<short>(); + short lutCpPar3 = + chanCalibAttrList[this->specificationName(eLutCpPar3)].data<short>(); + short lutCpPar4 = + chanCalibAttrList[this->specificationName(eLutCpPar4)].data<short>(); + unsigned short lutJepStrategy = + chanCalibAttrList[this->specificationName(eLutJepStrategy)] + .data<unsigned short>(); + + unsigned short lutCpScale = + chanCalibAttrList[this->specificationName(eLutCpScale)] + .data<unsigned short>(); + unsigned short lutJepScale = + chanCalibAttrList[this->specificationName(eLutJepScale)] + .data<unsigned short>(); + short lutJepPar1 = + chanCalibAttrList[this->specificationName(eLutJepPar1)].data<short>(); + short lutJepPar2 = + chanCalibAttrList[this->specificationName(eLutJepPar2)].data<short>(); + short lutJepPar3 = + chanCalibAttrList[this->specificationName(eLutJepPar3)].data<short>(); + short lutJepPar4 = + chanCalibAttrList[this->specificationName(eLutJepPar4)].data<short>(); + unsigned int pedValue = + chanCalibAttrList[this->specificationName(ePedValue)] + .data<unsigned int>(); + float pedMean = + (float) + chanCalibAttrList[this->specificationName(ePedMean)].data<double>(); + + unsigned short lutJepOffset = + isUseStrategy + ? 0 + : chanCalibAttrList[this->specificationName(eLutJepOffset)] + .data<unsigned short>(); + unsigned short lutCpOffset = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eLutCpOffset)] + .data<unsigned short>(); + unsigned int pedFirSum = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(ePedFirSum)] + .data<unsigned int>(); + + unsigned short firStartBit = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirStartBit)] + .data<unsigned short>(); + short int firCoeff1 = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirCoeff1)] + .data<short>(); + short int firCoeff2 = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirCoeff2)] + .data<short>(); + short int firCoeff3 = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirCoeff3)] + .data<short>(); + short int firCoeff4 = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirCoeff4)] + .data<short>(); + short int firCoeff5 = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eFirCoeff5)] + .data<short>(); + + unsigned short lutCpSlope = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eLutCpSlope)] + .data<unsigned short>(); + unsigned short lutCpNoiseCut = + isUseStrategy + ? 0 + : chanCalibAttrList[this->specificationName(eLutCpNoiseCut)] + .data<unsigned short>(); + unsigned short lutJepSlope = + isUseStrategy ? 0 + : chanCalibAttrList[this->specificationName(eLutJepSlope)] + .data<unsigned short>(); + unsigned short lutJepNoiseCut = + isUseStrategy + ? 0 + : chanCalibAttrList[this->specificationName(eLutJepNoiseCut)] + .data<unsigned short>(); + // ------------------------------------------------------------------------ + m_pprConditionsVec[index] = new L1CaloPprConditionsRun2( + extBcidThreshold, satBcidThreshLow, satBcidThreshHigh, satBcidLevel, + bcidEnergyRangeLow, bcidEnergyRangeHigh, firStartBit, firCoeff1, + firCoeff2, firCoeff3, firCoeff4, firCoeff5, lutCpStrategy, lutCpOffset, + lutCpSlope, lutCpNoiseCut, lutCpPar1, lutCpPar2, lutCpPar3, lutCpPar4, + lutCpScale, lutJepStrategy, lutJepOffset, lutJepSlope, lutJepNoiseCut, + lutJepPar1, lutJepPar2, lutJepPar3, lutJepPar4, lutJepScale, pedValue, + pedMean, pedFirSum); } + // -------------------------------------------------------------------------- + if (isUseStrategy){ + // ------------------------------------------------------------------------ + CondAttrListCollection* chanCalibAttrListCollection = + it_pprChanCalibStrategyAttrListCollection->second; + auto it_AttrListColl = chanCalibAttrListCollection->begin(); + auto it_AttrListCollE = chanCalibAttrListCollection->end(); + // ------------------------------------------------------------------------ + for (; it_AttrListColl != it_AttrListCollE; ++it_AttrListColl) { + L1CaloCoolChannelId coolId(it_AttrListColl->first); + unsigned int index = (coolId.crate() << 10) + (coolId.module() << 6) + + (coolId.subModule() << 2) + coolId.channel(); + + if (index >= s_vectorSize) { + continue; + } + + const AthenaAttributeList& chanCalibAttrList(it_AttrListColl->second); + + if (m_pprConditionsVec[index] == nullptr){ + std::cout << "L1CaloPprConditionsContainerRun2 : Could not find channel " + << " with index " << index << std::endl; + return; + } + + unsigned short firStartBit = + chanCalibAttrList[this->specificationName(eFirStartBit)] + .data<unsigned short>(); + short int firCoeff1 = + chanCalibAttrList[this->specificationName(eFirCoeff1)].data<short>(); + short int firCoeff2 = + chanCalibAttrList[this->specificationName(eFirCoeff2)].data<short>(); + short int firCoeff3 = + chanCalibAttrList[this->specificationName(eFirCoeff3)].data<short>(); + short int firCoeff4 = + chanCalibAttrList[this->specificationName(eFirCoeff4)].data<short>(); + short int firCoeff5 = + chanCalibAttrList[this->specificationName(eFirCoeff5)].data<short>(); + + unsigned short lutCpSlope = + chanCalibAttrList[this->specificationName(eLutCpSlope)] + .data<unsigned short>(); + unsigned short lutCpNoiseCut = + chanCalibAttrList[this->specificationName(eLutCpNoiseCut)] + .data<unsigned short>(); + unsigned short lutJepSlope = + chanCalibAttrList[this->specificationName(eLutJepSlope)] + .data<unsigned short>(); + unsigned short lutJepNoiseCut = + chanCalibAttrList[this->specificationName(eLutJepNoiseCut)] + .data<unsigned short>(); + m_pprConditionsVec[index]->initializeByStrategy( + firStartBit, firCoeff1, firCoeff2, firCoeff3, firCoeff4, firCoeff5, + lutCpSlope, lutCpNoiseCut, lutJepSlope, lutJepNoiseCut); + + } // end for + // ------------------------------------------------------------------------ + } // end isUseStrategy + // -------------------------------------------------------------------------- + } -const L1CaloPprConditionsRun2* L1CaloPprConditionsContainerRun2::pprConditions(unsigned int channelId) const { +const L1CaloPprConditionsRun2* L1CaloPprConditionsContainerRun2::pprConditions( + unsigned int channelId) const { L1CaloCoolChannelId coolId(channelId); return pprConditions(coolId); } -const L1CaloPprConditionsRun2* L1CaloPprConditionsContainerRun2::pprConditions(const L1CaloCoolChannelId& channelId) const { - unsigned int index = (channelId.crate()<<10)+(channelId.module()<<6)+(channelId.subModule()<<2)+channelId.channel(); - if (index < s_vectorSize) return m_pprConditionsVec[index]; - else return 0; +const L1CaloPprConditionsRun2* L1CaloPprConditionsContainerRun2::pprConditions( + const L1CaloCoolChannelId& channelId) const { + unsigned int index = (channelId.crate() << 10) + (channelId.module() << 6) + + (channelId.subModule() << 2) + channelId.channel(); + if (index < s_vectorSize) + return m_pprConditionsVec[index]; + else + return 0; } void L1CaloPprConditionsContainerRun2::dump() const { - std::cout << "bcidDecision1: " << m_bcidDecision1 << ", " - << "satOverride1: " << m_satOverride1 << ", " - << "bcidDecision2: " << m_bcidDecision2 << ", " - << "satOverride2: " << m_satOverride2 << ", " - << "bcidDecision3: " << m_bcidDecision3 << ", " - << "satOverride3: " << m_satOverride3 << ", " + std::cout << "bcidDecision1: " << m_bcidDecision1 << ", " + << "satOverride1: " << m_satOverride1 << ", " + << "bcidDecision2: " << m_bcidDecision2 << ", " + << "satOverride2: " << m_satOverride2 << ", " + << "bcidDecision3: " << m_bcidDecision3 << ", " + << "satOverride3: " << m_satOverride3 << ", " << "peakFinderCond: " << m_peakFinderCond << ", " << "decisionSource: " << m_decisionSource << std::endl; std::size_t index(0); - for(auto * C : m_pprConditionsVec) { - if(C) std::cout << "index " << index++ << " * item: " << *C << std::endl; + for (auto* C : m_pprConditionsVec) { + if (C) std::cout << "index " << index++ << " * item: " << *C << std::endl; } } void L1CaloPprConditionsContainerRun2::clear() { - for(L1CaloPprConditionsRun2* p : m_pprConditionsVec) { - if(p) delete p; + for (L1CaloPprConditionsRun2* p : m_pprConditionsVec) { + if (p) delete p; } m_pprConditionsVec.assign(s_vectorSize, nullptr); } diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsRun2.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsRun2.cxx index ca6925977459..5b54a05078bb 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsRun2.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloPprConditionsRun2.cxx @@ -5,6 +5,7 @@ #include "TrigT1CaloCalibConditions/L1CaloPprConditionsRun2.h" #include <iostream> +#include <cmath> L1CaloPprConditionsRun2::L1CaloPprConditionsRun2(unsigned short extBcidThreshold, unsigned short satBcidThreshLow, @@ -71,6 +72,48 @@ L1CaloPprConditionsRun2::L1CaloPprConditionsRun2(unsigned short extBcidThreshold { } +namespace { +unsigned short getLutOffset(double pedMean, unsigned short firStartBit, + std::vector<short int> firCoeff, + unsigned short lutSlope, + unsigned short lutStrategy) { + unsigned short lutOffset = 0; + int firCoeffSum = 0; + for (unsigned int i = 0; i < firCoeff.size(); i++) { + firCoeffSum += firCoeff.at(i); + } + float lutOffsetReal = 0; + if (lutStrategy == 0) { + lutOffsetReal = (pedMean * static_cast<float>(firCoeffSum) / + std::pow(2., static_cast<float>(firStartBit))); + } else { + lutOffsetReal = (pedMean * static_cast<float>(firCoeffSum) * + static_cast<float>(lutSlope) / + std::pow(2., static_cast<float>(firStartBit)) - + static_cast<float>(lutSlope) / 2.0); + } + lutOffset = + static_cast<unsigned short>(lutOffsetReal < 0. ? 0 : lutOffsetReal + 0.5); + return lutOffset; +} +} + +void L1CaloPprConditionsRun2::initializeByStrategy(unsigned short firStartBit, short int firCoeff1, + short int firCoeff2, short int firCoeff3, short int firCoeff4, + short int firCoeff5, unsigned short lutCpSlope, unsigned short lutCpNoiseCut, + unsigned short lutJepSlope, unsigned short lutJepNoiseCut) +{ + m_firStartBit = firStartBit; + m_vFirCoefficients = {firCoeff1, firCoeff2, firCoeff3, firCoeff4, firCoeff5}, + m_lutCpSlope = lutCpSlope; + m_lutCpNoiseCut = lutCpNoiseCut; + m_lutJepSlope = lutJepSlope; + m_lutJepNoiseCut = lutJepNoiseCut; + + m_lutCpOffset = getLutOffset(m_pedMean, m_firStartBit, m_vFirCoefficients,m_lutCpSlope, m_lutCpStrategy); + m_lutJepOffset = getLutOffset(m_pedMean, m_firStartBit, m_vFirCoefficients,m_lutJepSlope, m_lutJepStrategy); +} + std::ostream& operator<<(std::ostream& output, const L1CaloPprConditionsRun2& r) { output << "extBcidThreshold: " << r.m_extBcidThreshold << ", " << "satBcidThreshLow: " << r.m_satBcidThreshLow << ", " diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfig.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfig.cxx new file mode 100644 index 000000000000..a6d436118788 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfig.cxx @@ -0,0 +1,58 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfig.h" + +L1CaloReadoutConfig::L1CaloReadoutConfig(unsigned int channelId, const std::string& description, unsigned int baselinePointer, unsigned int numFadcSlices, unsigned int l1aFadcSlice, unsigned int numLutSlices, unsigned int l1aLutSlice, unsigned int numProcSlices, unsigned int l1aProcSlice, unsigned int numTopoSlices, unsigned int l1aTopoSlice, unsigned int latencyPpmFadc, unsigned int latencyPpmLut, unsigned int latencyCpmInput, unsigned int latencyCpmHits, unsigned int latencyCpmRoi, unsigned int latencyJemInput, unsigned int latencyJemRoi, unsigned int latencyCpCmxBackplane, unsigned int latencyCpCmxLocal, unsigned int latencyCpCmxCable, unsigned int latencyCpCmxSystem, unsigned int latencyCpCmxInfo, unsigned int latencyJetCmxBackplane, unsigned int latencyJetCmxLocal, unsigned int latencyJetCmxCable, unsigned int latencyJetCmxSystem, unsigned int latencyJetCmxInfo, unsigned int latencyJetCmxRoi, unsigned int latencyEnergyCmxBackplane, unsigned int latencyEnergyCmxLocal, unsigned int latencyEnergyCmxCable, unsigned int latencyEnergyCmxSystem, unsigned int latencyEnergyCmxInfo, unsigned int latencyEnergyCmxRoi, unsigned int latencyTopo, unsigned int internalLatencyJemJet, unsigned int internalLatencyJemSum, unsigned int bcOffsetJemJet, unsigned int bcOffsetJemSum, int bcOffsetCmx, int bcOffsetTopo, const std::string& formatTypePpm, const std::string& formatTypeCpJep, const std::string& formatTypeTopo, unsigned int compressionThresholdPpm, unsigned int compressionThresholdCpJep, unsigned int compressionThresholdTopo, unsigned int compressionBaselinePpm, unsigned int readout80ModePpm) + : m_channelId(channelId) + , m_description(description) + , m_baselinePointer(baselinePointer) + , m_numFadcSlices(numFadcSlices) + , m_l1aFadcSlice(l1aFadcSlice) + , m_numLutSlices(numLutSlices) + , m_l1aLutSlice(l1aLutSlice) + , m_numProcSlices(numProcSlices) + , m_l1aProcSlice(l1aProcSlice) + , m_numTopoSlices(numTopoSlices) + , m_l1aTopoSlice(l1aTopoSlice) + , m_latencyPpmFadc(latencyPpmFadc) + , m_latencyPpmLut(latencyPpmLut) + , m_latencyCpmInput(latencyCpmInput) + , m_latencyCpmHits(latencyCpmHits) + , m_latencyCpmRoi(latencyCpmRoi) + , m_latencyJemInput(latencyJemInput) + , m_latencyJemRoi(latencyJemRoi) + , m_latencyCpCmxBackplane(latencyCpCmxBackplane) + , m_latencyCpCmxLocal(latencyCpCmxLocal) + , m_latencyCpCmxCable(latencyCpCmxCable) + , m_latencyCpCmxSystem(latencyCpCmxSystem) + , m_latencyCpCmxInfo(latencyCpCmxInfo) + , m_latencyJetCmxBackplane(latencyJetCmxBackplane) + , m_latencyJetCmxLocal(latencyJetCmxLocal) + , m_latencyJetCmxCable(latencyJetCmxCable) + , m_latencyJetCmxSystem(latencyJetCmxSystem) + , m_latencyJetCmxInfo(latencyJetCmxInfo) + , m_latencyJetCmxRoi(latencyJetCmxRoi) + , m_latencyEnergyCmxBackplane(latencyEnergyCmxBackplane) + , m_latencyEnergyCmxLocal(latencyEnergyCmxLocal) + , m_latencyEnergyCmxCable(latencyEnergyCmxCable) + , m_latencyEnergyCmxSystem(latencyEnergyCmxSystem) + , m_latencyEnergyCmxInfo(latencyEnergyCmxInfo) + , m_latencyEnergyCmxRoi(latencyEnergyCmxRoi) + , m_latencyTopo(latencyTopo) + , m_internalLatencyJemJet(internalLatencyJemJet) + , m_internalLatencyJemSum(internalLatencyJemSum) + , m_bcOffsetJemJet(bcOffsetJemJet) + , m_bcOffsetJemSum(bcOffsetJemSum) + , m_bcOffsetCmx(bcOffsetCmx) + , m_bcOffsetTopo(bcOffsetTopo) + , m_formatTypePpm(formatTypePpm) + , m_formatTypeCpJep(formatTypeCpJep) + , m_formatTypeTopo(formatTypeTopo) + , m_compressionThresholdPpm(compressionThresholdPpm) + , m_compressionThresholdCpJep(compressionThresholdCpJep) + , m_compressionThresholdTopo(compressionThresholdTopo) + , m_compressionBaselinePpm(compressionBaselinePpm) + , m_readout80ModePpm(readout80ModePpm) +{ +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfigContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfigContainer.cxx new file mode 100644 index 000000000000..1b1577dda44a --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloReadoutConfigContainer.cxx @@ -0,0 +1,232 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h" + +#include <algorithm> +#include <memory> + +#include "CxxUtils/make_unique.h" +#include "CoralBase/AttributeListSpecification.h" +#include "AthenaPoolUtilities/CondAttrListCollection.h" +#include "AthenaPoolUtilities/AthenaAttributeList.h" + +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfig.h" + +L1CaloReadoutConfigContainer::L1CaloReadoutConfigContainer() + : AbstractL1CaloPersistentCondition("CondAttrListCollection") +{ + this->addSpecification(edescription, "description", "string"); + this->addSpecification(ebaselinePointer, "baselinePointer", "unsigned int"); + this->addSpecification(enumFadcSlices, "numFadcSlices", "unsigned int"); + this->addSpecification(el1aFadcSlice, "l1aFadcSlice", "unsigned int"); + this->addSpecification(enumLutSlices, "numLutSlices", "unsigned int"); + this->addSpecification(el1aLutSlice, "l1aLutSlice", "unsigned int"); + this->addSpecification(enumProcSlices, "numProcSlices", "unsigned int"); + this->addSpecification(el1aProcSlice, "l1aProcSlice", "unsigned int"); + this->addSpecification(enumTopoSlices, "numTopoSlices", "unsigned int"); + this->addSpecification(el1aTopoSlice, "l1aTopoSlice", "unsigned int"); + this->addSpecification(elatencyPpmFadc, "latencyPpmFadc", "unsigned int"); + this->addSpecification(elatencyPpmLut, "latencyPpmLut", "unsigned int"); + this->addSpecification(elatencyCpmInput, "latencyCpmInput", "unsigned int"); + this->addSpecification(elatencyCpmHits, "latencyCpmHits", "unsigned int"); + this->addSpecification(elatencyCpmRoi, "latencyCpmRoi", "unsigned int"); + this->addSpecification(elatencyJemInput, "latencyJemInput", "unsigned int"); + this->addSpecification(elatencyJemRoi, "latencyJemRoi", "unsigned int"); + this->addSpecification(elatencyCpCmxBackplane, "latencyCpCmxBackplane", "unsigned int"); + this->addSpecification(elatencyCpCmxLocal, "latencyCpCmxLocal", "unsigned int"); + this->addSpecification(elatencyCpCmxCable, "latencyCpCmxCable", "unsigned int"); + this->addSpecification(elatencyCpCmxSystem, "latencyCpCmxSystem", "unsigned int"); + this->addSpecification(elatencyCpCmxInfo, "latencyCpCmxInfo", "unsigned int"); + this->addSpecification(elatencyJetCmxBackplane, "latencyJetCmxBackplane", "unsigned int"); + this->addSpecification(elatencyJetCmxLocal, "latencyJetCmxLocal", "unsigned int"); + this->addSpecification(elatencyJetCmxCable, "latencyJetCmxCable", "unsigned int"); + this->addSpecification(elatencyJetCmxSystem, "latencyJetCmxSystem", "unsigned int"); + this->addSpecification(elatencyJetCmxInfo, "latencyJetCmxInfo", "unsigned int"); + this->addSpecification(elatencyJetCmxRoi, "latencyJetCmxRoi", "unsigned int"); + this->addSpecification(elatencyEnergyCmxBackplane, "latencyEnergyCmxBackplane", "unsigned int"); + this->addSpecification(elatencyEnergyCmxLocal, "latencyEnergyCmxLocal", "unsigned int"); + this->addSpecification(elatencyEnergyCmxCable, "latencyEnergyCmxCable", "unsigned int"); + this->addSpecification(elatencyEnergyCmxSystem, "latencyEnergyCmxSystem", "unsigned int"); + this->addSpecification(elatencyEnergyCmxInfo, "latencyEnergyCmxInfo", "unsigned int"); + this->addSpecification(elatencyEnergyCmxRoi, "latencyEnergyCmxRoi", "unsigned int"); + this->addSpecification(elatencyTopo, "latencyTopo", "unsigned int"); + this->addSpecification(einternalLatencyJemJet, "internalLatencyJemJet", "unsigned int"); + this->addSpecification(einternalLatencyJemSum, "internalLatencyJemSum", "unsigned int"); + this->addSpecification(ebcOffsetJemJet, "bcOffsetJemJet", "unsigned int"); + this->addSpecification(ebcOffsetJemSum, "bcOffsetJemSum", "unsigned int"); + this->addSpecification(ebcOffsetCmx, "bcOffsetCmx", "int"); + this->addSpecification(ebcOffsetTopo, "bcOffsetTopo", "int"); + this->addSpecification(eformatTypePpm, "formatTypePpm", "string"); + this->addSpecification(eformatTypeCpJep, "formatTypeCpJep", "string"); + this->addSpecification(eformatTypeTopo, "formatTypeTopo", "string"); + this->addSpecification(ecompressionThresholdPpm, "compressionThresholdPpm", "unsigned int"); + this->addSpecification(ecompressionThresholdCpJep, "compressionThresholdCpJep", "unsigned int"); + this->addSpecification(ecompressionThresholdTopo, "compressionThresholdTopo", "unsigned int"); + this->addSpecification(ecompressionBaselinePpm, "compressionBaselinePpm", "unsigned int"); + this->addSpecification(ereadout80ModePpm, "readout80ModePpm", "unsigned int"); +} + +L1CaloReadoutConfigContainer::L1CaloReadoutConfigContainer(const std::string& folderKey) + : L1CaloReadoutConfigContainer() // delegating constructor +{ + m_coolFolderKey = folderKey; +} + + +DataObject* L1CaloReadoutConfigContainer::makePersistent() const +{ + using CxxUtils::make_unique; + + if(m_coolFolderKey.empty()) return nullptr; + + auto* attrSpecification = this->createAttributeListSpecification(); + if(!attrSpecification || !attrSpecification->size()) return nullptr; + + auto attrListCollection = make_unique<CondAttrListCollection>(true); + for(const auto& item : m_readoutConfigs) { + AthenaAttributeList attrList(*attrSpecification); + attrList[specificationName(edescription)].setValue(item.description()); + attrList[specificationName(ebaselinePointer)].setValue(item.baselinePointer()); + attrList[specificationName(enumFadcSlices)].setValue(item.numFadcSlices()); + attrList[specificationName(el1aFadcSlice)].setValue(item.l1aFadcSlice()); + attrList[specificationName(enumLutSlices)].setValue(item.numLutSlices()); + attrList[specificationName(el1aLutSlice)].setValue(item.l1aLutSlice()); + attrList[specificationName(enumProcSlices)].setValue(item.numProcSlices()); + attrList[specificationName(el1aProcSlice)].setValue(item.l1aProcSlice()); + attrList[specificationName(enumTopoSlices)].setValue(item.numTopoSlices()); + attrList[specificationName(el1aTopoSlice)].setValue(item.l1aTopoSlice()); + attrList[specificationName(elatencyPpmFadc)].setValue(item.latencyPpmFadc()); + attrList[specificationName(elatencyPpmLut)].setValue(item.latencyPpmLut()); + attrList[specificationName(elatencyCpmInput)].setValue(item.latencyCpmInput()); + attrList[specificationName(elatencyCpmHits)].setValue(item.latencyCpmHits()); + attrList[specificationName(elatencyCpmRoi)].setValue(item.latencyCpmRoi()); + attrList[specificationName(elatencyJemInput)].setValue(item.latencyJemInput()); + attrList[specificationName(elatencyJemRoi)].setValue(item.latencyJemRoi()); + attrList[specificationName(elatencyCpCmxBackplane)].setValue(item.latencyCpCmxBackplane()); + attrList[specificationName(elatencyCpCmxLocal)].setValue(item.latencyCpCmxLocal()); + attrList[specificationName(elatencyCpCmxCable)].setValue(item.latencyCpCmxCable()); + attrList[specificationName(elatencyCpCmxSystem)].setValue(item.latencyCpCmxSystem()); + attrList[specificationName(elatencyCpCmxInfo)].setValue(item.latencyCpCmxInfo()); + attrList[specificationName(elatencyJetCmxBackplane)].setValue(item.latencyJetCmxBackplane()); + attrList[specificationName(elatencyJetCmxLocal)].setValue(item.latencyJetCmxLocal()); + attrList[specificationName(elatencyJetCmxCable)].setValue(item.latencyJetCmxCable()); + attrList[specificationName(elatencyJetCmxSystem)].setValue(item.latencyJetCmxSystem()); + attrList[specificationName(elatencyJetCmxInfo)].setValue(item.latencyJetCmxInfo()); + attrList[specificationName(elatencyJetCmxRoi)].setValue(item.latencyJetCmxRoi()); + attrList[specificationName(elatencyEnergyCmxBackplane)].setValue(item.latencyEnergyCmxBackplane()); + attrList[specificationName(elatencyEnergyCmxLocal)].setValue(item.latencyEnergyCmxLocal()); + attrList[specificationName(elatencyEnergyCmxCable)].setValue(item.latencyEnergyCmxCable()); + attrList[specificationName(elatencyEnergyCmxSystem)].setValue(item.latencyEnergyCmxSystem()); + attrList[specificationName(elatencyEnergyCmxInfo)].setValue(item.latencyEnergyCmxInfo()); + attrList[specificationName(elatencyEnergyCmxRoi)].setValue(item.latencyEnergyCmxRoi()); + attrList[specificationName(elatencyTopo)].setValue(item.latencyTopo()); + attrList[specificationName(einternalLatencyJemJet)].setValue(item.internalLatencyJemJet()); + attrList[specificationName(einternalLatencyJemSum)].setValue(item.internalLatencyJemSum()); + attrList[specificationName(ebcOffsetJemJet)].setValue(item.bcOffsetJemJet()); + attrList[specificationName(ebcOffsetJemSum)].setValue(item.bcOffsetJemSum()); + attrList[specificationName(ebcOffsetCmx)].setValue(item.bcOffsetCmx()); + attrList[specificationName(ebcOffsetTopo)].setValue(item.bcOffsetTopo()); + attrList[specificationName(eformatTypePpm)].setValue(item.formatTypePpm()); + attrList[specificationName(eformatTypeCpJep)].setValue(item.formatTypeCpJep()); + attrList[specificationName(eformatTypeTopo)].setValue(item.formatTypeTopo()); + attrList[specificationName(ecompressionThresholdPpm)].setValue(item.compressionThresholdPpm()); + attrList[specificationName(ecompressionThresholdCpJep)].setValue(item.compressionThresholdCpJep()); + attrList[specificationName(ecompressionThresholdTopo)].setValue(item.compressionThresholdTopo()); + attrList[specificationName(ecompressionBaselinePpm)].setValue(item.compressionBaselinePpm()); + attrList[specificationName(ereadout80ModePpm)].setValue(item.readout80ModePpm()); + + attrListCollection->add(item.channelId(), attrList); + } + return static_cast<DataObject*>(attrListCollection.release()); +} + +void L1CaloReadoutConfigContainer::makeTransient(const std::map<std::string, CondAttrListCollection*> condAttrListCollectionMap) +{ + clear(); + + auto it = condAttrListCollectionMap.find(m_coolFolderKey); + if(it == std::end(condAttrListCollectionMap)) return; + + auto attrListCollection = it->second; + for(const auto& item : *attrListCollection) { + auto chanNum = item.first; + const auto& attrList = item.second; + + auto description = attrList[specificationName(edescription)].data<std::string>(); + auto baselinePointer = attrList[specificationName(ebaselinePointer)].data<unsigned int>(); + auto numFadcSlices = attrList[specificationName(enumFadcSlices)].data<unsigned int>(); + auto l1aFadcSlice = attrList[specificationName(el1aFadcSlice)].data<unsigned int>(); + auto numLutSlices = attrList[specificationName(enumLutSlices)].data<unsigned int>(); + auto l1aLutSlice = attrList[specificationName(el1aLutSlice)].data<unsigned int>(); + auto numProcSlices = attrList[specificationName(enumProcSlices)].data<unsigned int>(); + auto l1aProcSlice = attrList[specificationName(el1aProcSlice)].data<unsigned int>(); + auto numTopoSlices = attrList[specificationName(enumTopoSlices)].data<unsigned int>(); + auto l1aTopoSlice = attrList[specificationName(el1aTopoSlice)].data<unsigned int>(); + auto latencyPpmFadc = attrList[specificationName(elatencyPpmFadc)].data<unsigned int>(); + auto latencyPpmLut = attrList[specificationName(elatencyPpmLut)].data<unsigned int>(); + auto latencyCpmInput = attrList[specificationName(elatencyCpmInput)].data<unsigned int>(); + auto latencyCpmHits = attrList[specificationName(elatencyCpmHits)].data<unsigned int>(); + auto latencyCpmRoi = attrList[specificationName(elatencyCpmRoi)].data<unsigned int>(); + auto latencyJemInput = attrList[specificationName(elatencyJemInput)].data<unsigned int>(); + auto latencyJemRoi = attrList[specificationName(elatencyJemRoi)].data<unsigned int>(); + auto latencyCpCmxBackplane = attrList[specificationName(elatencyCpCmxBackplane)].data<unsigned int>(); + auto latencyCpCmxLocal = attrList[specificationName(elatencyCpCmxLocal)].data<unsigned int>(); + auto latencyCpCmxCable = attrList[specificationName(elatencyCpCmxCable)].data<unsigned int>(); + auto latencyCpCmxSystem = attrList[specificationName(elatencyCpCmxSystem)].data<unsigned int>(); + auto latencyCpCmxInfo = attrList[specificationName(elatencyCpCmxInfo)].data<unsigned int>(); + auto latencyJetCmxBackplane = attrList[specificationName(elatencyJetCmxBackplane)].data<unsigned int>(); + auto latencyJetCmxLocal = attrList[specificationName(elatencyJetCmxLocal)].data<unsigned int>(); + auto latencyJetCmxCable = attrList[specificationName(elatencyJetCmxCable)].data<unsigned int>(); + auto latencyJetCmxSystem = attrList[specificationName(elatencyJetCmxSystem)].data<unsigned int>(); + auto latencyJetCmxInfo = attrList[specificationName(elatencyJetCmxInfo)].data<unsigned int>(); + auto latencyJetCmxRoi = attrList[specificationName(elatencyJetCmxRoi)].data<unsigned int>(); + auto latencyEnergyCmxBackplane = attrList[specificationName(elatencyEnergyCmxBackplane)].data<unsigned int>(); + auto latencyEnergyCmxLocal = attrList[specificationName(elatencyEnergyCmxLocal)].data<unsigned int>(); + auto latencyEnergyCmxCable = attrList[specificationName(elatencyEnergyCmxCable)].data<unsigned int>(); + auto latencyEnergyCmxSystem = attrList[specificationName(elatencyEnergyCmxSystem)].data<unsigned int>(); + auto latencyEnergyCmxInfo = attrList[specificationName(elatencyEnergyCmxInfo)].data<unsigned int>(); + auto latencyEnergyCmxRoi = attrList[specificationName(elatencyEnergyCmxRoi)].data<unsigned int>(); + auto latencyTopo = attrList[specificationName(elatencyTopo)].data<unsigned int>(); + auto internalLatencyJemJet = attrList[specificationName(einternalLatencyJemJet)].data<unsigned int>(); + auto internalLatencyJemSum = attrList[specificationName(einternalLatencyJemSum)].data<unsigned int>(); + auto bcOffsetJemJet = attrList[specificationName(ebcOffsetJemJet)].data<unsigned int>(); + auto bcOffsetJemSum = attrList[specificationName(ebcOffsetJemSum)].data<unsigned int>(); + auto bcOffsetCmx = attrList[specificationName(ebcOffsetCmx)].data<int>(); + auto bcOffsetTopo = attrList[specificationName(ebcOffsetTopo)].data<int>(); + auto formatTypePpm = attrList[specificationName(eformatTypePpm)].data<std::string>(); + auto formatTypeCpJep = attrList[specificationName(eformatTypeCpJep)].data<std::string>(); + auto formatTypeTopo = attrList[specificationName(eformatTypeTopo)].data<std::string>(); + auto compressionThresholdPpm = attrList[specificationName(ecompressionThresholdPpm)].data<unsigned int>(); + auto compressionThresholdCpJep = attrList[specificationName(ecompressionThresholdCpJep)].data<unsigned int>(); + auto compressionThresholdTopo = attrList[specificationName(ecompressionThresholdTopo)].data<unsigned int>(); + auto compressionBaselinePpm = attrList[specificationName(ecompressionBaselinePpm)].data<unsigned int>(); + auto readout80ModePpm = attrList[specificationName(ereadout80ModePpm)].data<unsigned int>(); + + addReadoutConfig(L1CaloReadoutConfig(chanNum, description, baselinePointer, numFadcSlices, l1aFadcSlice, numLutSlices, l1aLutSlice, numProcSlices, l1aProcSlice, numTopoSlices, l1aTopoSlice, latencyPpmFadc, latencyPpmLut, latencyCpmInput, latencyCpmHits, latencyCpmRoi, latencyJemInput, latencyJemRoi, latencyCpCmxBackplane, latencyCpCmxLocal, latencyCpCmxCable, latencyCpCmxSystem, latencyCpCmxInfo, latencyJetCmxBackplane, latencyJetCmxLocal, latencyJetCmxCable, latencyJetCmxSystem, latencyJetCmxInfo, latencyJetCmxRoi, latencyEnergyCmxBackplane, latencyEnergyCmxLocal, latencyEnergyCmxCable, latencyEnergyCmxSystem, latencyEnergyCmxInfo, latencyEnergyCmxRoi, latencyTopo, internalLatencyJemJet, internalLatencyJemSum, bcOffsetJemJet, bcOffsetJemSum, bcOffsetCmx, bcOffsetTopo, formatTypePpm, formatTypeCpJep, formatTypeTopo, compressionThresholdPpm, compressionThresholdCpJep, compressionThresholdTopo, compressionBaselinePpm, readout80ModePpm)); + } +} + +const L1CaloReadoutConfig* L1CaloReadoutConfigContainer::readoutConfig(unsigned int channelId) const +{ + auto it = std::lower_bound(std::begin(m_readoutConfigs), + std::end(m_readoutConfigs), + channelId, + [](const L1CaloReadoutConfig& el, unsigned int val) -> bool { + return el.channelId() < val; + }); + if(it == std::end(m_readoutConfigs)) return nullptr; + return &(*it); +} + +void L1CaloReadoutConfigContainer::addReadoutConfig(const L1CaloReadoutConfig& readoutConfig) +{ + // insert into the correct position mainting the sorted vector + m_readoutConfigs.insert(std::lower_bound(std::begin(m_readoutConfigs), + std::end(m_readoutConfigs), + readoutConfig.channelId(), + [](const L1CaloReadoutConfig& el, unsigned int va) -> bool { + return el.channelId() < va; + }), + readoutConfig); +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParameters.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParameters.cxx new file mode 100644 index 000000000000..82992529ba05 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParameters.cxx @@ -0,0 +1,26 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" + +L1CaloRunParameters::L1CaloRunParameters(unsigned int channelId, const std::string& runType, const std::string& runActionName, unsigned int runActionVersion, const std::string& readoutConfig, unsigned int readoutConfigID, const std::string& ttcConfiguration, unsigned int ttcConfigurationID, const std::string& triggerMenu, const std::string& calibration, const std::string& conditions) + : m_channelId(channelId) + , m_runType(runType) + , m_runActionName(runActionName) + , m_runActionVersion(runActionVersion) + , m_readoutConfig(readoutConfig) + , m_readoutConfigID(readoutConfigID) + , m_ttcConfiguration(ttcConfiguration) + , m_ttcConfigurationID(ttcConfigurationID) + , m_triggerMenu(triggerMenu) + , m_calibration(calibration) + , m_conditions(conditions) +{ +} + +std::ostream& operator<<(std::ostream& output, const L1CaloRunParameters& r) { + output << "channelID: " << std::hex << r.channelId() << std::dec + << ", runType: " << r.runType(); + + return output; +} diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParametersContainer.cxx b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParametersContainer.cxx new file mode 100644 index 000000000000..aaaaf39574f5 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/src/L1CaloRunParametersContainer.cxx @@ -0,0 +1,122 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ +#include "TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h" + +#include <algorithm> +#include <memory> + +#include "CxxUtils/make_unique.h" +#include "CoralBase/AttributeListSpecification.h" +#include "AthenaPoolUtilities/CondAttrListCollection.h" +#include "AthenaPoolUtilities/AthenaAttributeList.h" + +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" + +L1CaloRunParametersContainer::L1CaloRunParametersContainer() + : AbstractL1CaloPersistentCondition("CondAttrListCollection") +{ + this->addSpecification(erunType, "runType", "string"); + this->addSpecification(erunActionName, "runActionName", "string"); + this->addSpecification(erunActionVersion, "runActionVersion", "unsigned int"); + this->addSpecification(ereadoutConfig, "readoutConfig", "string"); + this->addSpecification(ereadoutConfigID, "readoutConfigID", "unsigned int"); + this->addSpecification(ettcConfiguration, "ttcConfiguration", "string"); + this->addSpecification(ettcConfigurationID, "ttcConfigurationID", "unsigned int"); + this->addSpecification(etriggerMenu, "triggerMenu", "string"); + this->addSpecification(ecalibration, "calibration", "string"); + this->addSpecification(econditions, "conditions", "string"); +} + +L1CaloRunParametersContainer::L1CaloRunParametersContainer(const std::string& folderKey) + : L1CaloRunParametersContainer() // delegating constructor +{ + m_coolFolderKey = folderKey; +} + + +DataObject* L1CaloRunParametersContainer::makePersistent() const +{ + using CxxUtils::make_unique; + + if(m_coolFolderKey.empty()) return nullptr; + + auto* attrSpecification = this->createAttributeListSpecification(); + if(!attrSpecification || !attrSpecification->size()) return nullptr; + + auto attrListCollection = make_unique<CondAttrListCollection>(true); + for(const auto& item : m_runParameterss) { + AthenaAttributeList attrList(*attrSpecification); + attrList[specificationName(erunType)].setValue(item.runType()); + attrList[specificationName(erunActionName)].setValue(item.runActionName()); + attrList[specificationName(erunActionVersion)].setValue(item.runActionVersion()); + attrList[specificationName(ereadoutConfig)].setValue(item.readoutConfig()); + attrList[specificationName(ereadoutConfigID)].setValue(item.readoutConfigID()); + attrList[specificationName(ettcConfiguration)].setValue(item.ttcConfiguration()); + attrList[specificationName(ettcConfigurationID)].setValue(item.ttcConfigurationID()); + attrList[specificationName(etriggerMenu)].setValue(item.triggerMenu()); + attrList[specificationName(ecalibration)].setValue(item.calibration()); + attrList[specificationName(econditions)].setValue(item.conditions()); + + attrListCollection->add(item.channelId(), attrList); + } + return static_cast<DataObject*>(attrListCollection.release()); +} + +void L1CaloRunParametersContainer::makeTransient(const std::map<std::string, CondAttrListCollection*> condAttrListCollectionMap) +{ + clear(); + + auto it = condAttrListCollectionMap.find(m_coolFolderKey); + if(it == std::end(condAttrListCollectionMap)) return; + + auto attrListCollection = it->second; + for(const auto& item : *attrListCollection) { + auto chanNum = item.first; + const auto& attrList = item.second; + + auto runType = attrList[specificationName(erunType)].data<std::string>(); + auto runActionName = attrList[specificationName(erunActionName)].data<std::string>(); + auto runActionVersion = attrList[specificationName(erunActionVersion)].data<unsigned int>(); + auto readoutConfig = attrList[specificationName(ereadoutConfig)].data<std::string>(); + auto readoutConfigID = attrList[specificationName(ereadoutConfigID)].data<unsigned int>(); + auto ttcConfiguration = attrList[specificationName(ettcConfiguration)].data<std::string>(); + auto ttcConfigurationID = attrList[specificationName(ettcConfigurationID)].data<unsigned int>(); + auto triggerMenu = attrList[specificationName(etriggerMenu)].data<std::string>(); + auto calibration = attrList[specificationName(ecalibration)].data<std::string>(); + auto conditions = attrList[specificationName(econditions)].data<std::string>(); + + addRunParameters(L1CaloRunParameters(chanNum, runType, runActionName, runActionVersion, readoutConfig, readoutConfigID, ttcConfiguration, ttcConfigurationID, triggerMenu, calibration, conditions)); + } +} + +const L1CaloRunParameters* L1CaloRunParametersContainer::runParameters(unsigned int channelId) const +{ + auto it = std::lower_bound(std::begin(m_runParameterss), + std::end(m_runParameterss), + channelId, + [](const L1CaloRunParameters& el, unsigned int val) -> bool { + return el.channelId() < val; + }); + if(it == std::end(m_runParameterss)) return nullptr; + return &(*it); +} + +void L1CaloRunParametersContainer::addRunParameters(const L1CaloRunParameters& runParameters) +{ + // insert into the correct position mainting the sorted vector + m_runParameterss.insert(std::lower_bound(std::begin(m_runParameterss), + std::end(m_runParameterss), + runParameters.channelId(), + [](const L1CaloRunParameters& el, unsigned int va) -> bool { + return el.channelId() < va; + }), + runParameters); +} + +void L1CaloRunParametersContainer::dump() const { + L1CaloRunParametersContainer::const_iterator it = this->begin(); + for(;it!=this->end();++it) { + std::cout << " * item: " << *it <<std::endl; + } +} -- GitLab From d551e8500a5b1cfbb3248210374f899c95fbfe68 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:08:17 +0100 Subject: [PATCH 012/192] Updated TrigT1CaloCalibUtils --- .../python/doL1CaloHVCorrections.py | 132 +++++++++++++++++- 1 file changed, 127 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/python/doL1CaloHVCorrections.py b/Trigger/TrigT1/TrigT1CaloCalibUtils/python/doL1CaloHVCorrections.py index 6d485980c0fe..aae275eaed59 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibUtils/python/doL1CaloHVCorrections.py +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/python/doL1CaloHVCorrections.py @@ -11,7 +11,7 @@ import time import os #from ctypes import * import struct -from array import * +import array from PyCool import cool from optparse import OptionParser @@ -21,6 +21,53 @@ import PlotCalibrationHV import mergeEnergyRamps +class HVCorrectionCOOLReader: + + def __init__(self): + + self.correctionsFromCOOL = {} + self.UNIX2COOL = 1000000000 + + # get database service and open database + dbSvc = cool.DatabaseSvcFactory.databaseService() + + dbString = 'oracle://ATLAS_COOLPROD;schema=ATLAS_COOLONL_TRIGGER;dbname=CONDBR2' + try: + db = dbSvc.openDatabase(dbString, False) + except Exception, e: + print 'Error: Problem opening database', e + sys.exit(1) + + folder_name = "/TRIGGER/Receivers/Factors/HVCorrections" + folder=db.getFolder(folder_name) + ch = folder.listChannels() + + startUtime = int(time.time()) + endUtime = int(time.time()) + startValKey = startUtime * self.UNIX2COOL + endValKey = endUtime * self.UNIX2COOL + chsel = cool.ChannelSelection(0,sys.maxint) + + try: + itr=folder.browseObjects(startValKey, endValKey, chsel) + except Exception, e: + print e + sys.exit(1) + + for row in itr: + ReceiverId = hex(int(row.channelId())) + payload = row.payload() + HVCorrection = payload['factor'] + + self.correctionsFromCOOL[ReceiverId] = HVCorrection + + # close database + db.closeDatabase() + + def getCorrection(self, receiver): + + return self.correctionsFromCOOL[receiver] + class HVCorrectionCalculator: def __init__(self, mapping): @@ -237,10 +284,24 @@ if __name__ == "__main__": h_corrEmec_em = PlotCalibrationGains.L1CaloMap("Calculated HV corrections for EM overlap (EMEC)","#eta bin","#phi bin") h_corrFcalHighEta_had = PlotCalibrationGains.L1CaloMap("Calculated HV corrections for HAD FCAL (high #eta)","#eta bin","#phi bin") +# + h_RefcorrEmb_em = PlotCalibrationGains.L1CaloMap("Reference HV corrections for EM (EMB in overlap) ","#eta bin","#phi bin") + h_RefcorrFcalLowEta_had = PlotCalibrationGains.L1CaloMap("Reference HV corrections for HAD (FCAL low #eta)","#eta bin","#phi bin") + h_RefcorrEmec_em = PlotCalibrationGains.L1CaloMap("Reference HV corrections for EM overlap (EMEC)","#eta bin","#phi bin") + h_RefcorrFcalHighEta_had = PlotCalibrationGains.L1CaloMap("Reference HV corrections for HAD FCAL (high #eta)","#eta bin","#phi bin") +# + h_DiffcorrEmb_em = PlotCalibrationGains.L1CaloMap("(calculated-reference) HV corrections for EM (EMB in overlap) ","#eta bin","#phi bin") + h_DiffcorrFcalLowEta_had = PlotCalibrationGains.L1CaloMap("(calculated-reference) HV corrections for HAD (FCAL low #eta)","#eta bin","#phi bin") + + h_DiffcorrEmec_em = PlotCalibrationGains.L1CaloMap("(calculated-reference) HV corrections for EM overlap (EMEC)","#eta bin","#phi bin") + h_DiffcorrFcalHighEta_had = PlotCalibrationGains.L1CaloMap("(calculated-reference) HV corrections for HAD FCAL (high #eta)","#eta bin","#phi bin") +# hv_input = PlotCalibrationHV.L1CaloHVReader(options.hv_input) + referenceCorrectionReader = HVCorrectionCOOLReader() + geometry_convertor = PlotCalibrationGains.L1CaloGeometryConvertor() geometry_convertor.LoadReceiverPPMMap() @@ -348,33 +409,49 @@ if __name__ == "__main__": ### check if the channel has overall HV correction larger than the threshold predictedCorrection = correctionCalculator.GetCorrection(receiver, layer_corr, layer_names) + referenceCorrection = referenceCorrectionReader.getCorrection(receiver) + + correctionDifference = (predictedCorrection-referenceCorrection) + +# print "predictedCorrection=", predictedCorrection, " referenceCorrection=", referenceCorrection - if abs(predictedCorrection - 1) <= options.hv_corr_diff: + if abs(correctionDifference) <= options.hv_corr_diff: # we update only towers that changed continue # skip this receiver, the correction is not high enough calculatedCorrections[receiver] = [predictedCorrection,0] - print >> output_text, ("%5s %9s %3i %2i %.3f") % (receiver, coolid, eta_bin, phi_bin, predictedCorrection) + print >> output_text, ("%5s %9s %3i %2i %.3f (%.3f)") % (receiver, coolid, eta_bin, phi_bin, predictedCorrection,referenceCorrection) if geometry_convertor.isCoolEm(coolid): if not geometry_convertor.isPPMOverlap(coolid): h_corrEmb_em.Fill(eta_bin,phi_bin,predictedCorrection) + h_RefcorrEmb_em.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrEmb_em.Fill(eta_bin,phi_bin,correctionDifference) else: if geometry_convertor.getOverlapLayer(receiver)=='EMB': h_corrEmb_em.Fill(eta_bin,phi_bin,predictedCorrection) + h_RefcorrEmb_em.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrEmb_em.Fill(eta_bin,phi_bin,correctionDifference) else: h_corrEmec_em.Fill(eta_bin,phi_bin,predictedCorrection) + h_RefcorrEmec_em.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrEmec_em.Fill(eta_bin,phi_bin,correctionDifference) if geometry_convertor.isCoolHad(coolid): if not geometry_convertor.isPPMFCAL(coolid): h_corrFcalLowEta_had.Fill(eta_bin,phi_bin,predictedCorrection) + h_RefcorrFcalLowEta_had.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrFcalLowEta_had.Fill(eta_bin,phi_bin,correctionDifference) else: if geometry_convertor.getFCAL23RecEta(receiver)=='HighEta': h_corrFcalHighEta_had.Fill(eta_bin,phi_bin,predictedCorrection) + h_RefcorrFcalHighEta_had.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrFcalHighEta_had.Fill(eta_bin,phi_bin,correctionDifference) else: h_corrFcalLowEta_had.Fill(eta_bin,phi_bin,predictedCorrection) - + h_RefcorrFcalLowEta_had.Fill(eta_bin,phi_bin,referenceCorrection) + h_DiffcorrFcalLowEta_had.Fill(eta_bin,phi_bin,correctionDifference) writeHVToSqlite(options.output_files+".sqlite",calculatedCorrections) output_text.close() @@ -400,8 +477,53 @@ if __name__ == "__main__": h_corrFcalHighEta_had.SetMinimum(1.) h_corrFcalHighEta_had.SetMaximum(2.1) h_corrFcalHighEta_had.Draw() - c1.Print(options.output_files+".ps)") + c1.Print(options.output_files+".ps") + + # Now corrections from COOL + + h_RefcorrEmb_em.SetMinimum(1.) + h_RefcorrEmb_em.SetMaximum(2.1) + h_RefcorrEmb_em.Draw() + c1.Print(options.output_files+".ps") + + h_RefcorrFcalLowEta_had.SetMinimum(1.) + h_RefcorrFcalLowEta_had.SetMaximum(2.1) + h_RefcorrFcalLowEta_had.Draw() + c1.Print(options.output_files+".ps") + + + h_RefcorrEmec_em.SetMinimum(1.) + h_RefcorrEmec_em.SetMaximum(2.1) + h_RefcorrEmec_em.Draw() + c1.Print(options.output_files+".ps") + + h_RefcorrFcalHighEta_had.SetMinimum(1.) + h_RefcorrFcalHighEta_had.SetMaximum(2.1) + h_RefcorrFcalHighEta_had.Draw() + c1.Print(options.output_files+".ps") + + # Now difference + h_DiffcorrEmb_em.SetMinimum(-0.1) + h_DiffcorrEmb_em.SetMaximum(0.1) + h_DiffcorrEmb_em.Draw() + c1.Print(options.output_files+".ps") + + h_DiffcorrFcalLowEta_had.SetMinimum(-0.1) + h_DiffcorrFcalLowEta_had.SetMaximum(0.1) + h_DiffcorrFcalLowEta_had.Draw() + c1.Print(options.output_files+".ps") + + h_DiffcorrEmec_em.SetMinimum(-0.1) + h_DiffcorrEmec_em.SetMaximum(0.1) + h_DiffcorrEmec_em.Draw() + c1.Print(options.output_files+".ps") + + h_DiffcorrFcalHighEta_had.SetMinimum(-0.1) + h_DiffcorrFcalHighEta_had.SetMaximum(0.1) + h_DiffcorrFcalHighEta_had.Draw() + c1.Print(options.output_files+".ps)") +# os.system("ps2pdf " + options.output_files+".ps") # os.system("cp HVStatus.pdf /home/jb/public_web/tmp ") -- GitLab From 58a4462a4573eef8cd2608945513d96ae0d288a2 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:24:19 +0100 Subject: [PATCH 013/192] Updated TrigT1CaloEvent --- Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EmTauROI.h | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyRoI.h | 4 ---- .../TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyTopoData.h | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetEtRoI.h | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetROI.h | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMMCPHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMMEtSums.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMMJetHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPTob.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMXEtSums.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetTob.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CPMHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/CPMTower.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/EmTauROI.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/JEMEtSums.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/JEMHits.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/JetElement.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/JetInput.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/JetROI.cxx | 4 ---- Trigger/TrigT1/TrigT1CaloEvent/src/TriggerTower.cxx | 4 ---- 22 files changed, 88 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EmTauROI.h b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EmTauROI.h index 072cef6810b9..4e58979115cf 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EmTauROI.h +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EmTauROI.h @@ -8,10 +8,6 @@ email : moyse@heppch.ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef EMTAUROI_H #define EMTAUROI_H diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyRoI.h b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyRoI.h index e66eebadbdec..dc82a0ba7422 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyRoI.h +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyRoI.h @@ -8,10 +8,6 @@ email : e.moyse@qmul.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef EnergyRoI_H #define EnergyRoI_H diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyTopoData.h b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyTopoData.h index 0c23602a585f..03519be7f9a2 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyTopoData.h +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/EnergyTopoData.h @@ -8,10 +8,6 @@ email : Alan.Watson@CERN.CH ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef EnergyTopoData_H #define EnergyTopoData_H diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetEtRoI.h b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetEtRoI.h index 1ff934c94bac..0f5f9a755c4c 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetEtRoI.h +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetEtRoI.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JetEtRoI_H #define JetEtRoI_H diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetROI.h b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetROI.h index 1f74548703cb..29ea23345779 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetROI.h +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/JetROI.h @@ -8,10 +8,6 @@ email : moyse@heppch.ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JetROI_H #define JetROI_H diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMCPHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMCPHits.cxx index d67b9fdff065..6705f1b347ca 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMCPHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMCPHits.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMEtSums.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMEtSums.cxx index db978a3a41d8..8e9ea8ed9ff5 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMEtSums.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMEtSums.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMJetHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMJetHits.cxx index 4b9ca8f2fceb..34ccb2c7a0a8 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMMJetHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMMJetHits.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPHits.cxx index 2d0402793498..e35ccdd3f0c9 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPHits.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPTob.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPTob.cxx index 86dc79f7afa7..e7c8c2ddecc3 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPTob.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXCPTob.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXEtSums.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXEtSums.cxx index 52e02fb04202..25a70e1d4249 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXEtSums.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXEtSums.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetHits.cxx index 79b7a57c846a..98234d3a5367 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetHits.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetTob.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetTob.cxx index 0f675694748e..f07f78a75243 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetTob.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CMXJetTob.cxx @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CPMHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CPMHits.cxx index 7629e94a3265..389a0aaee488 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CPMHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CPMHits.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/CPMTower.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/CPMTower.cxx index 56a639b45a2a..327ebea74826 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/CPMTower.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/CPMTower.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloEvent/CPMTower.h" diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/EmTauROI.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/EmTauROI.cxx index 8b47e2c8f7a6..1eaf153d97d1 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/EmTauROI.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/EmTauROI.cxx @@ -8,10 +8,6 @@ email : moyse@heppch.ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloEvent/EmTauROI.h" diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/JEMEtSums.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/JEMEtSums.cxx index 96577d76cdcb..ee081d1c99a2 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/JEMEtSums.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/JEMEtSums.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/JEMHits.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/JEMHits.cxx index c011351eea24..c1993a44e444 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/JEMHits.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/JEMHits.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/JetElement.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/JetElement.cxx index fae3804eb13d..70f1ff3372b9 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/JetElement.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/JetElement.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/JetInput.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/JetInput.cxx index c31aff9743cd..ed9afc4877c6 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/JetInput.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/JetInput.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/JetROI.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/JetROI.cxx index 493378aa1c5b..df43670b901c 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/JetROI.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/JetROI.cxx @@ -8,10 +8,6 @@ email : moyse@heppch.ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloEvent/JetROI.h" namespace LVL1 { diff --git a/Trigger/TrigT1/TrigT1CaloEvent/src/TriggerTower.cxx b/Trigger/TrigT1/TrigT1CaloEvent/src/TriggerTower.cxx index acf3379fd6b6..43aa9ece9025 100755 --- a/Trigger/TrigT1/TrigT1CaloEvent/src/TriggerTower.cxx +++ b/Trigger/TrigT1/TrigT1CaloEvent/src/TriggerTower.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloEvent/TriggerTower.h" -- GitLab From 85bb83c50d2c3309d0feca5609dd028ed613bce2 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:26:35 +0100 Subject: [PATCH 014/192] Updated TriggerMenu l1topo --- Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoFlags.py | 3 +-- Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoMenu.py | 2 +- Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoAlgos.py | 1 - Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoOutput.py | 1 - 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoFlags.py b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoFlags.py index 9114f8db9e19..a0d17a1af27c 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoFlags.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoFlags.py @@ -4,8 +4,7 @@ L1Topo specific flags """ -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer, jobproperties -from TriggerMenu.menu.CommonSliceHelper import AllowedList +from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer from AthenaCommon.Logging import logging log = logging.getLogger('TriggerMenu.L1TopoFlags.py') diff --git a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoMenu.py b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoMenu.py index fd8aa97e27f8..6f105e411465 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoMenu.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/L1TopoMenu.py @@ -1,6 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -from TopoOutput import TopoOutput, TriggerLine +from TopoOutput import TriggerLine from AthenaCommon.Logging import logging log = logging.getLogger("TriggerMenu.l1topo.L1TopoMenu") diff --git a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoAlgos.py b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoAlgos.py index 4b09969e45fb..5ef84d69cb9b 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoAlgos.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoAlgos.py @@ -1,7 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration from AthenaCommon.Logging import logging -from copy import deepcopy from TriggerJobOpts.TriggerFlags import TriggerFlags log = logging.getLogger("TopoAlgo") diff --git a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoOutput.py b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoOutput.py index 0738fbce77ee..9bb088a963e5 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoOutput.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/l1topo/TopoOutput.py @@ -22,7 +22,6 @@ class TopoOutput(object): -from collections import namedtuple class TriggerLine(object): import re -- GitLab From 7c496a69d901c3b81994adc98a3737bf0e589e17 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:37:00 +0100 Subject: [PATCH 015/192] Updated TrigT1CaloUtils --- .../TrigT1CaloUtils/BinAndCoord.h | 4 - .../TrigT1CaloUtils/CPAlgorithm.h | 4 - .../TrigT1CaloUtils/CPMTobAlgorithm.h | 4 - .../ClusterProcessorModuleKey.h | 4 - .../TrigT1CaloUtils/CoordToHardware.h | 4 - .../TrigT1CaloUtils/CrateEnergy.h | 7 +- .../TrigT1CaloUtils/ICoordinate.h | 4 - .../TrigT1CaloUtils/JEMJetAlgorithm.h | 4 - .../TrigT1CaloUtils/JetAlgorithm.h | 4 - .../TrigT1CaloUtils/JetElementKey.h | 4 - .../TrigT1CaloUtils/JetElementKeyBase.h | 4 - .../TrigT1CaloUtils/JetEnergyModuleKey.h | 4 - .../TrigT1CaloUtils/JetInputKey.h | 4 - .../TrigT1CaloUtils/KeyUtilities.h | 4 - .../TrigT1CaloUtils/L1TopoDataMaker.h | 4 - .../TrigT1CaloUtils/ModuleEnergy.h | 4 - .../TrigT1CaloUtils/TrigT1CaloUtils/Parity.h | 4 - .../TrigT1CaloUtils/QuadLinear.h | 4 - .../TrigT1CaloUtils/SystemEnergy.h | 4 - .../TrigT1CaloUtils/TriggerTowerKey.h | 4 - .../TrigT1CaloUtils/src/CPAlgorithm.cxx | 4 - .../TrigT1CaloUtils/src/CPMTobAlgorithm.cxx | 4 - .../src/ClusterProcessorModuleKey.cxx | 4 - .../TrigT1CaloUtils/src/CoordToHardware.cxx | 4 - .../TrigT1CaloUtils/src/CrateEnergy.cxx | 67 ++- .../src/InternalTriggerTower.cxx | 4 - .../TrigT1CaloUtils/src/JEMJetAlgorithm.cxx | 4 - .../TrigT1CaloUtils/src/JetAlgorithm.cxx | 4 - .../TrigT1CaloUtils/src/JetElementKey.cxx | 4 - .../TrigT1CaloUtils/src/JetElementKeyBase.cxx | 4 - .../src/JetEnergyModuleKey.cxx | 4 - .../TrigT1CaloUtils/src/JetInputKey.cxx | 4 - .../TrigT1CaloUtils/src/KeyUtilities.cxx | 4 - .../TrigT1CaloUtils/src/L1TopoDataMaker.cxx | 2 +- .../TrigT1CaloUtils/src/ModuleEnergy.cxx | 4 - Trigger/TrigT1/TrigT1CaloUtils/src/Parity.cxx | 4 - .../TrigT1/TrigT1CaloUtils/src/QuadLinear.cxx | 4 - .../TrigT1CaloUtils/src/SystemEnergy.cxx | 402 ++++++++++-------- .../TrigT1CaloUtils/src/TriggerTowerKey.cxx | 4 - 39 files changed, 259 insertions(+), 359 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h index 0d0a0a27261e..3c278b02840d 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h @@ -8,10 +8,6 @@ email : e.moyse@qmul.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPAlgorithm.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPAlgorithm.h index 68be2af72fd7..fcc1d6ce7b6f 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPAlgorithm.h @@ -9,10 +9,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef CPALGORITHM_H #define CPALGORITHM_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPMTobAlgorithm.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPMTobAlgorithm.h index 8724f92552e9..544d658c08e5 100644 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPMTobAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CPMTobAlgorithm.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef CPMTobAlgorithm_H #define CPMTobAlgorithm_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ClusterProcessorModuleKey.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ClusterProcessorModuleKey.h index c9dd0d9f97a0..918a7ac6492a 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ClusterProcessorModuleKey.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ClusterProcessorModuleKey.h @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef ClusterProcessorModuleKey_H #define ClusterProcessorModuleKey_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CoordToHardware.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CoordToHardware.h index df577af88aaa..6b20cda2a88e 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CoordToHardware.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CoordToHardware.h @@ -8,10 +8,6 @@ email : moyse@ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef COORDTOHARDWARE_H #define COORDTOHARDWARE_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h index 8929c88694ae..1e5f80ef5149 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/CrateEnergy.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ @@ -67,8 +63,7 @@ private: bool m_debug; static const unsigned int m_sumBitsTC=15; static const unsigned int m_sumBits=14; - static const unsigned int m_jemEtSaturation=4032; - + static const unsigned int m_jemEtSaturation= 0x3fff; // was 4032 private: unsigned int encodeTC(int input) const; int decodeTC(unsigned int input) const; diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ICoordinate.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ICoordinate.h index eb40a8f7375a..4e1ac778ca76 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ICoordinate.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ICoordinate.h @@ -8,10 +8,6 @@ email : e.moyse@qmul.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JEMJetAlgorithm.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JEMJetAlgorithm.h index b07c840b2423..f7759254fff1 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JEMJetAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JEMJetAlgorithm.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JETALGORITHM_H #define JETALGORITHM_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetAlgorithm.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetAlgorithm.h index 3fef9fc3c091..0811eecc0381 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetAlgorithm.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetAlgorithm.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JETALGORITHM_H #define JETALGORITHM_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKey.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKey.h index 5397d38e0622..85e0b6c69e2e 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKey.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKey.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JetElementKey_H #define JetElementKey_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKeyBase.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKeyBase.h index f390e044b45b..1bf0884ab409 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKeyBase.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetElementKeyBase.h @@ -10,10 +10,6 @@ Converted to base class JetElementKeyBase by Alan Watson, 20/01/06 ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JetElementKeyBase_H #define JetElementKeyBase_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetEnergyModuleKey.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetEnergyModuleKey.h index 89fd2f4291b4..b4a93aa5390b 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetEnergyModuleKey.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetEnergyModuleKey.h @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JETENERGYMODULEKEY_H #define JETENERGYMODULEKEY_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetInputKey.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetInputKey.h index 67a9a84951e1..60957aa2c0b8 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetInputKey.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/JetInputKey.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef JetInputKey_H #define JetInputKey_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/KeyUtilities.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/KeyUtilities.h index cea7f5d90d18..d174d4a5689e 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/KeyUtilities.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/KeyUtilities.h @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef KeyUtilities_H #define KeyUtilities_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/L1TopoDataMaker.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/L1TopoDataMaker.h index 51b11ff760cf..89f9b84d6617 100644 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/L1TopoDataMaker.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/L1TopoDataMaker.h @@ -5,10 +5,6 @@ // L1TopoDataMaker.h, /////////////////////////////////////////////////////////////////// - /*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef L1TOPODATAMAKER_H #define L1TOPODATAMAKER_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ModuleEnergy.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ModuleEnergy.h index 0389606147ed..1ac9715bf2fe 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ModuleEnergy.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ModuleEnergy.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef MODULEENERGY_H #define MODULEENERGY_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/Parity.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/Parity.h index f0168724f9a8..c19c1b97e6e8 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/Parity.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/Parity.h @@ -8,10 +8,6 @@ email : moyse@zanzibar ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef PARITY_H #define PARITY_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/QuadLinear.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/QuadLinear.h index 93e6d9e93273..9258b0c28138 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/QuadLinear.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/QuadLinear.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef QUADLINEAR_H #define QUADLINEAR_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/SystemEnergy.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/SystemEnergy.h index 3e4ed2fc2155..617041eb1f84 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/SystemEnergy.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/SystemEnergy.h @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/TriggerTowerKey.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/TriggerTowerKey.h index afb0b43d7ca9..ee241d33cade 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/TriggerTowerKey.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/TriggerTowerKey.h @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERTOWERKEY_H diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/CPAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/CPAlgorithm.cxx index 9ad110f47f5c..df976804587e 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/CPAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/CPAlgorithm.cxx @@ -9,10 +9,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/CPAlgorithm.h" #include "TrigConfL1Data/L1DataDef.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/CPMTobAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/CPMTobAlgorithm.cxx index 2548d96da8e6..c5ef9d4221b1 100644 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/CPMTobAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/CPMTobAlgorithm.cxx @@ -9,10 +9,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/CPMTobAlgorithm.h" #include "TrigConfL1Data/L1DataDef.h" #include "TrigT1Interfaces/TrigT1CaloDefs.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/ClusterProcessorModuleKey.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/ClusterProcessorModuleKey.cxx index 469ddef72396..8183ff52f1eb 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/ClusterProcessorModuleKey.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/ClusterProcessorModuleKey.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena #include "TrigT1CaloUtils/ClusterProcessorModuleKey.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/CoordToHardware.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/CoordToHardware.cxx index 924b72b23bea..89f57fff3077 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/CoordToHardware.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/CoordToHardware.cxx @@ -8,10 +8,6 @@ email : moyse@ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE #include "TrigT1CaloUtils/CoordToHardware.h" #else diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx index 9bc9078ca8fb..767d54d387ca 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/CrateEnergy.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/CrateEnergy.h" @@ -63,27 +59,28 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<ModuleEnergy>* JEM } // Loop over JEMs /** Check for overflows then truncate quadrant sums*/ - unsigned int mask = (1<<m_sumBits) - 1; - for (int quad = 0; quad < 2; quad++) { - if (eT[quad] > mask) m_overflowT = 1; - eT[quad] = eT[quad]&mask ; - - if (eX[quad] > mask) m_overflowX = 1; - eX[quad] = eX[quad]&mask ; - - if (eY[quad] > mask) m_overflowY = 1; - eY[quad] = eY[quad]&mask ; - } + unsigned int mask = (1 << m_sumBits) - 1; /** Form crate sums */ /** For total ET we must check for further overflows */ m_crateEt = eT[0] + eT[1]; - if (m_crateEt > mask) m_overflowT = 1; - m_crateEt = m_crateEt&mask ; + if (m_crateEt >= mask){ + m_overflowT = 1; + m_crateEt = mask; + } - /** No further overflow can occur during Ex, Ey summing (subtraction) */ - m_crateEx = eX[0] - eX[1]; - m_crateEy = eY[0] - eY[1]; + + if (!m_overflowX){ + m_crateEx = eX[0] - eX[1]; + } else{ + m_crateEx = -(mask + 1); + } + if (!m_overflowY){ + m_crateEy = eY[0] - eY[1]; + }else{ + m_crateEy = -(mask + 1); + } + if (m_debug) { std::cout << "CrateEnergy: crate " << m_crate << " results " << std::endl @@ -143,26 +140,26 @@ CrateEnergy::CrateEnergy(unsigned int crate, const DataVector<EnergyCMXData>* JE /** Check for overflows then truncate quadrant sums*/ unsigned int mask = (1<<m_sumBits) - 1; - for (int quad = 0; quad < 2; quad++) { - if (eT[quad] > mask) m_overflowT = 1; - eT[quad] = eT[quad]&mask ; - - if (eX[quad] > mask) m_overflowX = 1; - eX[quad] = eX[quad]&mask ; - - if (eY[quad] > mask) m_overflowY = 1; - eY[quad] = eY[quad]&mask ; - } + /** Form crate sums */ /** For total ET we must check for further overflows */ m_crateEt = eT[0] + eT[1]; - if (m_crateEt > mask) m_overflowT = 1; - m_crateEt = m_crateEt&mask ; + if (m_crateEt >= mask){ + m_overflowT = 1; + m_crateEt = mask; + } - /** No further overflow can occur during Ex, Ey summing (subtraction) */ - m_crateEx = eX[0] - eX[1]; - m_crateEy = eY[0] - eY[1]; + if (!m_overflowX){ + m_crateEx = eX[0] - eX[1]; + } else{ + m_crateEx = -(mask + 1); + } + if (!m_overflowY){ + m_crateEy = eY[0] - eY[1]; + }else{ + m_crateEy = -(mask + 1); + } if (m_debug) { std::cout << "CrateEnergy: crate " << m_crate << " results " << std::endl diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/InternalTriggerTower.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/InternalTriggerTower.cxx index 72359afe6f9a..df697d047faa 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/InternalTriggerTower.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/InternalTriggerTower.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/InternalTriggerTower.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JEMJetAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JEMJetAlgorithm.cxx index abdf133a9d38..312efe6141ce 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JEMJetAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JEMJetAlgorithm.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/JEMJetAlgorithm.h" #include "TrigConfL1Data/L1DataDef.h" #include "TrigT1Interfaces/TrigT1CaloDefs.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JetAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JetAlgorithm.cxx index 438f338f4615..e5340e5a1f3e 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JetAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JetAlgorithm.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/JetAlgorithm.h" #include "TrigConfL1Data/L1DataDef.h" #include "TrigConfL1Data/CTPConfig.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKey.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKey.cxx index 72f0902d3212..59642c765d2c 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKey.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKey.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena #include "TrigT1CaloUtils/JetElementKey.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKeyBase.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKeyBase.cxx index 0af624dd2412..e4cccf02e674 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKeyBase.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JetElementKeyBase.cxx @@ -10,10 +10,6 @@ Converted to base class JetElementKeyBase by Alan Watson, 20/01/06 ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena #include "TrigT1CaloUtils/JetElementKeyBase.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JetEnergyModuleKey.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JetEnergyModuleKey.cxx index e5af5cb0538a..195a4d8b3e83 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JetEnergyModuleKey.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JetEnergyModuleKey.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena #include "TrigT1Interfaces/TrigT1CaloDefs.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/JetInputKey.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/JetInputKey.cxx index e2383f28956f..43cb32053ba7 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/JetInputKey.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/JetInputKey.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena #include "TrigT1CaloUtils/JetInputKey.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/KeyUtilities.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/KeyUtilities.cxx index 91a8ce256849..e427f08d2c92 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/KeyUtilities.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/KeyUtilities.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/L1TopoDataMaker.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/L1TopoDataMaker.cxx index cf10e2b47077..c1f0e99f3475 100644 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/L1TopoDataMaker.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/L1TopoDataMaker.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// -// L1TopoDataMaker.cxx, +// L1TopoDataMaker.cxx, /////////////////////////////////////////////////////////////////// #include "TrigT1CaloUtils/L1TopoDataMaker.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/ModuleEnergy.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/ModuleEnergy.cxx index 0ed5b9752812..952625d74e76 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/ModuleEnergy.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/ModuleEnergy.cxx @@ -9,10 +9,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/ModuleEnergy.h" #include "TrigT1CaloUtils/QuadLinear.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/Parity.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/Parity.cxx index ec9fbb50ee16..b473da1aa215 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/Parity.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/Parity.cxx @@ -8,10 +8,6 @@ email : moyse@zanzibar ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/Parity.h" diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/QuadLinear.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/QuadLinear.cxx index 424671f82525..3a7322f9db94 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/QuadLinear.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/QuadLinear.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/QuadLinear.h" namespace LVL1 { diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/SystemEnergy.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/SystemEnergy.cxx index 59164952a9d6..c056897e459f 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/SystemEnergy.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/SystemEnergy.cxx @@ -8,10 +8,6 @@ email : Alan.Watson@cern.ch ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #include "TrigT1CaloUtils/SystemEnergy.h" #include "TrigT1Interfaces/TrigT1CaloDefs.h" @@ -24,210 +20,241 @@ using namespace TrigConf; -namespace LVL1 { - -SystemEnergy::SystemEnergy(const DataVector<CrateEnergy>* crates, ServiceHandle<TrigConf::ITrigConfigSvc> config): - m_configSvc(config), - m_systemEx(0), - m_systemEy(0), - m_systemEt(0), - m_overflowX(0), - m_overflowY(0), - m_overflowT(0), - m_restricted(0), - m_etMissHits(0), - m_etSumHits(0), - m_metSigHits(0), - m_debug(false) - { +namespace LVL1 +{ + +SystemEnergy::SystemEnergy(const DataVector<CrateEnergy> *crates, ServiceHandle<TrigConf::ITrigConfigSvc> config) : m_configSvc(config), + m_systemEx(0), + m_systemEy(0), + m_systemEt(0), + m_overflowX(0), + m_overflowY(0), + m_overflowT(0), + m_restricted(0), + m_etMissHits(0), + m_etSumHits(0), + m_metSigHits(0), + m_debug(false) +{ + + int xyMax = 1 << (m_sumBits - 1); /** Get Ex, Ey, ET sums from crates and form global sums <br> Propagate overflows and test for new ones <br> */ DataVector<CrateEnergy>::const_iterator it = crates->begin(); - for ( ; it != crates->end(); it++) { - if ((*it)->crate() == 0) { + for (; it != crates->end(); it++) + { + if ((*it)->crate() == 0) + { m_systemEx += (*it)->ex(); m_systemEy += (*it)->ey(); m_systemEt += (*it)->et(); } - else if ((*it)->crate() == 1) { + else if ((*it)->crate() == 1) + { m_systemEx -= (*it)->ex(); m_systemEy += (*it)->ey(); m_systemEt += (*it)->et(); } - m_overflowX = m_overflowX|(*it)->exOverflow(); - m_overflowY = m_overflowY|(*it)->eyOverflow(); - m_overflowT = m_overflowT|(*it)->etOverflow(); - - if ((*it)->restricted()) m_restricted = 1; + + m_overflowX = m_overflowX | ((*it)->ex() == -xyMax); + m_overflowY = m_overflowY | ((*it)->ey() == -xyMax); + m_overflowT = m_overflowT | ((*it)->et() == m_maxEtSumThr); + + if ((*it)->restricted()) + m_restricted = 1; } - + /** Check for EtSum overflow */ - if (m_overflowT != 0) m_systemEt = m_etSumOverflow; - /** Check for overflow of Ex, Ey sums */ - int xyMax = (1<<(m_sumBits-1)) - 1; - if (abs(m_systemEx) > xyMax) { + if (m_overflowT != 0) { + m_systemEt = m_etSumOverflow; + } + + + + if ((abs(m_systemEx) >= xyMax) || m_overflowX) + { m_overflowX = 1; - m_systemEx = (m_systemEx > 0 ? 1 : -1) * ( abs(m_systemEx)&xyMax ); + m_systemEx = -xyMax; } - if (abs(m_systemEy) > xyMax) { + + if ((abs(m_systemEy) >= xyMax) || m_overflowY) + { m_overflowY = 1; - m_systemEy = (m_systemEy > 0 ? 1 : -1) * ( abs(m_systemEy)&xyMax ); + m_systemEy = -xyMax; } - - if (m_debug) { + if (m_debug) + { std::cout << "SystemEnergy results: " << std::endl - << " Et " << m_systemEt << " overflow " << m_overflowT << std::endl - << " Ex " << m_systemEx << " overflow " << m_overflowX << std::endl - << " Ey " << m_systemEy << " overflow " << m_overflowY << std::endl; - + << " Et " << m_systemEt << " overflow " << m_overflowT << std::endl + << " Ex " << m_systemEx << " overflow " << m_overflowX << std::endl + << " Ey " << m_systemEy << " overflow " << m_overflowY << std::endl; } /** Having completed sums, we can now compare with thresholds */ etMissTrigger(); etSumTrigger(); metSigTrigger(); - } SystemEnergy::SystemEnergy(unsigned int et, unsigned int exTC, unsigned int eyTC, unsigned int overflowT, unsigned int overflowX, - unsigned int overflowY, unsigned int restricted, - ServiceHandle<TrigConf::ITrigConfigSvc> config): - m_configSvc(config), - m_systemEx(0), - m_systemEy(0), - m_systemEt(et), - m_overflowX(overflowX), - m_overflowY(overflowY), - m_overflowT(overflowT), - m_restricted(restricted), - m_etMissHits(0), - m_etSumHits(0), - m_metSigHits(0), - m_debug(false) + unsigned int overflowY, unsigned int restricted, + ServiceHandle<TrigConf::ITrigConfigSvc> config) : m_configSvc(config), + m_systemEx(0), + m_systemEy(0), + m_systemEt(et), + m_overflowX(overflowX), + m_overflowY(overflowY), + m_overflowT(overflowT), + m_restricted(restricted), + m_etMissHits(0), + m_etSumHits(0), + m_metSigHits(0), + m_debug(false) { + m_systemEx = decodeTC(exTC); m_systemEy = decodeTC(eyTC); - if (m_debug) { + int xyMax = 1 << (m_sumBits - 1); + + m_overflowT = m_systemEt == m_etSumOverflow; + m_overflowX = m_systemEx == -xyMax; + m_overflowY = m_systemEy == -xyMax; + + if (m_debug) + { std::cout << "SystemEnergy results: " << std::endl - << " Et " << m_systemEt << " overflow " << m_overflowT << std::endl - << " Ex " << m_systemEx << " overflow " << m_overflowX << std::endl - << " Ey " << m_systemEy << " overflow " << m_overflowY << std::endl; - + << " Et " << m_systemEt << " overflow " << m_overflowT << std::endl + << " Ex " << m_systemEx << " overflow " << m_overflowX << std::endl + << " Ey " << m_systemEy << " overflow " << m_overflowY << std::endl; } /** Having completed sums, we can now compare with thresholds */ etMissTrigger(); etSumTrigger(); metSigTrigger(); - } -SystemEnergy::~SystemEnergy(){ +SystemEnergy::~SystemEnergy() +{ } /** return crate Et */ -int SystemEnergy::et() { +int SystemEnergy::et() +{ return m_systemEt; } /** return crate Ex */ -int SystemEnergy::ex() { +int SystemEnergy::ex() +{ return m_systemEx; } /** return crate Ey */ -int SystemEnergy::ey() { +int SystemEnergy::ey() +{ return m_systemEy; } /** return Et overflow bit */ -unsigned int SystemEnergy::etOverflow() { +unsigned int SystemEnergy::etOverflow() +{ return m_overflowT & 0x1; } /** return Ex overflow bit */ -unsigned int SystemEnergy::exOverflow() { +unsigned int SystemEnergy::exOverflow() +{ return m_overflowX & 0x1; } /** return Ey overflow bit */ -unsigned int SystemEnergy::eyOverflow() { +unsigned int SystemEnergy::eyOverflow() +{ return m_overflowY & 0x1; } /** return crate Ex in 15-bit twos-complement format (hardware format) */ -unsigned int SystemEnergy::exTC() { - return encodeTC(m_systemEx) ; +unsigned int SystemEnergy::exTC() +{ + return encodeTC(m_systemEx); } /** return crate Ey in 15-bit twos-complement format (hardware format) */ -unsigned int SystemEnergy::eyTC() { - return encodeTC(m_systemEy) ; +unsigned int SystemEnergy::eyTC() +{ + return encodeTC(m_systemEy); } /** return EtMiss hits */ -unsigned int SystemEnergy::etMissHits() { +unsigned int SystemEnergy::etMissHits() +{ return m_etMissHits; } /** return EtSum hits */ -unsigned int SystemEnergy::etSumHits() { +unsigned int SystemEnergy::etSumHits() +{ return m_etSumHits; } /** return MEtSig hits */ -unsigned int SystemEnergy::metSigHits() { +unsigned int SystemEnergy::metSigHits() +{ return m_metSigHits; } /** return RoI word 0 (Ex value & overflow) */ -unsigned int SystemEnergy::roiWord0() { +unsigned int SystemEnergy::roiWord0() +{ // Start by setting up header - unsigned int word = TrigT1CaloDefs::energyRoIType<<30 ; - word += TrigT1CaloDefs::energyRoI0<<28; + unsigned int word = TrigT1CaloDefs::energyRoIType << 30; + word += TrigT1CaloDefs::energyRoI0 << 28; // set full/restricted eta range flag - word += (m_restricted&1)<<26; + word += (m_restricted & 1) << 26; // add MET Significance hits - word += metSigHits()<<16; + word += metSigHits() << 16; // add Ex overflow bit - word += exOverflow()<<15; + word += exOverflow() << 15; // add Ex value (twos-complement) word += exTC(); return word; } /** return RoI word 1 (Ey value & overflow, EtSum hits) */ -unsigned int SystemEnergy::roiWord1() { +unsigned int SystemEnergy::roiWord1() +{ // Start by setting up header - unsigned int word = TrigT1CaloDefs::energyRoIType<<30 ; - word += TrigT1CaloDefs::energyRoI1<<28; + unsigned int word = TrigT1CaloDefs::energyRoIType << 30; + word += TrigT1CaloDefs::energyRoI1 << 28; // set full/restricted eta range flag - word += (m_restricted&1)<<26; + word += (m_restricted & 1) << 26; // add EtSum hits - word += etSumHits()<<16; + word += etSumHits() << 16; // add Ey overflow bit - word += eyOverflow()<<15; + word += eyOverflow() << 15; // add Ey value (twos-complement) word += eyTC(); return word; } /** return RoI word 2 (Et value & overflow, EtMiss hits) */ -unsigned int SystemEnergy::roiWord2() { +unsigned int SystemEnergy::roiWord2() +{ // Start by setting up header - unsigned int word = TrigT1CaloDefs::energyRoIType<<30 ; - word += TrigT1CaloDefs::energyRoI2<<28; + unsigned int word = TrigT1CaloDefs::energyRoIType << 30; + word += TrigT1CaloDefs::energyRoI2 << 28; // set full/restricted eta range flag - word += (m_restricted&1)<<26; + word += (m_restricted & 1) << 26; // add EtMiss hits - word += etMissHits()<<16; + word += etMissHits() << 16; // add Et overflow bit - word += etOverflow()<<15; + word += etOverflow() << 15; // add Et value (unsigned) word += et(); return word; @@ -236,87 +263,97 @@ unsigned int SystemEnergy::roiWord2() { /** Test Ex, Ey sums against ETmiss thresholds <br> Regrettably not as simple as it sounds if we emulate hardware! <br> See CMM specificiation from L1Calo web pages for details */ -void SystemEnergy::etMissTrigger() { +void SystemEnergy::etMissTrigger() +{ /// Start cleanly m_etMissHits = 0; - + /// Calculate MET^2 - m_etMissQ = m_systemEx*m_systemEx + m_systemEy*m_systemEy; - + m_etMissQ = m_systemEx * m_systemEx + m_systemEy * m_systemEy; + /// Ex or Ey overflow automatically fires all thresholds - if ( (m_overflowX != 0) || (m_overflowY != 0) ) { - m_etMissHits = (1<<TrigT1CaloDefs::numOfMissingEtThresholds) - 1; + if ((m_overflowX != 0) || (m_overflowY != 0)) + { + m_etMissHits = (1 << TrigT1CaloDefs::numOfMissingEtThresholds) - 1; return; } - + /// Otherwise see which thresholds were passed - + // Get thresholds - std::vector<TriggerThreshold*> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); - std::vector<TriggerThreshold*>::const_iterator it; + std::vector<TriggerThreshold *> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); + std::vector<TriggerThreshold *>::const_iterator it; //float etScale = m_configSvc->thresholdConfig()->caloInfo().globalJetScale(); - + // get Threshold values and test L1DataDef def; - for (it = thresholds.begin(); it != thresholds.end(); ++it) { - if ( (*it)->type() == def.xeType() ) { - TriggerThresholdValue* tv = (*it)->triggerThresholdValue(0,0); + for (it = thresholds.begin(); it != thresholds.end(); ++it) + { + if ((*it)->type() == def.xeType()) + { + TriggerThresholdValue *tv = (*it)->triggerThresholdValue(0, 0); int thresholdValue = (*tv).thresholdValueCount(); - uint32_t tvQ = thresholdValue*thresholdValue; + uint32_t tvQ = thresholdValue * thresholdValue; int threshNumber = (*it)->thresholdNumber(); - if (m_restricted == 0 && threshNumber < 8) { - if ( m_etMissQ > tvQ ) - m_etMissHits = m_etMissHits|(1<<threshNumber); + if (m_restricted == 0 && threshNumber < 8) + { + if (m_etMissQ > tvQ) + m_etMissHits = m_etMissHits | (1 << threshNumber); } - else if (m_restricted != 0 && threshNumber >= 8) { - if ( m_etMissQ > tvQ ) - m_etMissHits = m_etMissHits|(1<<(threshNumber-8)); + else if (m_restricted != 0 && threshNumber >= 8) + { + if (m_etMissQ > tvQ) + m_etMissHits = m_etMissHits | (1 << (threshNumber - 8)); } } } return; - } /** Test Et sum against ETsum thresholds */ -void SystemEnergy::etSumTrigger() { +void SystemEnergy::etSumTrigger() +{ // Start cleanly m_etSumHits = 0; // Overflow of any sort automatically fires all thresholds - if (m_overflowT != 0 || m_systemEt > m_maxEtSumThr) { - m_etSumHits = (1<<TrigT1CaloDefs::numOfSumEtThresholds) - 1; + if (m_overflowT != 0 || m_systemEt > m_maxEtSumThr) + { + m_etSumHits = (1 << TrigT1CaloDefs::numOfSumEtThresholds) - 1; return; } - + // Get thresholds - std::vector<TriggerThreshold*> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); - std::vector<TriggerThreshold*>::const_iterator it; + std::vector<TriggerThreshold *> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); + std::vector<TriggerThreshold *>::const_iterator it; //float etScale = m_configSvc->thresholdConfig()->caloInfo().globalJetScale(); - + // get Threshold values and test // Since eta-dependent values are being used to disable TE in regions, must find lowest value for each threshold L1DataDef def; - for (it = thresholds.begin(); it != thresholds.end(); ++it) { - if ( (*it)->type() == def.teType() ) { + for (it = thresholds.begin(); it != thresholds.end(); ++it) + { + if ((*it)->type() == def.teType()) + { int threshNumber = (*it)->thresholdNumber(); int thresholdValue = m_maxEtSumThr; - std::vector<TriggerThresholdValue*> tvv = (*it)->thresholdValueVector(); - for (std::vector<TriggerThresholdValue*>::const_iterator ittvv = tvv.begin(); ittvv != tvv.end(); ++ittvv) - if ((*ittvv)->thresholdValueCount() < thresholdValue) thresholdValue = (*ittvv)->thresholdValueCount(); - - if (m_restricted == 0 && threshNumber < 8) { - if (static_cast<int>(m_systemEt) > thresholdValue ) - m_etSumHits = m_etSumHits|(1<<threshNumber); + std::vector<TriggerThresholdValue *> tvv = (*it)->thresholdValueVector(); + for (std::vector<TriggerThresholdValue *>::const_iterator ittvv = tvv.begin(); ittvv != tvv.end(); ++ittvv) + if ((*ittvv)->thresholdValueCount() < thresholdValue) + thresholdValue = (*ittvv)->thresholdValueCount(); + + if (m_restricted == 0 && threshNumber < 8) + { + if (static_cast<int>(m_systemEt) > thresholdValue) + m_etSumHits = m_etSumHits | (1 << threshNumber); } - else if (m_restricted != 0 && threshNumber >= 8) { - if (static_cast<int>(m_systemEt) > thresholdValue ) - m_etSumHits = m_etSumHits|(1<<(threshNumber-8)); + else if (m_restricted != 0 && threshNumber >= 8) + { + if (static_cast<int>(m_systemEt) > thresholdValue) + m_etSumHits = m_etSumHits | (1 << (threshNumber - 8)); } - - } } @@ -324,13 +361,15 @@ void SystemEnergy::etSumTrigger() { } /** Test MEt Significance against METSig thresholds */ -void SystemEnergy::metSigTrigger() { +void SystemEnergy::metSigTrigger() +{ /// Start cleanly m_metSigHits = 0; - + /// No restricted eta MET significance trigger - if (m_restricted != 0) return; - + if (m_restricted != 0) + return; + /// Obtain parameters from configuration service METSigParam params = m_configSvc->thresholdConfig()->caloInfo().metSigParam(); unsigned int Scale = params.xsSigmaScale(); @@ -341,71 +380,80 @@ void SystemEnergy::metSigTrigger() { int sqrtTEmax = params.teSqrtMax(); /// Start with overflow and range checks - if ( (m_overflowX > 0) || (m_overflowY > 0) || (m_etMissQ > XEmax*XEmax) ) { - m_metSigHits = (1<<TrigT1CaloDefs::numOfMEtSigThresholds) - 1; + if ((m_overflowX > 0) || (m_overflowY > 0) || (m_etMissQ > XEmax * XEmax)) + { + m_metSigHits = (1 << TrigT1CaloDefs::numOfMEtSigThresholds) - 1; return; } - else if ( (m_etMissQ < XEmin*XEmin) || (m_systemEt < sqrtTEmin*sqrtTEmin) || (m_systemEt > sqrtTEmax*sqrtTEmax) ) { + else if ((m_etMissQ < XEmin * XEmin) || (m_systemEt < sqrtTEmin * sqrtTEmin) || (m_systemEt > sqrtTEmax * sqrtTEmax)) + { return; } - + /// Perform threshold tests. Emulate firmware logic for this, so don't explicitly calculate XS /// Prepare factors we wil re-use for each threshold. /// Scale bQ to hardware precision - unsigned long aQ = Scale*Scale; - unsigned int bQ = ceil(Offset*Offset*1.e-6); - unsigned long fourbQTE = 4*bQ*m_systemEt; + unsigned long aQ = Scale * Scale; + unsigned int bQ = ceil(Offset * Offset * 1.e-6); + unsigned long fourbQTE = 4 * bQ * m_systemEt; // Get thresholds - std::vector<TriggerThreshold*> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); - std::vector<TriggerThreshold*>::const_iterator it; - + std::vector<TriggerThreshold *> thresholds = m_configSvc->ctpConfig()->menu().thresholdVector(); + std::vector<TriggerThreshold *>::const_iterator it; + /// get Threshold values and test /// aQTiQ has to be scaled to hardware precision after product formed L1DataDef def; - for (it = thresholds.begin(); it != thresholds.end(); ++it) { - if ( (*it)->type() == def.xsType() ) { - TriggerThresholdValue* tv = (*it)->triggerThresholdValue(0,0); - - int threshNumber = (*it)->thresholdNumber(); - unsigned int Ti = (*tv).thresholdValueCount(); - unsigned long aQTiQ = (0.5 + double(aQ*1.e-8)*Ti*Ti); - - long left = aQTiQ*aQTiQ*fourbQTE; - long right = aQTiQ*(m_systemEt+bQ) - m_etMissQ; - - if ( right < 0 || left > right*right ) m_metSigHits = m_metSigHits|(1<<threshNumber); + for (it = thresholds.begin(); it != thresholds.end(); ++it) + { + if ((*it)->type() == def.xsType()) + { + TriggerThresholdValue *tv = (*it)->triggerThresholdValue(0, 0); + + int threshNumber = (*it)->thresholdNumber(); + unsigned int Ti = (*tv).thresholdValueCount(); + unsigned long aQTiQ = (0.5 + double(aQ * 1.e-8) * Ti * Ti); + + long left = aQTiQ * aQTiQ * fourbQTE; + long right = aQTiQ * (m_systemEt + bQ) - m_etMissQ; + + if (right < 0 || left > right * right) + m_metSigHits = m_metSigHits | (1 << threshNumber); } } - + return; } /** encode int as 15-bit twos-complement format (hardware Ex/Ey format) */ -unsigned int SystemEnergy::encodeTC(int input) { +unsigned int SystemEnergy::encodeTC(int input) +{ unsigned int value; - if (input > 0) { + if (input > 0) + { value = input; } - else { - value = (1<<m_sumBits) + input; + else + { + value = (1 << m_sumBits) + input; } - int mask = (1<<m_sumBits) - 1; - return value&mask ; + int mask = (1 << m_sumBits) - 1; + return value & mask; } /** decode 15-bit twos-complement format (hardware Ex/Ey format) as int */ -int SystemEnergy::decodeTC(unsigned int input) { +int SystemEnergy::decodeTC(unsigned int input) +{ - int mask = (1<<m_sumBits) - 1; - int value = input&mask; + int mask = (1 << m_sumBits) - 1; + int value = input & mask; - if ((value >> (m_sumBits - 1))) { + if ((value >> (m_sumBits - 1))) + { int complement = ~value; - value = -( (complement+1) & mask ); - + value = -((complement + 1) & mask); } return value; diff --git a/Trigger/TrigT1/TrigT1CaloUtils/src/TriggerTowerKey.cxx b/Trigger/TrigT1/TrigT1CaloUtils/src/TriggerTowerKey.cxx index 31ed055932ac..af1af7a5ad2b 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/src/TriggerTowerKey.cxx +++ b/Trigger/TrigT1/TrigT1CaloUtils/src/TriggerTowerKey.cxx @@ -8,10 +8,6 @@ email : e.moyse@qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGGERSPACE // running in Athena -- GitLab From 60899ffb04d40822c90e5d576762051f3dfe8ff0 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:43:41 +0100 Subject: [PATCH 016/192] Updated TrigT1CaloToolInterfaces --- .../TrigT1CaloToolInterfaces/IL1CPCMXTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1CPHitsTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1CPMTools.h | 4 ---- .../TrigT1CaloToolInterfaces/IL1CPMTowerTools.h | 2 +- .../IL1DynamicPedestalProvider.h | 9 ++------- .../TrigT1CaloToolInterfaces/IL1EmTauTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1EnergyCMXTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1EtTools.h | 10 +++++----- .../TrigT1CaloToolInterfaces/IL1JEMJetTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JEPEtSumsTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JEPHitsTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JetCMXTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JetElementTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JetEtTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1JetTools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1RoITools.h | 2 +- .../TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h | 5 ----- 17 files changed, 20 insertions(+), 34 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPCMXTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPCMXTools.h index df6f00b4bf8c..50fb9d48f8c1 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPCMXTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1CPCMXTools.h, (c) ATLAS Detector software +// IL1CPCMXTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1CPCMXTOOLS_H #define ILVL1L1CPCMXTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPHitsTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPHitsTools.h index 4fa3d60d45a1..6cdcb6076ba5 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPHitsTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPHitsTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1CPHitsTools.h, (c) ATLAS Detector software +// IL1CPHitsTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1CPHITSTOOLS_H #define ILVL1L1CPHITSTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h index 0e85114667ed..68ab722f6a0d 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h @@ -5,10 +5,6 @@ // L1CPMTools.h, /////////////////////////////////////////////////////////////////// - /*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef ILVL1L1CPMTOOLS_H #define ILVL1L1CPMTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTowerTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTowerTools.h index 0b47a1a69dcc..c53775f1c86d 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTowerTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTowerTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1CPMTowerTools.h, (c) ATLAS Detector software +// IL1CPMTowerTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1CPMTOWERTOOLS_H #define ILVL1L1CPMTOWERTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1DynamicPedestalProvider.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1DynamicPedestalProvider.h index e7bd4ec339ca..74314ff3ef89 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1DynamicPedestalProvider.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1DynamicPedestalProvider.h @@ -1,15 +1,10 @@ // -*- C++ -*- +/////////////////////////////////////////////////////////////////// /* Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ +// IL1DynamicPedestalProvider.h, /////////////////////////////////////////////////////////////////// -// IL1DynamicPedestalProvider.h, (c) Veit Scharf -/////////////////////////////////////////////////////////////////// - - /*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef TRIGT1CALOTOOLINTERFACES_IL1DYNAMICPEDESTALPROVIDER_H #define TRIGT1CALOTOOLINTERFACES_IL1DYNAMICPEDESTALPROVIDER_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EmTauTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EmTauTools.h index da167ee56c12..b35285c27c50 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EmTauTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EmTauTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1EmTauTools.h, (c) ATLAS Detector software +// IL1EmTauTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1EMTAUTOOLS_H #define ILVL1L1EMTAUTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EnergyCMXTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EnergyCMXTools.h index 51f760aad514..a3f48645fd53 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EnergyCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EnergyCMXTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1EnergyCMXTools.h, (c) ATLAS Detector software +// IL1EnergyCMXTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1ENERGYCMXTOOLS_H #define ILVL1L1ENERGYCMXTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h index ad87a8cf47ab..77af271ee3e8 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1EtTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1EtTools.h, (c) ATLAS Detector software +// IL1EtTools.h /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1ETTOOLS_H #define ILVL1L1ETTOOLS_H @@ -15,7 +15,7 @@ //#include "TrigT1CaloUtils/CrateEnergy.h" //#include "TrigT1CaloUtils/SystemEnergy.h" -namespace LVL1 +namespace LVL1 { class ModuleEnergy; class CrateEnergy; @@ -48,14 +48,14 @@ Interface definition for L1EtTools virtual SystemEnergy systemSums(const DataVector<CrateEnergy>* crates) const = 0; virtual SystemEnergy systemSums(const xAOD::JetElementContainer* jetelements, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; virtual SystemEnergy systemSums(const xAOD::JetElementMap_t* jemap, int slice = -1, uint32_t maskXE = 0xff, uint32_t maskTE = 0xff, bool restricted = false) const = 0; - + }; inline const InterfaceID& LVL1::IL1EtTools::interfaceID() - { + { return IID_IL1EtTools; } } // end of namespace -#endif +#endif diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEMJetTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEMJetTools.h index 5d66a7f22de7..ba2fa7a8eb36 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEMJetTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEMJetTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JEMJetTools.h, (c) ATLAS Detector software +// IL1JEMJetTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JEMJETTOOLS_H #define ILVL1L1JEMJETTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPEtSumsTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPEtSumsTools.h index 3e05c4414a59..fca76ebb6569 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPEtSumsTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPEtSumsTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JEPEtSumsTools.h, (c) ATLAS Detector software +// IL1JEPEtSumsTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JEPETSUMSTOOLS_H #define ILVL1L1JEPETSUMSTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPHitsTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPHitsTools.h index ee51146920d7..7590f84d54f2 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPHitsTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JEPHitsTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JEPHitsTools.h, (c) ATLAS Detector software +// IL1JEPHitsTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JEPHITSTOOLS_H #define ILVL1L1JEPHITSTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetCMXTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetCMXTools.h index 029c745dc9b1..3925e657b139 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetCMXTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JetCMXTools.h, (c) ATLAS Detector software +// IL1JetCMXTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JETCMXTOOLS_H #define ILVL1L1JETCMXTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetElementTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetElementTools.h index 5db88d51b268..4e102a9d823a 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetElementTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetElementTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JetElementTools.h, (c) ATLAS Detector software +// IL1JetElementTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JETELEMENTTOOLS_H #define ILVL1L1JETELEMENTTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetEtTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetEtTools.h index 2edffc68aec1..26f5b6b402a6 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetEtTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetEtTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JetEtTools.h, (c) ATLAS Detector software +// IL1JetEtTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JETETTOOLS_H #define ILVL1L1JETETTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetTools.h index 14d74c4a21d8..5412340ae9ec 100755 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetTools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1JetTools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1JetTools.h, (c) ATLAS Detector software +// IL1JetTools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1JETTOOLS_H #define ILVL1L1JETTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1RoITools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1RoITools.h index e7c31791f082..fbbf164b604b 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1RoITools.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1RoITools.h @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////// -// IL1RoITools.h, (c) ATLAS Detector software +// IL1RoITools.h, /////////////////////////////////////////////////////////////////// #ifndef ILVL1L1ROITOOLS_H #define ILVL1L1ROITOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h index 3e7d05d649cb..e5a3a336232c 100644 --- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h @@ -5,11 +5,6 @@ // L1TriggerTowerTool.h, /////////////////////////////////////////////////////////////////// - /*************************************************************************** - * * - * * - ***************************************************************************/ - #ifndef IL1TRIGGERTOWERTOOL_H #define IL1TRIGGERTOWERTOOL_H -- GitLab From 7a3ce7074ef3626ea55d477a0a9bfd16622d04f2 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:48:52 +0100 Subject: [PATCH 017/192] Updated TrigT1CaloMonitoring --- .../TrigT1CaloMonitoring/CMakeLists.txt | 3 +- ...1CaloMonitoring_forRecExCommission_Run1.py | 2 +- ...1CaloMonitoring_forRecExCommission_Run2.py | 44 +- .../TrigT1CaloMonitoring/src/JEPSimMon.cxx | 45 +- .../TrigT1CaloMonitoring/src/JEPSimMon.h | 20 + .../src/MistimedStreamMon.cxx | 718 ++++++++++++++++++ .../src/MistimedStreamMon.h | 132 ++++ .../TrigT1CaloMonitoring/src/PPMSimBSMon.cxx | 71 +- .../TrigT1CaloMonitoring/src/PPMSimBSMon.h | 17 +- .../TrigT1CaloMonitoring_entries.cxx | 12 +- 10 files changed, 1032 insertions(+), 32 deletions(-) mode change 100644 => 100755 Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py create mode 100755 Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx create mode 100755 Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.h diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/CMakeLists.txt b/Trigger/TrigT1/TrigT1CaloMonitoring/CMakeLists.txt index 0102e0d48da9..453a16b1344b 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/CMakeLists.txt +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/CMakeLists.txt @@ -36,6 +36,7 @@ atlas_depends_on_subdirs( PRIVATE Trigger/TrigT1/TrigT1CaloEvent Trigger/TrigT1/TrigT1CaloMonitoringTools Trigger/TrigT1/TrigT1CaloToolInterfaces + Trigger/TrigT1/TrigT1CaloCondSvc Trigger/TrigT1/TrigT1CaloUtils Trigger/TrigT1/TrigT1Interfaces ) @@ -48,7 +49,7 @@ atlas_add_component( TrigT1CaloMonitoring src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} CaloEvent CaloIdentifier AthenaMonitoringLib AthContainers SGTools StoreGateLib SGtests AthenaPoolUtilities Identifier EventInfo xAODJet xAODTrigL1Calo xAODEgamma GaudiKernel AnalysisTriggerEvent JetInterface TileConditionsLib TileEvent LWHists VxVertex TrigDecisionToolLib TrigConfL1Data TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCalibToolsLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloToolInterfaces TrigT1CaloUtilsLib TrigT1Interfaces ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} CaloEvent CaloIdentifier AthenaMonitoringLib AthContainers SGTools StoreGateLib SGtests AthenaPoolUtilities Identifier EventInfo xAODJet xAODTrigL1Calo xAODEgamma GaudiKernel AnalysisTriggerEvent JetInterface TileConditionsLib TileEvent LWHists VxVertex TrigDecisionToolLib TrigConfL1Data TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCalibToolsLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloToolInterfaces TrigT1CaloUtilsLib TrigT1Interfaces TrigT1CaloCondSvcLib ) # Install files from the package: atlas_install_headers( TrigT1CaloMonitoring ) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run1.py b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run1.py index 749265418431..3d3e33ca0ae7 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run1.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run1.py @@ -321,7 +321,7 @@ if l1caloRawMon: # ) # #from AthenaCommon.AppMgr import ToolSvc # ToolSvc += JetCleaningTool('JetCleaningLooseTool') - # #ToolSvc += JetCleaningTool('JetCleaningMediumTool') + # # ToolSvc += JetCleaningTool('JetCleaningMediumTool') # ToolSvc += JetCleaningTool('JetCleaningTightTool') # L1JetEfficienciesMonTool.JetCleaningLooseTool = ConfiguredJetCleaningTool_Loose("JetCleaningLooseTool") # # L1JetEfficienciesMonTool.JetCleaningMediumTool = ConfiguredJetCleaningTool_Medium("JetCleaningMediumTool") diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py old mode 100644 new mode 100755 index e15e73e900be..a66a45d1cb7c --- a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py @@ -3,7 +3,7 @@ # Standard monitoring jobOptions - runs on Tier0 (Reco_tf.py) or online. # # @authors Johanna Fleckner, Andrea Neusiedl, Peter Faulkner -# + if not 'DQMonFlags' in dir(): print "TrigT1CaloMonitoring_forRecExCommission.py: DQMonFlags not yet imported - I import them now" from AthenaMonitoring.DQMonFlags import DQMonFlags @@ -73,7 +73,7 @@ if l1caloRawMon: #from AthenaServices.AthenaServicesConf import MetaDataSvc #svcMgr += MetaDataSvc("MetaDataSvc") #svcMgr.IOVDbSvc.Folders += ["<dbConnection>sqlite://;schema=;dbname=L1CALO</dbConnection>/TRIGGER/L1Calo/V1/References/FineTimeReferences"] - + from IOVDbSvc.CondDB import conddb conddb.addFolder("TRIGGER","/TRIGGER/L1Calo/V1/References/FineTimeReferences") doFineTime = True @@ -106,7 +106,8 @@ if l1caloRawMon: if athenaCommonFlags.isOnline: from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool theBCTool = BunchCrossingTool() - ToolSvc += theBCTool + # ToolSvc += theBCTool + L1CaloMan.AthenaMonTools += [theBCTool] L1PPrStabilityMonTool.BunchCrossingTool = theBCTool else: @@ -153,6 +154,29 @@ if l1caloRawMon: #ToolSvc += L1PPrMonTool L1CaloMan.AthenaMonTools += [L1PPrMonTool] + + if isData and rec.triggerStream() == "Mistimed": + + #====================================================================== + #=================== Monitoring of the Mistimed Stream ================ + #====================================================================== + from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import LVL1__MistimedStreamMon + + from AthenaCommon.JobProperties import jobproperties + L1MistimedStreamTool = LVL1__MistimedStreamMon( + name="L1MistimedStreamTool", + #OnlineTest = True, + #OutputLevel = DEBUG + ) + # ToolSvc += L1MistimedStreamTool + L1CaloMan.AthenaMonTools += [L1MistimedStreamTool] + + from TrigT1CaloCondSvc.TrigT1CaloCondSvcConf import L1CaloCondSvc + ServiceMgr += L1CaloCondSvc() + from IOVDbSvc.CondDB import conddb + conddb.addFolderWithTag("TRIGGER","/TRIGGER/L1Calo/V1/Conditions/RunParameters","HEAD") + conddb.addFolderWithTag("TRIGGER","/TRIGGER/L1Calo/V2/Configuration/ReadoutConfig","HEAD") + if isData: from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import LVL1__PPMSimBSMon @@ -162,8 +186,12 @@ if l1caloRawMon: #ToolSvc.PPMSimBSMonTool.OutputLevel = DEBUG from TrigT1CaloTools.TrigT1CaloToolsConf import LVL1__L1TriggerTowerTool L1TriggerTowerTool = LVL1__L1TriggerTowerTool("L1TriggerTowerTool") - ToolSvc += L1TriggerTowerTool - #ToolSvc.L1TriggerTowerTool.OutputLevel = DEBUG + # ToolSvc += L1TriggerTowerTool + L1CaloMan.AthenaMonTools += [L1TriggerTowerTool] + from TrigT1CaloCondSvc.TrigT1CaloCondSvcConf import L1CaloCondSvc + ServiceMgr += L1CaloCondSvc() + from IOVDbSvc.CondDB import conddb + conddb.addFolderWithTag("TRIGGER","/TRIGGER/L1Calo/V1/Conditions/RunParameters","HEAD") #--------------------------------- PPM Spare Channels-------------- from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import LVL1__PPrSpareMon @@ -172,7 +200,7 @@ if l1caloRawMon: ADCHitMap_Thresh=40, PathInRootFile="L1Calo/PPM/SpareChannels", ErrorPathInRootFile="L1Calo/PPM/SpareChannels/Errors", - #OutputLevel = DEBUG + #OutputLevel = DEBUG ) #ToolSvc += L1PPrSpareMonTool L1CaloMan.AthenaMonTools += [L1PPrSpareMonTool] @@ -278,8 +306,8 @@ if l1caloRawMon: #================================================================== #===================== Tag & Probe Efficiencies ================== - #================================================================== - + #================================================================== + from TrigT1CaloMonitoring.TrigT1CaloMonitoringConf import LVL1__TagProbeEfficiencyMon TagProbeEfficiencyMonTool = LVL1__TagProbeEfficiencyMon("TagProbeEfficiencyMonTool") #ToolSvc += TagProbeEfficiencyMonTool diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx index 009858d58ff9..e2ef971e520c 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx @@ -910,7 +910,7 @@ StatusCode JEPSimMon::fillHistograms() compare(cmxTobSimMap, ctMap, errorsJEM, errorsCMX); cmxTobSimMap.clear(); - // Sasha: Delate later, will use simulated tobs later since data tobs does not + // Sasha: Delete later, will use simulated tobs later since data tobs does not // contains overflow bits // delete cmxTobSIM; // delete cmxTobSIMAux; @@ -930,17 +930,12 @@ StatusCode JEPSimMon::fillHistograms() } CmxJetHitsMap cmxLocalSimMap; setupMap(cmxLocalSIM, cmxLocalSimMap); - //SASHA compare(cmxLocalSimMap, chMap, errorsCMX, xAOD::CMXJetHits::Sources::LOCAL_MAIN); - // for(auto p: chMap){ - // auto key = p.first; - // auto v = p.second; - // ATH_MSG_INFO("SASHA0 DAT " << *v); - // if (cmxLocalSimMap.find(key) != cmxLocalSimMap.end()){ - // ATH_MSG_INFO("SASHA0 SIM " << *cmxLocalSimMap[key] << std::endl); - // } - // } + + dumpDataAndSim("Compare Local sums simulated from CMX TOBs with Local sums from data", + chMap, cmxLocalSimMap); + cmxLocalSimMap.clear(); delete cmxLocalSIM; delete cmxLocalSIMAux; @@ -1029,6 +1024,10 @@ StatusCode JEPSimMon::fillHistograms() compare(cmxEtLocalSimMap, csMap, errorsCMX, xAOD::CMXEtSums::Sources::LOCAL_STANDARD); + dumpDataAndSim( + "Compare Local sums simulated from CMXEtSums with Local sums from data", + csMap, cmxEtLocalSimMap); + cmxEtLocalSimMap.clear(); delete cmxEtLocalSIM; delete cmxEtLocalSIMAux; @@ -1054,6 +1053,11 @@ StatusCode JEPSimMon::fillHistograms() setupMap(cmxEtTotalSIM, cmxEtTotalSimMap); compare(cmxEtTotalSimMap, csMap, errorsCMX, xAOD::CMXEtSums::Sources::TOTAL_STANDARD); + + dumpDataAndSim( + "Compare Total sums simulated from Remote sums with Total sums from data", + csMap, cmxEtTotalSimMap + ); cmxEtTotalSimMap.clear(); delete cmxEtTotalSIM; @@ -1077,6 +1081,12 @@ StatusCode JEPSimMon::fillHistograms() setupMap(cmxSumEtSIM, cmxSumEtSimMap); compare(cmxSumEtSimMap, csMap, errorsCMX, xAOD::CMXEtSums::Sources::SUM_ET_STANDARD); + + dumpDataAndSim( + "Compare Et Maps (sumEt/missingEt/missingEtSig) simulated from Total sums", + csMap, cmxSumEtSimMap + ); + cmxSumEtSimMap.clear(); delete cmxSumEtSIM; @@ -2538,9 +2548,18 @@ void JEPSimMon::compare(const CmxEtSumsMap &cmxSimMap, cmxEy = cmxD->ey(); if (!etmaps) { - cmxSimEt |= ((cmxS->etError() & 0x1) << 15); - cmxSimEx |= ((cmxS->exError() & 0x1) << 15); - cmxSimEy |= ((cmxS->eyError() & 0x1) << 15); + if (source == xAOD::CMXEtSums::Sources::LOCAL_RESTRICTED || source == xAOD::CMXEtSums::Sources::TOTAL_RESTRICTED) + { + // Take error bits from data! + cmxSimEt |= ((cmxD->etError() & 0x1) << 15); + cmxSimEx |= ((cmxD->exError() & 0x1) << 15); + cmxSimEy |= ((cmxD->eyError() & 0x1) << 15); + } else { + cmxSimEt |= ((cmxS->etError() & 0x1) << 15); + cmxSimEx |= ((cmxS->exError() & 0x1) << 15); + cmxSimEy |= ((cmxS->eyError() & 0x1) << 15); + } + cmxEt |= ((cmxD->etError() & 0x1) << 15); cmxEx |= ((cmxD->exError() & 0x1) << 15); cmxEy |= ((cmxD->eyError() & 0x1) << 15); diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.h index 3abc2b174355..48b71c517369 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.h +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.h @@ -320,6 +320,10 @@ private: /// Load ROD Headers void loadRodHeaders(); + template <typename T> + void dumpDataAndSim(const std::string& msg, const std::map<int, T*>& data, + const std::map<int, T*>& sim); + /// CMX-Jet simulation tool ToolHandle<LVL1::IL1JetCMXTools> m_jetCmxTool; /// JEM RoI simulation tool @@ -462,6 +466,22 @@ private: }; +template <typename T> inline +void JEPSimMon::dumpDataAndSim(const std::string& msg, const std::map<int, T*>& data, + const std::map<int, T*>& sim) { + if (!m_debug) return; + + ATH_MSG_DEBUG(msg); + for (const auto& p : data) { + ATH_MSG_DEBUG(" DAT " << *p.second); + auto itSim = sim.find(p.first); + if (itSim != sim.end()) { + ATH_MSG_DEBUG(" SIM " << *itSim->second << std::endl); + } + } + ATH_MSG_DEBUG("End Compare"); + } + } // end namespace #endif diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx new file mode 100755 index 000000000000..f6c561bb9fe8 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx @@ -0,0 +1,718 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include <cmath> +#include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/StatusCode.h" +#include "SGTools/StlVectorClids.h" + +#include "LWHists/LWHist.h" +#include "LWHists/TH1F_LW.h" + +#include "AthenaMonitoring/AthenaMonManager.h" + +#include "EventInfo/EventInfo.h" +#include "EventInfo/EventID.h" + +#include "TrigT1Interfaces/TrigT1CaloDefs.h" + +#include "TrigDecisionTool/TrigDecisionTool.h" + +#include "TrigT1CaloMonitoringTools/ITrigT1CaloMonErrorTool.h" +#include "TrigT1CaloMonitoringTools/TrigT1CaloLWHistogramTool.h" +#include "TrigT1CaloToolInterfaces/IL1TriggerTowerTool.h" +#include "TrigT1CaloCalibConditions/L1CaloCoolChannelId.h" + +#include "TrigT1CaloEvent/TriggerTowerCollection.h" +#include "TrigT1CaloEvent/TriggerTower_ClassDEF.h" +#include "TrigT1CaloUtils/DataError.h" + +//for the 80MHz functionality (db access) +#include "TrigT1CaloCondSvc/L1CaloCondSvc.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h" +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfig.h" +#include "TrigT1CaloCalibConditions/L1CaloReadoutConfigContainer.h" + +#include "xAODTrigL1Calo/TriggerTowerContainer.h" +#include "xAODTrigL1Calo/TriggerTowerAuxContainer.h" +#include "xAODTrigL1Calo/CPMTowerContainer.h" +#include "xAODTrigL1Calo/JetElementContainer.h" + +#include "AthenaPoolUtilities/AthenaAttributeList.h" + + +#include "MistimedStreamMon.h" +// ============================================================================ +namespace LVL1 { +// ============================================================================ +MistimedStreamMon::MistimedStreamMon(const std::string & type, const std::string & name, const IInterface* parent): ManagedMonitorToolBase ( type, name, parent ), + m_errorTool("LVL1::TrigT1CaloMonErrorTool/TrigT1CaloMonErrorTool"), + m_histTool("LVL1::TrigT1CaloLWHistogramTool/TrigT1CaloLWHistogramTool"), m_ttTool("LVL1::L1TriggerTowerTool/L1TriggerTowerTool"), // can provide coolID, prob. not needed + m_trigDec("Trig::TrigDecisionTool/TrigDecisionTool"), + m_histBooked(false), + m_h_1d_cutFlow_mistimedStreamAna(0), + m_h_1d_selectedEvents_mistimedStreamAna(0), + m_l1CondSvc("L1CaloCondSvc",name), + m_maxHistos(1), + m_curHistos(0), + m_thistSvc("THistSvc", name) +{ + declareProperty("PathInRootFile", m_PathInRootFile = "L1Calo/MistimedStream"); + declareProperty("TrigDecisionTool", m_trigDec, "The tool to access TrigDecision" ); + declareProperty("BS_xAODTriggerTowerContainer", m_xAODTriggerTowerContainerName = LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation); + declareProperty("maxHistos",m_maxHistos = 1); +} + +MistimedStreamMon::~MistimedStreamMon() +{ +} + +#ifndef PACKAGE_VERSION +#define PACKAGE_VERSION "unknown" +#endif + +/*---------------------------------------------------------*/ +StatusCode MistimedStreamMon::initialize() +/*---------------------------------------------------------*/ +{ + msg(MSG::INFO) << "Initializing " << name() << " - package version " + << PACKAGE_VERSION << endmsg; + + CHECK(ManagedMonitorToolBase::initialize()); + CHECK(m_errorTool.retrieve()); + CHECK(m_histTool.retrieve()); + CHECK(m_ttTool.retrieve()); + CHECK(m_trigDec.retrieve()); + CHECK(m_l1CondSvc.retrieve()); + + return StatusCode::SUCCESS; + +} + +/*---------------------------------------------------------*/ + +StatusCode MistimedStreamMon::finalize() +{ + //delete things here + return StatusCode::SUCCESS; +} + +bool MistimedStreamMon::pulseQuality(std::vector<uint16_t> ttPulse, int peakSlice) { + + bool goodPulse = true; + + int a = ttPulse[peakSlice-1]; + int b = ttPulse[peakSlice]; + int c = ttPulse[peakSlice+1]; + double tim = (0.5*a-0.5*c)/(a+c-2*b); + double wid = (a+c-64.0)/(b-32.0); + if ( tim < 0.0 ) goodPulse = false; + if ( tim > 0.3 ) goodPulse = false; + if ( wid < 1.0 ) goodPulse = false; + if ( wid > 1.6 ) goodPulse = false; +// std::cout<<"Pulse qual= "<< goodPulse<<" tim = "<<tim<<" wid = "<<wid <<std::endl; +// std::cout<<"a = "<< a <<" b = "<<b<<" c = "<<c <<std::endl; + return goodPulse; +} + +/*---------------------------------------------------------*/ +StatusCode MistimedStreamMon:: retrieveConditions() +/*---------------------------------------------------------*/ +{ + ATH_MSG_VERBOSE("PPMSimBSMon::retrieveConditions"); + if (m_l1CondSvc) { + ATH_MSG_VERBOSE( "Retrieving Run Parameters Containers" ); + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_runParametersContainer),"MistimedStreamMon"); + if (std::cbegin(*m_runParametersContainer) == std::cend(*m_runParametersContainer)) { + ATH_MSG_ERROR("Empty L1CaloRunParametersContainer"); + return StatusCode::FAILURE; + } + ATH_MSG_VERBOSE( "Retrieving Readount Configuration Containers" ); + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_readoutConfigContainer),"MistimedStreamMon"); + if (std::cbegin(*m_readoutConfigContainer) == std::cend(*m_readoutConfigContainer)) { + ATH_MSG_ERROR("Empty L1CaloReadoutConfigContainer"); + return StatusCode::FAILURE; + } + + }else{ + ATH_MSG_ERROR("L1CondSvc not present!"); + } + + return StatusCode::SUCCESS; +} + +/*---------------------------------------------------------*/ +void MistimedStreamMon::fillEtaPhiMap(TH2F* hist, double eta, double phi, double weight, bool shrinkEtaBins) +/*---------------------------------------------------------*/ +{ + double phiMod = phi * (32./M_PI); + double etaMod = eta; + const double absEta = fabs(eta); + if (absEta > 3.2) { + if (shrinkEtaBins) { + etaMod = 2.9 + 0.1*(absEta-3.2)/0.425; + if (eta < 0.) etaMod = -etaMod; + } + // Fill four bins in phi + phiMod = floor(phiMod/4)*4. + 2.; + hist->Fill(etaMod, phiMod + 1.5, weight); + hist->Fill(etaMod, phiMod + 0.5, weight); + hist->Fill(etaMod, phiMod - 0.5, weight); + hist->Fill(etaMod, phiMod - 1.5, weight); + } else if (absEta > 2.5) { + if (shrinkEtaBins) { + etaMod = (absEta > 3.1) ? 2.85 : 2.5 + (absEta-2.5)/2.; + if (eta < 0.) etaMod = -etaMod; + } + // Fill two bins in phi + phiMod = floor(phiMod/2)*2. + 1.; + hist->Fill(etaMod, phiMod + 0.5, weight); + hist->Fill(etaMod, phiMod - 0.5, weight); + } else hist->Fill(eta, phiMod, weight); +} + + +/*---------------------------------------------------------*/ +TH2F* MistimedStreamMon::createEtaPhiMap(std::string name, std::string title, bool isHADLayer, bool shrinkEtaBins) +/*---------------------------------------------------------*/ +{ + // construct ppmEtaPhi Histo (modified from TrigT1CaloLWHistogramTool, but without the booking + TH2F* hist = 0; + TAxis* axis = 0; + if (shrinkEtaBins) { + hist = new TH2F(name.c_str(), title.c_str(), 66, -3.3, 3.3, 64, 0., 64.); + hist->SetOption("colz"); + axis = hist->GetXaxis(); + for (int ch = -25; ch < 25; ch+=4) { + int chan = ch; + if (chan >= -1) ++chan; + const double eta = (chan/10.)+0.05; + std::ostringstream cnum; + cnum << chan << "/" << std::setiosflags(std::ios::fixed | std::ios::showpoint) << std::setprecision(2) << eta; + axis->SetBinLabel(chan+34, cnum.str().c_str()); + } + axis->SetBinLabel(1, "-49/-4.41"); + axis->SetBinLabel(5, "-32/-3.15"); + axis->SetBinLabel(62, "31/3.15"); + axis->SetBinLabel(66, "44/4.41"); + } else { + const int nxbins = 66; + const double xbins[nxbins+1] = {-4.9,-4.475,-4.050,-3.625,-3.2,-3.1,-2.9, + -2.7,-2.5,-2.4,-2.3,-2.2,-2.1,-2.0,-1.9, + -1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1, + -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3, + -0.2,-0.1,0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7, + 0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7, + 1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.7,2.9, + 3.1,3.2,3.625,4.050,4.475,4.9}; + hist = new TH2F(name.c_str(), title.c_str(), nxbins, xbins, 64, 0., 64.); + hist->SetOption("colz"); + hist->SetXTitle("eta"); + } + + axis = hist->GetYaxis(); + const double phiBin = M_PI/32.; + const double halfPhiBin = M_PI/64.; + for (int chan = 0; chan < 64; chan += 4 ) { + const double rad = chan*phiBin + halfPhiBin; + std::ostringstream lab; + lab << chan << "/" << std::setiosflags(std::ios::fixed | std::ios::showpoint) << std::setprecision(2) << rad; + axis->SetBinLabel(chan+1, lab.str().c_str()); + } + if (shrinkEtaBins) axis->SetBinLabel(64, "etaVphi"); + else axis->SetBinLabel(64, "phi"); + + // now relabel the outer bins for the HAD Layer + if (shrinkEtaBins && isHADLayer) { + axis = hist->GetXaxis(); + axis->SetBinLabel(1, "-49/-4.17"); + axis->SetBinLabel(66, "44/4.19"); + } + + return hist; +} + +/*---------------------------------------------------------*/ +StatusCode MistimedStreamMon::bookHistogramsRecurrent() // based on bookHistogramsRecurrent from PPrMon +/*---------------------------------------------------------*/ +{ + if (msgLvl(MSG::DEBUG)) + msg(MSG::DEBUG) << "in MistimedStreamMon::bookHistograms" << endmsg; + + MgmtAttr_t attr = ATTRIB_UNMANAGED; + + if (newRunFlag()) { + + // create MonGroup with the folder to store histos + MonGroup TT_MistimedMon(this, m_PathInRootFile, run, attr); + m_histTool->setMonGroup(&TT_MistimedMon); + + // overview histograms (only one per run) + m_h_1d_selectedEvents_mistimedStreamAna = + m_histTool->book1F("1d_selectedEvents_mistimedStreamAna", + "Selected events per lumi block by the MistimedStream analysis", + 9999, 0, 9999); // this plot will "only" cover 9999 lumi blocks + m_h_1d_cutFlow_mistimedStreamAna = + m_histTool->book1F("1d_cutFlow_mistimedStreamAna", + "Total events selected by the MistimedStream analysis for this run", + 10, 0, 10); // overall cutflow plot + + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 1, "All" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 2, "unsuitable readout" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 3, "HLT_mistimemonj400" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 4, "L1_J100" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 5, "<= 4 bad peak TT" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 6, "<= 4 bad central TT" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 7, "<= 4 bad late TT" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 8, ">= 2 late TT" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel( 9, "<= 3 in-time" ); + m_h_1d_cutFlow_mistimedStreamAna->GetXaxis()->SetBinLabel(10, ">= 1 significant TT in EM layer" ); + + m_histTool->unsetMonGroup(); + if (newRunFlag()) + m_histBooked = true; + } + + return StatusCode::SUCCESS; +} + + +StatusCode MistimedStreamMon::fillHistograms() +{ + const bool debug = msgLvl(MSG::DEBUG); + if (debug) + msg(MSG::DEBUG) << "in fillHistograms()" << endmsg; + + if (!m_histBooked) { + if (debug) + msg(MSG::DEBUG) << "Histogram(s) not booked" << endmsg; + return StatusCode::SUCCESS; + } + + // Skip events believed to be corrupt + if (m_errorTool->corrupt()) { + if (debug) + msg(MSG::DEBUG) << "Skipping corrupt event" << endmsg; + return StatusCode::SUCCESS; + } + + // Retrieve TriggerTowers from SG + const xAOD::TriggerTowerContainer_v2 *TriggerTowerTES = 0; + StatusCode sc = + evtStore()->retrieve(TriggerTowerTES, m_xAODTriggerTowerContainerName); + if (sc.isFailure() || !TriggerTowerTES) { + if (debug) + msg(MSG::DEBUG) << "No TriggerTower found in TES at " + << m_xAODTriggerTowerContainerName << endmsg; + return StatusCode::SUCCESS; + } + + //Create container for the decorated TT, as well as auxiliary container holding the actual properties + xAOD::TriggerTowerContainer* ttContainer = new xAOD::TriggerTowerContainer; + xAOD::TriggerTowerAuxContainer* ttAuxContainer = new xAOD::TriggerTowerAuxContainer; + // To tell the TT container in which auxiliary container it should write its member variables + ttContainer->setStore(ttAuxContainer); //gives it a new associated aux container + //Object holding the decoration, to optimize access speed + xAOD::TriggerTower::Decorator<float> myDecoration("pulseClassification"); + + //Get CPM Towers for LUT_CP + const xAOD::CPMTowerContainer* cpmTowCon = 0; + CHECK(evtStore()->retrieve(cpmTowCon,"CPMTowers")); + + //Get Jet Elements for LUT-JEP + const xAOD::JetElementContainer* jetEleCon = 0; + CHECK(evtStore()->retrieve(jetEleCon,"JetElements")); + + //Get readout info from data base + if(this->retrieveConditions().isFailure()) { + REPORT_MESSAGE(MSG::WARNING); + return StatusCode::FAILURE; + } + + m_readoutConfigContainer->readoutConfig(6); + + unsigned int readoutConfigID = std::cbegin(*m_runParametersContainer)->readoutConfigID(); + unsigned int channelID = 0; + unsigned int numFadcSlices = 0; + unsigned int l1aFadcSlice = 0; + unsigned int readout80ModePpm = 0; + //the readout config ID tells you, which readoutConfig is loaded. now you can retrieve the l1aFadcSlice from this DB entry + for(const auto& it: *m_readoutConfigContainer){ + if (it.channelId() == readoutConfigID){ + channelID = it.channelId(); + numFadcSlices = it.numFadcSlices(); + l1aFadcSlice = it.l1aFadcSlice(); + readout80ModePpm = it.readout80ModePpm(); + } + } + + if(msgLvl(MSG::DEBUG)){ + ATH_MSG_VERBOSE("ReadoutConfigID = " << readoutConfigID ); + ATH_MSG_VERBOSE("ChannelID = " << channelID ); + ATH_MSG_VERBOSE("numFadcSlices = " << numFadcSlices ); + ATH_MSG_VERBOSE("l1aFadcSlice = " << l1aFadcSlice ); + ATH_MSG_VERBOSE("readout80ModePpm = " << readout80ModePpm ); + } + +// std::cout<<"readoutConfigID = "<<readoutConfigID<<std::endl; +// std::cout<<"ChannelID = "<<channelID<<std::endl; +// std::cout<<"numFadcSlices = "<<numFadcSlices<<std::endl; +// std::cout<<"l1aFadcSlice = "<<l1aFadcSlice<<std::endl; +// std::cout<<"readout80ModePpm = "<<readout80ModePpm<<std::endl; + + // Retrieve EventInfo from SG and save lumi block number, global event number and run number + unsigned int lumiNo = 0; + unsigned int currentRunNo = 0; + unsigned int currentEventNo = 0; + const EventInfo *evInfo = 0; + sc = evtStore()->retrieve(evInfo); + if (sc.isFailure() || !evInfo) { + if (debug) + msg(MSG::DEBUG) << "No EventInfo found" << endmsg; + } else { + const EventID *evID = evInfo->event_ID(); + if (evID) { + lumiNo = evID->lumi_block(); + currentRunNo = evID->run_number(); + currentEventNo = evID->event_number(); + } + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(0.5); + + //for the algorithm to run, we need the 2 adc slices before and after the l1a-slice + //add some readout compatibility checks of the algo here + if(readout80ModePpm){ + if(numFadcSlices < 9){ + msg(MSG::DEBUG) << "Number of ADC slices < 9 for 80 MHz readout, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + if(l1aFadcSlice < 4){ + msg(MSG::DEBUG) << "L1a readout pointer < 4 for 80 MHz readout, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + if(numFadcSlices - l1aFadcSlice < 4){ + msg(MSG::DEBUG) << "L1a readout pointer is at "<< l1aFadcSlice << " with "<< numFadcSlices << "slices at 80 MHz readout mode, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + }else{ + if(numFadcSlices < 5){ + msg(MSG::DEBUG) << "Number of ADC slices < 5 for 40 MHz readout, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + if(l1aFadcSlice < 2){ + msg(MSG::DEBUG) << "L1a readout pointer < 2 for 40 MHz readout, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + if(numFadcSlices - l1aFadcSlice < 2){ + msg(MSG::DEBUG) << "L1a readout pointer is at "<< l1aFadcSlice << " with "<< numFadcSlices << "slices at 40 MHz readout mode, algorithm cannot run, aborting..." << endmsg; + return StatusCode::SUCCESS; + } + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(1.5); + + //Select events that fired HLT_mistimedmonj400 + if(! (m_trigDec->isPassed("HLT_mistimemonj400",TrigDefs::requireDecision))){ + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(2.5); + + //Only select events which passed the L1_J100 + if(! (m_trigDec->isPassed("L1_J100"))){ + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(3.5); + + // now classify the tower signals by looking at their FADC counts, if it exceeds 70 + int satCounter = 0; // saturated TT + int badCounter = 0; // category 2 really bad + int bad2Counter = 0; // category 4 bad peak 2 + int bad3Counter = 0; // category 6 bad peak 3 + int good3Counter = 0; // category 5 good peak 3 + int good2Counter = 0; // category 5 good peak 3 + int emActivityCounter = 0; //count number of TT in EM layer with ADC > 70 + + // ===================================================================== + // ================= Container: TriggerTower =========================== + // ===================================================================== + + xAOD::TriggerTowerContainer_v2::const_iterator TriggerTowerIterator = + TriggerTowerTES->begin(); + xAOD::TriggerTowerContainer_v2::const_iterator TriggerTowerIteratorEnd = + TriggerTowerTES->end(); + + for (; TriggerTowerIterator != TriggerTowerIteratorEnd; + ++TriggerTowerIterator) { + auto vecIndexTT = std::distance( TriggerTowerTES->begin(), TriggerTowerIterator ) ; + float ttPulseCategory = 0; + std::vector<uint16_t> ttADC = TriggerTowerTES->at(vecIndexTT)->adc(); + //Check which RunParameters are set in COOL database -> modify acd input accordingly + // need to know: - readout mode (40 or 80MHz) + // - central slice position + // - number of readout slices (== .adc().size()) + + std::vector<uint16_t> readoutCorrectedADC; //this is the standard readout ADC vector: 5 40MHz samples with l1A in the middle + if(!readout80ModePpm){//40 MHz + //just acess the acd vector, as the sanity checks where done above + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-2)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-1)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+1)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+2)); + }else{//80 MHz + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-4)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-2)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+2)); + readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+4)); + } + + // retrieve max ADC value and position, this seems to be buggy in the DAOD + auto maxValIterator = std::max_element(readoutCorrectedADC.begin(), readoutCorrectedADC.end()); + int maxADCval = *maxValIterator; + int adcPeakPositon = std::distance(std::begin(readoutCorrectedADC), maxValIterator); + + if(maxADCval < 70){ + ttPulseCategory = 0.1; + }else if(maxADCval == 1023) { + satCounter++; + ttPulseCategory = 1; + if(!TriggerTowerTES->at(vecIndexTT)->layer()) emActivityCounter++; + }else{ + bool goodQual = pulseQuality(readoutCorrectedADC, adcPeakPositon); + if(!TriggerTowerTES->at(vecIndexTT)->layer()) emActivityCounter++; + //look at any of the five FADC values + if(adcPeakPositon == 2){ // can be class 3 or 4 now + if(goodQual){ + good2Counter++; + ttPulseCategory = 3; + }else{ + bad2Counter++; + ttPulseCategory = 4; + } + }else if(adcPeakPositon == 3){ // can be class 5 or 6 now + if(goodQual){ + good3Counter++; + ttPulseCategory = 5; + }else{ + bad3Counter++; + ttPulseCategory = 6; + } + }else{ + //this is class 2 - really bad + badCounter++; + ttPulseCategory = 2; + } + } + // decorate the TT in order to have to recompute the pulse categorisation + xAOD::TriggerTower* newTT = new xAOD::TriggerTower; //create a new TT object + ttContainer->push_back(newTT); // add the newTT to new output TT container (at the end of it) + *newTT = *TriggerTowerTES->at(vecIndexTT); // copy over all information from TT to newTT + newTT->auxdata<float>("pulseClassification") = ttPulseCategory; //decorate +// myDecoration(*newJet) = 10.0; // same decoration with a Decorator (faster) + } + + if(badCounter > 4){ + //reject events with more than 4 wrongly peaked towers + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(4.5); + + if(bad2Counter > 4){ + //reject events with more than 4 pulses peaking in slice 2 that are badly timed or mis-shapen + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(5.5); + + if(bad3Counter > 4){ + //reject events with more than 4 pulses peaking in slice 3 that are badly timed or mis-shapen + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(6.5); + + if(good3Counter < 2){ + //reject events with less than 2 pulses nicely peaking in slice 3 + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(7.5); + + if(good2Counter > 2){ + //reject events with more than 2 pulses nicely peaking in slice 2 to avoid event being triggered by pileup + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(8.5); + + if(!emActivityCounter){ + //reject events with no activity in the EM layer + return StatusCode::SUCCESS; + } + m_h_1d_cutFlow_mistimedStreamAna->Fill(9.5); + + if(m_curHistos < m_maxHistos){ + + //adding the histos dynamically using THistSvc into an event-specific sub-directory + // Construct a subdirectory name for the histograms: + std::ostringstream fullPathInFile; + fullPathInFile << "/" << m_fileKey << "/" << "run_" << AthenaMonManager::runNumber() << "/" << m_PathInRootFile << "/run_" << std::to_string(currentRunNo) << "_event_" << std::to_string(currentEventNo) << "/"; + + std::string name, title; + name = "em_2d_etaPhi_tt_classification_mistimedStreamAna"; + title = "#eta - #phi Map of TT classification, EM layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *emClass = createEtaPhiMap(name, title); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), emClass)); + + name = "had_2d_etaPhi_tt_classification_mistimedStreamAna"; + title = "#eta - #phi Map of TT classification, HAD layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *hadClass = createEtaPhiMap(name, title, true); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), hadClass)); + + name = "em_2d_etaPhi_tt_pseBits_mistimedStreamAna"; + title = "#eta - #phi Map of TT PSE Bits, EM layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *emPSE = createEtaPhiMap(name, title); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), emPSE)); + + name = "had_2d_etaPhi_tt_pseBits_mistimedStreamAna"; + title = "#eta - #phi Map of TT PSE Bits, HAD layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *hadPSE = createEtaPhiMap(name, title, true); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), hadPSE)); + + // histos for the LUT values. They show a combination of CP (central) and JEP (forward) output + name = "em_2d_etaPhi_tt_lut0_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 0 = BCID-1, EM layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *emLUT0 = createEtaPhiMap(name, title); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), emLUT0)); + + name = "had_2d_etaPhi_tt_lut0_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 0 = BCID-1, HAD layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *hadLUT0 = createEtaPhiMap(name, title, true); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), hadLUT0)); + + name = "em_2d_etaPhi_tt_lut1_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 1 = BCID, EM layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *emLUT1 = createEtaPhiMap(name, title); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), emLUT1)); + + name = "had_2d_etaPhi_tt_lut1_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 1 = BCID, HAD layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *hadLUT1 = createEtaPhiMap(name, title, true); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), hadLUT1)); + + name = "em_2d_etaPhi_tt_lut2_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 2 = BCID+1, EM layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *emLUT2 = createEtaPhiMap(name, title); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), emLUT2)); + + name = "had_2d_etaPhi_tt_lut2_mistimedStreamAna"; + title = "#eta - #phi Map of TT LUT in timeslice 2 = BCID+1, HAD layer: event no. " + std::to_string(currentEventNo) + " in lb. " + std::to_string(lumiNo) + " of run " + std::to_string(currentRunNo); + TH2F *hadLUT2 = createEtaPhiMap(name, title, true); + CHECK(m_thistSvc->regHist(fullPathInFile.str() + name.c_str(), hadLUT2)); + + + // loop over the decorated TTcollection to fill the classification and pse histos + for(auto decoratedIterator = ttContainer->begin() ; decoratedIterator != ttContainer->end() ; ++decoratedIterator ){ + + const int layer = (*decoratedIterator)->layer(); + const double eta = (*decoratedIterator)->eta(); + const double phi = (*decoratedIterator)->phi(); + const float pulseCat = (*decoratedIterator)->auxdata<float>("pulseClassification"); + uint8_t bcidWord = (*decoratedIterator)->bcidVec()[0]; // look at the status bit in the central time slice. Hard coded for now as we do the 5 slice check above + + // Check if TT is in EM or HAD layer: + if (layer == 0) { //========== ELECTROMAGNETIC LAYER ========================= + fillEtaPhiMap(emClass, eta, phi, pulseCat); + if(pulseCat > 0.5) fillEtaPhiMap(emPSE, eta, phi, (unsigned int)bcidWord); + } + else if(layer == 1) { //========== HADRONIC LAYER =============================== + fillEtaPhiMap(hadClass, eta, phi, pulseCat); + if(pulseCat > 0.5) fillEtaPhiMap(hadPSE, eta, phi, (unsigned int)bcidWord); + } + } + + //loop over the cpm tower container to fill the lut histos + for(auto thisCT:*cpmTowCon){ + double eta = thisCT->eta(); + double phi = thisCT->phi(); + std::vector<uint8_t> cpmEMenergy = thisCT->emEnergyVec(); + std::vector<uint8_t> cpmHADenergy = thisCT->hadEnergyVec(); + + if(cpmEMenergy.size() > 2){ // expect 3 slices to be read out + fillEtaPhiMap(emLUT0, eta, phi, (int) cpmEMenergy.at(0)); + fillEtaPhiMap(emLUT1, eta, phi, (int) cpmEMenergy.at(1)); + fillEtaPhiMap(emLUT2, eta, phi, (int) cpmEMenergy.at(2)); + } + if(cpmHADenergy.size() > 2){ + fillEtaPhiMap(hadLUT0, eta, phi, (int) cpmHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, eta, phi, (int) cpmHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, eta, phi, (int) cpmHADenergy.at(2)); + } + } + // and the jet element container for the forward region + for(auto thisJE:*jetEleCon){ + double eta = thisJE->eta(); + double phi = thisJE->phi(); + int signeta = 1; + if(eta < 0) signeta = -1; + std::vector<uint16_t> jepEMenergy = thisJE->emJetElementETVec(); + std::vector<uint16_t> jepHADenergy = thisJE->hadJetElementETVec(); + + if (eta < -2.5 || eta > 2.5) {// Use JEP info to fill the forward part of the lut plots, but since this has TT granularity we have to play some tricks + if(jepEMenergy.size() > 2){ + fillEtaPhiMap(emLUT0, eta, phi, (int)jepEMenergy.at(0)); + fillEtaPhiMap(emLUT1, eta, phi, (int)jepEMenergy.at(1)); + fillEtaPhiMap(emLUT2, eta, phi, (int)jepEMenergy.at(2)); + if (eta < -3.2 || eta > 3.2) {//for the FCal, the jep elements eta will be 4.05 -> to mimic this in the PPM histo histos fill 3 more bins in eta + fillEtaPhiMap(emLUT0, signeta*4.7, phi, (int)jepEMenergy.at(0)); + fillEtaPhiMap(emLUT1, signeta*4.7, phi, (int)jepEMenergy.at(1)); + fillEtaPhiMap(emLUT2, signeta*4.7, phi, (int)jepEMenergy.at(2)); + fillEtaPhiMap(emLUT0, signeta*3.7, phi, (int)jepEMenergy.at(0)); + fillEtaPhiMap(emLUT1, signeta*3.7, phi, (int)jepEMenergy.at(1)); + fillEtaPhiMap(emLUT2, signeta*3.7, phi, (int)jepEMenergy.at(2)); + fillEtaPhiMap(emLUT0, signeta*3.5, phi, (int)jepEMenergy.at(0)); + fillEtaPhiMap(emLUT1, signeta*3.5, phi, (int)jepEMenergy.at(1)); + fillEtaPhiMap(emLUT2, signeta*3.5, phi, (int)jepEMenergy.at(2)); + }else if (eta < -2.9 || eta > 2.9) {//here the jep element eta will be 3.05 -> to mimic this in the PPM histo fill one more eta bin + fillEtaPhiMap(emLUT0, signeta*3.15, phi, (int)jepEMenergy.at(0)); + fillEtaPhiMap(emLUT1, signeta*3.15, phi, (int)jepEMenergy.at(1)); + fillEtaPhiMap(emLUT2, signeta*3.15, phi, (int)jepEMenergy.at(2)); + } + } + if(jepHADenergy.size()> 2){ + fillEtaPhiMap(hadLUT0, eta, phi, (int)jepHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, eta, phi, (int)jepHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, eta, phi, (int)jepHADenergy.at(2)); + if (eta < -3.2 || eta > 3.2) {//for the FCal, the jep elements are summed horizontally, mimic this in the TH2TT histos -> fill 3 more bins in eta + fillEtaPhiMap(hadLUT0, signeta*4.7, phi, (int)jepHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, signeta*4.7, phi, (int)jepHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, signeta*4.7, phi, (int)jepHADenergy.at(2)); + fillEtaPhiMap(hadLUT0, signeta*3.7, phi, (int)jepHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, signeta*3.7, phi, (int)jepHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, signeta*3.7, phi, (int)jepHADenergy.at(2)); + fillEtaPhiMap(hadLUT0, signeta*3.5, phi, (int)jepHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, signeta*3.5, phi, (int)jepHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, signeta*3.5, phi, (int)jepHADenergy.at(2)); + }else if (eta < -2.9 || eta > 2.9) { + fillEtaPhiMap(hadLUT0, signeta*3.15, phi, (int)jepHADenergy.at(0)); + fillEtaPhiMap(hadLUT1, signeta*3.15, phi, (int)jepHADenergy.at(1)); + fillEtaPhiMap(hadLUT2, signeta*3.15, phi, (int)jepHADenergy.at(2)); + } + } + } + } + + m_curHistos++; + } + + + m_h_1d_selectedEvents_mistimedStreamAna->Fill(lumiNo); + + //dont forget to delete the decorated TTcontainers + delete ttContainer; + delete ttAuxContainer; + + return StatusCode::SUCCESS; +} + +// ============================================================================ +} // end namespace +// ============================================================================ diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.h new file mode 100755 index 000000000000..10c96eac99ef --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.h @@ -0,0 +1,132 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// ******************************************************************** +// +// NAME: MistimedStreamMon.h +// PACKAGE: TrigT1CaloMonitoring +// +// Author: Julia I. Djuvsland (julia.djuvsland@kip.uni-heidelberg.de) +// Sebastian M. Weber (sebastian.weber@kip.uni-heidelberg.de) +// Universitaet Heidelberg +// +// ******************************************************************** + +#ifndef TRIGT1CALOMONITORING_MISTIMEDSTREAMMON_H +#define TRIGT1CALOMONITORING_MISTIMEDSTREAMMON_H + +#include <string> +#include <vector> + +#include "AthenaMonitoring/ManagedMonitorToolBase.h" +#include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" +#include "GaudiKernel/IIncidentListener.h" + +#include "xAODTrigL1Calo/TriggerTower.h" +#include "xAODTrigL1Calo/TriggerTowerContainer.h" +#include "AthenaMonitoring/ManagedMonitorToolBase.h" + +class TH1F_LW; + +class L1CaloCondSvc; +class L1CaloRunParametersContainer; +class L1CaloReadoutConfigContainer; + +class StatusCode; +class EventInfo; +class ITHistSvc; + +namespace Trig { + class TrigDecisionTool; +} + +// ============================================================================ +namespace LVL1 { +// ============================================================================ +// Forward declarations: +// ============================================================================ +class IL1TriggerTowerTool; +class ITrigT1CaloMonErrorTool; +class TrigT1CaloLWHistogramTool; + +/** This class monitors events that fired the trigger HLT_mistimemonj400 + * to spot potential late or mistimed trigger towers, but will also pick up noise + * + * <b>ROOT Histogram Directories (Tier0):</b> + * + * <table> + * <tr><th> Directory </th><th> Contents </th></tr> + * <tr><td> @c L1Calo/MistimedStream/EventsPerLumiBlock </td><td> Selected events per lumiblock <br> + * </table> + * + * + * @authors Julia I. Djuvsland, Sebastian M. Weber + * + * */ + +class MistimedStreamMon: public ManagedMonitorToolBase +{ + + public: + + MistimedStreamMon(const std::string & type, const std::string & name,const IInterface* parent); + virtual ~MistimedStreamMon(); + + virtual StatusCode initialize(); + virtual StatusCode finalize(); + virtual StatusCode bookHistogramsRecurrent(); + virtual StatusCode fillHistograms(); + +private: + + StatusCode retrieveConditions(); + void fillEtaPhiMap(TH2F* hist, double eta, double phi, double weight, bool shrinkEtaBins = true); + TH2F* createEtaPhiMap(std::string name, std::string title, bool isHADLayer = false, bool shrinkEtaBins = true); + bool pulseQuality(std::vector<uint16_t> ttPulse, int peakSlice); + + /// Tool to retrieve bytestream errors + ToolHandle<ITrigT1CaloMonErrorTool> m_errorTool; + /// Histogram helper tool + ToolHandle<TrigT1CaloLWHistogramTool> m_histTool; + /// TT simulation tool for Identifiers + ToolHandle<LVL1::IL1TriggerTowerTool> m_ttTool; + /// Tool to retrieve the trigger decision + ToolHandle<Trig::TrigDecisionTool> m_trigDec; + + /// Histograms booked flag + bool m_histBooked; + // Histograms + + // Overview histos + // Overall selected events and cut flow of analysis + TH1F_LW* m_h_1d_cutFlow_mistimedStreamAna; + // Selected events per lumi block + TH1F_LW* m_h_1d_selectedEvents_mistimedStreamAna; + + //Variables for the properties + /// Root directory + std::string m_PathInRootFile; + /// xAODTriggerTower Container key + std::string m_xAODTriggerTowerContainerName; + /// L1Calo conditions + ServiceHandle<L1CaloCondSvc> m_l1CondSvc; + /// Database container for the run parameters + L1CaloRunParametersContainer* m_runParametersContainer; + /// Database container for the readout configuration + L1CaloReadoutConfigContainer* m_readoutConfigContainer; + + //Control maximum number of histograms per job + int m_maxHistos; + int m_curHistos; + + // Athena hist service + ServiceHandle<ITHistSvc> m_thistSvc; +}; + +// ============================================================================ +} // end namespace +// ============================================================================ + +#endif diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.cxx index a0402307a49d..436e4a655ca4 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.cxx @@ -32,6 +32,11 @@ #include "TrigT1CaloMonitoringTools/TrigT1CaloLWHistogramTool.h" #include "TrigT1Interfaces/TrigT1CaloDefs.h" +#include "TrigT1CaloCondSvc/L1CaloCondSvc.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h" + + // ============================================================================ namespace LVL1 { // ============================================================================ @@ -42,6 +47,7 @@ PPMSimBSMon::PPMSimBSMon(const std::string & type, m_ttTool("LVL1::L1TriggerTowerTool/L1TriggerTowerTool"), m_errorTool("LVL1::TrigT1CaloMonErrorTool/TrigT1CaloMonErrorTool"), m_histTool("LVL1::TrigT1CaloLWHistogramTool/TrigT1CaloLWHistogramTool"), + m_l1CondSvc("L1CaloCondSvc",name), m_histBooked(false), m_h_ppm_em_2d_etaPhi_tt_lutCp_SimEqData(0), m_h_ppm_em_2d_etaPhi_tt_lutCp_SimNeData(0), @@ -108,10 +114,34 @@ StatusCode PPMSimBSMon:: initialize() CHECK(m_ttTool.retrieve()); CHECK(m_errorTool.retrieve()); CHECK(m_histTool.retrieve()); + CHECK(m_l1CondSvc.retrieve()); + + + return StatusCode::SUCCESS; +} + +/*---------------------------------------------------------*/ +StatusCode PPMSimBSMon:: retrieveConditions() +/*---------------------------------------------------------*/ +{ + ATH_MSG_VERBOSE("PPMSimBSMon::retrieveConditions"); + if (m_l1CondSvc) { + ATH_MSG_VERBOSE( "Retrieving Conditions Containers" ); + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_runParametersContainer),"PPMSimBSMon"); + + if (std::cbegin(*m_runParametersContainer) == std::cend(*m_runParametersContainer)) { + ATH_MSG_ERROR("Empty L1CaloRunParametersContainer"); + return StatusCode::FAILURE; + } + + }else{ + ATH_MSG_ERROR("L1CondSvc not present!"); + } return StatusCode::SUCCESS; } + /*---------------------------------------------------------*/ StatusCode PPMSimBSMon:: finalize() /*---------------------------------------------------------*/ @@ -321,6 +351,17 @@ void PPMSimBSMon::simulateAndCompare(const xAOD::TriggerTowerContainer* ttIn) return; } + if(this->retrieveConditions().isFailure()) { + REPORT_MESSAGE(MSG::WARNING); + return; + } + + unsigned int readoutConfigID = std::cbegin(*m_runParametersContainer)->readoutConfigID(); + + if(msgLvl(MSG::DEBUG)){ + ATH_MSG_VERBOSE("ReadoutConfigID = " << readoutConfigID ); + } + bool isRun2 = true; const EventInfo* evInfo = nullptr; if (evtStore()->retrieve(evInfo).isFailure() || !evInfo) { @@ -346,9 +387,6 @@ void PPMSimBSMon::simulateAndCompare(const xAOD::TriggerTowerContainer* ttIn) const double phi = tt->phi(); const int datCp = tt->cpET(); const int datJep = tt->lut_jep().empty() ? 0 : tt->jepET(); - const std::vector<uint_least16_t>& ADC = tt->adc(); - const int Slices = ADC.size(); - const int Peak = tt->adcPeak(); bool pedCorrOverflow = false; const std::size_t nPedCorr = tt->correction().size(); int simCp = 0; @@ -360,6 +398,33 @@ void PPMSimBSMon::simulateAndCompare(const xAOD::TriggerTowerContainer* ttIn) datBcid = datBcidVec[tt->peak()]; } + //Retrieve RunParameters container from COOL database and check if run was taken with 80MHz readout. If yes, drop the 80MHz samples to emulate 40 MHz readout + + std::vector<uint16_t> digits40; + + if(readoutConfigID==5 or readoutConfigID==6){ + + int nSlices = tt->adc().size(); + + if((nSlices%4)==3){ + for (int i=0 ; i < (nSlices-1)/2 ; i++ ){ + digits40.push_back(tt->adc().at(2*i+1)); + } + } + else if((nSlices%4)==1){ + for (int i=0 ; i <= (nSlices-1)/2 ; i++ ){ + digits40.push_back(tt->adc().at(2*i)); + } + } + + }else{ + digits40 = tt->adc(); + } + + const std::vector<uint_least16_t>& ADC = digits40; + const int Slices = ADC.size(); + const int Peak = Slices/2.; + //Check for over-/underflow of pedestalCorrection for(std::size_t i = 0; i < nPedCorr; ++i) { if(tt->correction()[i]>=511 or tt->correction()[i]<=-512){ diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.h b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.h index eb63d5e4e7ac..1950ef68c848 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.h +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PPMSimBSMon.h @@ -19,6 +19,7 @@ #include <vector> #include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/ServiceHandle.h" #include "AthenaMonitoring/ManagedMonitorToolBase.h" #include "xAODTrigL1Calo/TriggerTowerContainer.h" @@ -26,6 +27,9 @@ class TH2F_LW; class TH2I_LW; +class L1CaloCondSvc; +class L1CaloRunParametersContainer; + // ============================================================================ namespace LVL1 { // ============================================================================ @@ -35,6 +39,9 @@ class TriggerTower; class IL1TriggerTowerTool; class ITrigT1CaloMonErrorTool; class TrigT1CaloLWHistogramTool; + + + // ============================================================================ /** Cross-check of PPM LUT data with simulation. @@ -124,6 +131,8 @@ public: private: typedef std::vector<int> ErrorVector; + + StatusCode retrieveConditions(); /// Fill error event number histogram void fillEventSample(int crate, int module); @@ -137,7 +146,13 @@ private: ToolHandle<ITrigT1CaloMonErrorTool> m_errorTool; /// Histogram helper tool ToolHandle<TrigT1CaloLWHistogramTool> m_histTool; - + + /// L1Calo conditions + ServiceHandle<L1CaloCondSvc> m_l1CondSvc; + + /// Database container + L1CaloRunParametersContainer* m_runParametersContainer; + /// Root directory name std::string m_rootDir; diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/components/TrigT1CaloMonitoring_entries.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/components/TrigT1CaloMonitoring_entries.cxx index ca504276a172..6656b9ccd8da 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/components/TrigT1CaloMonitoring_entries.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/components/TrigT1CaloMonitoring_entries.cxx @@ -4,6 +4,7 @@ #include "../JEPCMXMon.h" #include "../JEPSimMon.h" #include "../PPrMon.h" +#include "../MistimedStreamMon.h" #include "../PPrStabilityMon.h" #include "../PPrSpareMon.h" #include "../PPMSimBSMon.h" @@ -11,11 +12,11 @@ #include "../OverviewMon.h" #include "../TagProbeEfficiencyMon.h" -//Run 1 +// Run 1 #include "../CMMMon.h" #include "../CPMSimBSMon.h" #include "../JEMMon.h" -//#include "../JEPSimBSMon.h" +// #include "../JEPSimBSMon.h" #include "../TrigT1CaloBSMon.h" #include "../TrigT1CaloCpmMonTool.h" #include "../TrigT1CaloGlobalMonTool.h" @@ -32,6 +33,7 @@ DECLARE_COMPONENT( LVL1::JEPCMXMon ) DECLARE_COMPONENT( LVL1::JEPSimMon ) DECLARE_COMPONENT( LVL1::PPrMon ) +DECLARE_COMPONENT( LVL1::MistimedStreamMon ) DECLARE_COMPONENT( LVL1::PPrStabilityMon ) DECLARE_COMPONENT( LVL1::PPrSpareMon ) DECLARE_COMPONENT( LVL1::PPMSimBSMon ) @@ -39,14 +41,14 @@ DECLARE_COMPONENT( LVL1::RODMon ) DECLARE_COMPONENT( LVL1::TagProbeEfficiencyMon ) -//Run 1 +// Run 1 DECLARE_COMPONENT( LVL1::CMMMon ) DECLARE_COMPONENT( LVL1::CPMSimBSMon ) DECLARE_COMPONENT( LVL1::JEMMon ) -//DECLARE_COMPONENT( LVL1::JEPSimBSMon ) +// DECLARE_COMPONENT( LVL1::JEPSimBSMon ) DECLARE_COMPONENT( LVL1::TrigT1CaloBSMon ) DECLARE_COMPONENT( LVL1::TrigT1CaloCpmMonTool ) DECLARE_COMPONENT( LVL1::TrigT1CaloGlobalMonTool ) -//DECLARE_COMPONENT( LVL1::EmEfficienciesMonTool ) +// DECLARE_COMPONENT( LVL1::EmEfficienciesMonTool ) DECLARE_COMPONENT( LVL1::JetEfficienciesMonTool ) DECLARE_COMPONENT( LVL1::RODMonV1 ) -- GitLab From eb6826ae4ceccf55fb218f3e2a4ebf1491c1cba3 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:53:51 +0100 Subject: [PATCH 018/192] Updated TrigT1CaloTools --- .../TrigT1CaloTools/L1CPCMXTools.h | 4 - .../L1DynamicPedestalProviderRoot.h | 4 +- .../L1DynamicPedestalProviderTxt.h | 2 +- .../TrigT1CaloTools/L1EnergyCMXTools.h | 4 +- .../TrigT1CaloTools/L1JetCMXTools.h | 4 - .../TrigT1CaloTools/L1TriggerTowerTool.h | 9 + .../src/L1DynamicPedestalProviderRoot.cxx | 2 +- .../src/L1DynamicPedestalProviderTxt.cxx | 2 +- .../TrigT1CaloTools/src/L1EnergyCMXTools.cxx | 27 +++ .../src/L1TriggerTowerTool.cxx | 224 +++++++++++++++++- 10 files changed, 258 insertions(+), 24 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPCMXTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPCMXTools.h index 04dad37d3fa2..2cbbc5843159 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPCMXTools.h @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef LVL1L1CPCMXTOOLS_H #define LVL1L1CPCMXTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderRoot.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderRoot.h index 421c50308963..9a939970e266 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderRoot.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderRoot.h @@ -1,8 +1,8 @@ -/** -*- C++ -*-*/ +/** -*- C++ -*- */ /* Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/* +/** * @file TrigT1CaloTools/L1DynamicPedestalProviderRoot.h * @author V. Scharf <vscharf@kip.uni-heidelberg.de> * @date June 2014 diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderTxt.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderTxt.h index ebc47fa4e309..e21e3d91a450 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderTxt.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1DynamicPedestalProviderTxt.h @@ -2,7 +2,7 @@ /* Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/* +/* * @file TrigT1CaloTools/L1DynamicPedestalProviderTxt.h * @author V. Scharf <vscharf@kip.uni-heidelberg.de> * @date June 2014 diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h index afa99d1aa65a..14fd8ec4921a 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1EnergyCMXTools.h @@ -115,6 +115,8 @@ class L1EnergyCMXTools : virtual public IL1EnergyCMXTools, public AthAlgTool void etMapsToEtSums(const MultiSliceSystemEnergy &systemVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const; void findRestrictedEta(uint32_t &maskXE, uint32_t &maskTE) const; + + void dumpCrateEnergies(const std::string& msg, const MultiSliceCrateEnergy& crates) const; /** trigger configuration service */ ServiceHandle<TrigConf::ITrigConfigSvc> m_configSvc; /** Tool for JetElement map */ @@ -124,7 +126,7 @@ class L1EnergyCMXTools : virtual public IL1EnergyCMXTools, public AthAlgTool /** Debug flag */ bool m_debug; /** Find restructed eta range. - * This will use the min/max values for any threshold in the range 9-16 to define the ranges + * This will use the min/max values for the first valid threshold in the range 9-16 to define the ranges */ uint32_t m_maskXE; uint32_t m_maskTE; diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1JetCMXTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1JetCMXTools.h index 6c6e685896ff..49ac48849808 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1JetCMXTools.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1JetCMXTools.h @@ -2,10 +2,6 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef LVL1L1JETCMXTOOLS_H #define LVL1L1JETCMXTOOLS_H diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1TriggerTowerTool.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1TriggerTowerTool.h index c9aefd048fae..0e89ea1b8391 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1TriggerTowerTool.h +++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1TriggerTowerTool.h @@ -28,6 +28,9 @@ class CaloTriggerTowerService; class Incident; class L1CaloCondSvc; class L1CaloPpmFineTimeRefsContainer; +class L1CaloDerivedRunParsContainer; +class L1CaloRunParametersContainer; +class L1CaloPprChanStrategyContainer; namespace TrigConf { class ILVL1ConfigSvc; } @@ -154,6 +157,12 @@ namespace LVL1 // one of L1CaloPprConditionsContainer{,Run2}* bool m_isRun2; + + /// For Run2 strategy (LowMu, HighMu) + L1CaloPprChanStrategyContainer* m_strategyContainer; + L1CaloDerivedRunParsContainer* m_derivedRunParsContainer; + L1CaloRunParametersContainer* m_runParametersContainer; + boost::any m_conditionsContainer; // one of L1CaloPprDisabledChannelContainer{,Run2}* boost::any m_disabledChannelContainer; diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderRoot.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderRoot.cxx index d2aef15831c6..26ce045a1ecf 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderRoot.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderRoot.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ ////////////////////////////////////////////////////////////////////// -// L1DynamicPedestalProviderRoot.cxx (c) Veit Scjarf +// L1DynamicPedestalProviderRoot.cxx /////////////////////////////////////////////////////////////////////// #include "TrigT1CaloTools/L1DynamicPedestalProviderRoot.h" diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderTxt.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderTxt.cxx index fdbaf7eb0014..dc87d244a4df 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderTxt.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1DynamicPedestalProviderTxt.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ ////////////////////////////////////////////////////////////////////// -// L1DynamicPedestalProviderTxt.cxx (c) Veit Scjarf +// L1DynamicPedestalProviderTxt.cxx /////////////////////////////////////////////////////////////////////// #include "TrigT1CaloTools/L1DynamicPedestalProviderTxt.h" diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx index d609d07f5980..d22ca5656213 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1EnergyCMXTools.cxx @@ -451,6 +451,9 @@ void L1EnergyCMXTools::etSumsToCrateEnergy(const xAOD::CMXEtSumsContainer *etSum eyErr.get(DataError::Overflow), restricted)); } } + + dumpCrateEnergies("Crates from full region (for total)", crateVecFull); + dumpCrateEnergies("Crates from restricted region (for total)", crateVecRestricted); } /** Convert CMXEtSums container to internal SystemEnergy objects */ @@ -650,6 +653,10 @@ void L1EnergyCMXTools::crateEnergyToEtSums( unsigned int nslices = cratesVecFull.size(); std::vector<uint16_t> dummy(nslices); std::vector<uint32_t> error(nslices); + + dumpCrateEnergies("Crates from full region", cratesVecFull); + dumpCrateEnergies("Crates from restricted region", cratesVecRestricted); + for (unsigned int slice = 0; slice < nslices; ++slice) { @@ -773,6 +780,8 @@ void L1EnergyCMXTools::systemEnergyToEtSums( int exOverflow = energy->exOverflow(); int eyOverflow = energy->eyOverflow(); int etOverflow = energy->etOverflow(); + + // don't trust to exOverflow for restricted if (ex == 0 && ey == 0 && et == 0 && exOverflow == 0 && eyOverflow == 0 && etOverflow == 0) continue; @@ -793,12 +802,14 @@ void L1EnergyCMXTools::systemEnergyToEtSums( exVec[slice] = ex; eyVec[slice] = ey; etVec[slice] = et; + if (exOverflow) { DataError dEx(exErr[slice]); dEx.set(DataError::Overflow); exErr[slice] = dEx.error(); } + if (eyOverflow) { DataError dEy(eyErr[slice]); @@ -955,4 +966,20 @@ void L1EnergyCMXTools::etMapsToEtSums( } } +void L1EnergyCMXTools::dumpCrateEnergies( + const std::string &msg, const MultiSliceCrateEnergy &crates) const { + if (!m_debug) return; + + ATH_MSG_DEBUG(msg); + for (const auto& p : crates) { + for (const auto& c : *p) { + ATH_MSG_DEBUG(" CrateEnergy: crate " << c->crate() << " results "); + ATH_MSG_DEBUG(" Et " << c->et() << " overflow " << c->etOverflow()); + ATH_MSG_DEBUG(" Ex " << c->ex() << " overflow " << c->exOverflow()); + ATH_MSG_DEBUG(" Ey " << c->ey() << " overflow "<< c->eyOverflow()); + } + ATH_MSG_DEBUG(""); + } +} + } // end of namespace diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1TriggerTowerTool.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1TriggerTowerTool.cxx index 4d7ab0fab4af..16cf890421a8 100644 --- a/Trigger/TrigT1/TrigT1CaloTools/src/L1TriggerTowerTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1TriggerTowerTool.cxx @@ -33,6 +33,15 @@ #include "TrigT1CaloCalibConditions/L1CaloPprDisabledChannelContainer.h" #include "TrigT1CaloCalibConditions/L1CaloPprDisabledChannelContainerRun2.h" +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h" +#include "TrigT1CaloCalibConditions/L1CaloDerivedRunParsContainer.h" + +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategy.h" +#include "TrigT1CaloCalibConditions/L1CaloPprChanStrategyContainer.h" + +#include "TrigT1CaloCalibConditions/L1CaloRunParameters.h" +#include "TrigT1CaloCalibConditions/L1CaloRunParametersContainer.h" + #include "TrigT1CaloCalibToolInterfaces/IL1CaloTTIdTools.h" #include "TrigT1CaloMappingToolInterfaces/IL1CaloMappingTool.h" #include "TrigT1CaloToolInterfaces/IL1DynamicPedestalProvider.h" @@ -181,6 +190,15 @@ namespace { // helper function target = C; return StatusCode::SUCCESS; } + + template<class T, class FolderMap> + StatusCode retrieveGenericWithFolders(ServiceHandle<L1CaloCondSvc>& svc, const FolderMap& fmap, boost::any& target) { + T* C = nullptr; + CHECK_WITH_CONTEXT(svc->retrieve(C, fmap), "L1TriggerTowerTool"); + target = C; + return StatusCode::SUCCESS; + } + } // anonymous namespace /** Retrieve pointers to the L1Calo conditions containers */ @@ -192,16 +210,76 @@ StatusCode L1TriggerTowerTool::retrieveConditions() bool verbose = msgLvl(MSG::VERBOSE); if(m_isRun2) { - CHECK(retrieveGeneric<L1CaloPprConditionsContainerRun2>(m_l1CondSvc, m_conditionsContainer)); + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_derivedRunParsContainer), "L1TriggerTowerTool"); + if (std::cbegin(*m_derivedRunParsContainer) == std::cend(*m_derivedRunParsContainer)) { + ATH_MSG_WARNING("Empty L1CaloDerivedRunParsContainer"); + return StatusCode::FAILURE; + } + + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_runParametersContainer), "L1TriggerTowerTool"); + if (std::cbegin(*m_runParametersContainer) == std::cend(*m_runParametersContainer)) { + ATH_MSG_WARNING("Empty L1CaloRunParametersContainer"); + return StatusCode::FAILURE; + } + + + std::string timingRegime = std::cbegin(*m_derivedRunParsContainer)->timingRegime(); + + CHECK_WITH_CONTEXT(m_l1CondSvc->retrieve(m_strategyContainer), "L1TriggerTowerTool"); + + std::string strategy; + for(const auto& it: *m_strategyContainer){ + if (it.timingRegime() == timingRegime){ + strategy = it.strategy(); + } + } + + std::map<L1CaloPprConditionsContainerRun2::eCoolFolders, std::string> + coolFoldersKeysMap = { + { + L1CaloPprConditionsContainerRun2::ePprChanDefaults, + "/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults" + } + }; + + if (strategy.empty()){ + coolFoldersKeysMap[L1CaloPprConditionsContainerRun2::ePprChanCalib] + = "/TRIGGER/L1Calo/V2/Calibration/" + timingRegime + "/PprChanCalib"; + } else { + coolFoldersKeysMap[L1CaloPprConditionsContainerRun2::ePprChanCalibCommon] = + "/TRIGGER/L1Calo/V2/Calibration/" + timingRegime + "/PprChanCommon"; + coolFoldersKeysMap[L1CaloPprConditionsContainerRun2::ePprChanCalibStrategy] = + "/TRIGGER/L1Calo/V2/Calibration/" + timingRegime + "/PprChan" + strategy; + } + + CHECK(retrieveGenericWithFolders<L1CaloPprConditionsContainerRun2>( + m_l1CondSvc, coolFoldersKeysMap, m_conditionsContainer)); + CHECK(retrieveGeneric<L1CaloPprDisabledChannelContainerRun2>(m_l1CondSvc, m_disabledChannelContainer)); } else { CHECK(retrieveGeneric<L1CaloPprConditionsContainer>(m_l1CondSvc, m_conditionsContainer)); CHECK(retrieveGeneric<L1CaloPprDisabledChannelContainer>(m_l1CondSvc, m_disabledChannelContainer)); } - ATH_MSG_VERBOSE( "Retrieved ConditionsContainer" ); + + if(verbose) { - if(m_isRun2) boost::any_cast<L1CaloPprConditionsContainerRun2*>(m_conditionsContainer)->dump(); - else boost::any_cast<L1CaloPprConditionsContainer*>(m_conditionsContainer)->dump(); + ATH_MSG_VERBOSE( "Retrieved ConditionsContainer" ); + if(m_isRun2){ + boost::any_cast<L1CaloPprConditionsContainerRun2*>(m_conditionsContainer)->dump(); + } else{ + boost::any_cast<L1CaloPprConditionsContainer*>(m_conditionsContainer)->dump(); + } + } + + if(verbose) { + if(m_isRun2){ + ATH_MSG_VERBOSE( "Retrieved DerivedRunParsContainer" ); + m_derivedRunParsContainer->dump(); + ATH_MSG_VERBOSE( "Retrieved RunParametersContainer" ); + m_runParametersContainer->dump(); + ATH_MSG_VERBOSE( "Retrieved StrategyContainer" ); + m_strategyContainer->dump(); + } } ATH_MSG_VERBOSE( "Retrieved DisabledChannelContainer" ); @@ -298,7 +376,7 @@ template <typename DST, typename SRC> std::vector<DST> convertVectorType(const std::vector<SRC>& s) { std::vector<DST> d(s.size()); std::transform(std::begin(s), std::end(s), std::begin(d), - [](SRC v){return static_cast<DST>(v);}); + [](SRC v){return static_cast<DST>(v);}); return d; } } @@ -306,7 +384,46 @@ std::vector<DST> convertVectorType(const std::vector<SRC>& s) { /** All-in-one routine - give it the TT identifier, and it returns the results */ void L1TriggerTowerTool::simulateChannel(const xAOD::TriggerTower& tt, std::vector<int>& outCpLut, std::vector<int>& outJepLut, std::vector<int>& bcidResults, std::vector<int>& bcidDecisions) { - const auto& digits = convertVectorType<int>(tt.adc()); + + //If we have 80 MHz readout, we need to extract the 40 MHz samples. The central 80 MHz sample is always a 40 MHz sample. We use the cool database (runParameters folder) to understand if we are in 80MHz readout + + unsigned int readoutConfigID = std::cbegin(*m_runParametersContainer)->readoutConfigID(); + + if(m_debug){ + ATH_MSG_VERBOSE("ReadoutConfigID = " << readoutConfigID ); + } + + std::vector<uint16_t> digits40; + + if(readoutConfigID == 5 or readoutConfigID == 6){ + + if(m_debug){ + ATH_MSG_VERBOSE("80 MHz readout detected, emulating 40 MHz samples"); + } + + int nSlices = tt.adc().size(); + + if((nSlices%4)==3){ + for (int i=0 ; i < (nSlices-1)/2 ; i++ ){ + digits40.push_back(tt.adc().at(2*i+1)); + } + } + else if((nSlices%4)==1){ + for (int i=0 ; i <= (nSlices-1)/2 ; i++){ + digits40.push_back(tt.adc().at(2*i)); + } + } + + + }else{ + if(m_debug){ + ATH_MSG_VERBOSE("40 MHz readout detected"); + } + digits40 = tt.adc(); + } + + const auto& digits = convertVectorType<int>(digits40); + L1CaloCoolChannelId channelId {tt.coolId()}; if (m_debug) { @@ -785,12 +902,17 @@ void L1TriggerTowerTool::lut(const std::vector<int> &fir, const L1CaloCoolChanne // TODO implement scale void L1TriggerTowerTool::cpLut(const std::vector<int> &fir, const L1CaloCoolChannelId& channelId, std::vector<int> &output) { + int startBit = 0; int strategy = 0; int offset = 0; + double offsetReal = 0; int slope = 0; int cut = 0; unsigned short scale = 0; + double pedMean = 0; int ped = 0; + int hwCoeffSum = 0; + const std::vector<short int>* hwCoeffs; if(!m_isRun2) { // assert instead ?! @@ -801,12 +923,31 @@ void L1TriggerTowerTool::cpLut(const std::vector<int> &fir, const L1CaloCoolChan auto conditionsContainer = boost::any_cast<L1CaloPprConditionsContainerRun2*>(m_conditionsContainer); const L1CaloPprConditionsRun2* settings = conditionsContainer->pprConditions(channelId.id()); if (settings) { + startBit = settings->firStartBit(); strategy = settings->lutCpStrategy(); - offset = settings->lutCpOffset(); slope = settings->lutCpSlope(); cut = settings->lutCpNoiseCut(); scale = settings->lutCpScale(); ped = settings->pedValue(); + pedMean = settings->pedMean(); + + hwCoeffs = getFirCoefficients<L1CaloPprConditionsContainerRun2>(channelId.id(), m_conditionsContainer); + + for (unsigned int i = 0; i < hwCoeffs->size(); i++){ + hwCoeffSum += hwCoeffs->at(i); + } + + if (strategy == 0){ + offsetReal = pedMean * hwCoeffSum / pow(2.,startBit); + } + else{ + offsetReal = pedMean * hwCoeffSum * slope / pow(2.,startBit) - slope/2.; + } + offset = static_cast<unsigned short>( offsetReal < 0. ? 0 : offsetReal + 0.5 ); + + ATH_MSG_VERBOSE( "::cpLut: Offset: offset/strategy/pedMean/firCoeffSum/startBit/slope: " + << offset << " " << strategy << " " << " " << pedMean << " " << hwCoeffSum << " " << startBit << " " << slope ); + } else ATH_MSG_WARNING( "::cpLut: No L1CaloPprConditions found" ); } else ATH_MSG_WARNING( "::cpLut: No Conditions Container retrieved" ); @@ -826,13 +967,18 @@ void L1TriggerTowerTool::cpLut(const std::vector<int> &fir, const L1CaloCoolChan void L1TriggerTowerTool::jepLut(const std::vector<int> &fir, const L1CaloCoolChannelId& channelId, std::vector<int> &output) { + int startBit = 0; int strategy = 0; int offset = 0; + double offsetReal = 0; int slope = 0; int cut = 0; unsigned short scale_db = 0; unsigned short scale_menu = 0; int ped = 0; + double pedMean = 0; + int hwCoeffSum = 0; + const std::vector<short int>* hwCoeffs; short par1 = 0; short par2 = 0; short par3 = 0; @@ -847,11 +993,12 @@ void L1TriggerTowerTool::jepLut(const std::vector<int> &fir, const L1CaloCoolCha auto conditionsContainer = boost::any_cast<L1CaloPprConditionsContainerRun2*>(m_conditionsContainer); const L1CaloPprConditionsRun2* settings = conditionsContainer->pprConditions(channelId.id()); if (settings) { + startBit = settings->firStartBit(); strategy = settings->lutJepStrategy(); - offset = settings->lutJepOffset(); slope = settings->lutJepSlope(); cut = settings->lutJepNoiseCut(); ped = settings->pedValue(); + pedMean = settings->pedMean(); scale_db = settings->lutJepScale(); scale_menu = m_configSvc->thresholdConfig()->caloInfo().globalJetScale(); // Retrieve scale param from menu instead of coolDB if (strategy == 3) { @@ -860,6 +1007,24 @@ void L1TriggerTowerTool::jepLut(const std::vector<int> &fir, const L1CaloCoolCha par3 = settings->lutJepPar3(); par4 = settings->lutJepPar4(); } + + hwCoeffs = getFirCoefficients<L1CaloPprConditionsContainerRun2>(channelId.id(), m_conditionsContainer); + + for (unsigned int i = 0; i < hwCoeffs->size(); i++){ + hwCoeffSum += hwCoeffs->at(i); + } + + if (strategy == 0){ + offsetReal = pedMean * hwCoeffSum / pow(2.,startBit); + } + else{ + offsetReal = pedMean * hwCoeffSum * slope / pow(2.,startBit) - slope/2.; + } + offset = static_cast<unsigned short>( offsetReal < 0. ? 0 : offsetReal + 0.5 ); + + ATH_MSG_VERBOSE( "::jepLut: Offset: offset/strategy/pedMean/firCoeffSum/startBit/slope: " + << offset << " " << strategy << " " << " " << pedMean << " " << hwCoeffSum << " " << startBit << " " << slope ); + } else ATH_MSG_WARNING( "::jepLut: No L1CaloPprConditions found" ); } else ATH_MSG_WARNING( "::jepLut: No Conditions Container retrieved" ); @@ -1196,11 +1361,14 @@ void L1TriggerTowerTool::cpLutParams(const L1CaloCoolChannelId& channelId, int& startBit = 0; strategy = 0; offset = 0; + double offsetReal = 0; slope = 0; cut = 0; pedValue = 0; pedMean = 0.; disabled = true; + int hwCoeffSum = 0; + const std::vector<short int>* hwCoeffs; if(!m_isRun2) { // assert instead ?! @@ -1214,11 +1382,27 @@ void L1TriggerTowerTool::cpLutParams(const L1CaloCoolChannelId& channelId, int& if(settings) { startBit = settings->firStartBit(); strategy = settings->lutCpStrategy(); - offset = settings->lutCpOffset(); slope = settings->lutCpSlope(); cut = settings->lutCpNoiseCut(); pedValue = settings->pedValue(); pedMean = settings->pedMean(); + + hwCoeffs = getFirCoefficients<L1CaloPprConditionsContainerRun2>(channelId.id(), m_conditionsContainer); + for (unsigned int i = 0; i < hwCoeffs->size(); i++){ + hwCoeffSum += hwCoeffs->at(i); + } + + if (strategy == 0){ + offsetReal = pedMean * hwCoeffSum / pow(2.,startBit); + } + else{ + offsetReal = pedMean * hwCoeffSum * slope / pow(2.,startBit) - slope/2.; + } + offset = static_cast<unsigned short>( offsetReal < 0. ? 0 : offsetReal + 0.5 ); + + ATH_MSG_VERBOSE( "::jepLutParams: Offset: offset/strategy/pedMean/firCoeffSum/startBit/slope: " + << offset << " " << strategy << " " << " " << pedMean << " " << hwCoeffSum << " " << startBit << " " << slope ); + } else ATH_MSG_WARNING( "::cpLutParams: No L1CaloPprConditions found" ); } else ATH_MSG_WARNING( "::cpLutParams: No Conditions Container retrieved" ); @@ -1234,11 +1418,14 @@ void L1TriggerTowerTool::jepLutParams(const L1CaloCoolChannelId& channelId, int& startBit = 0; strategy = 0; offset = 0; + double offsetReal = 0; slope = 0; cut = 0; pedValue = 0; pedMean = 0.; disabled = true; + int hwCoeffSum = 0; + const std::vector<short int>* hwCoeffs; if(!m_isRun2) { // assert instead ?! @@ -1252,11 +1439,28 @@ void L1TriggerTowerTool::jepLutParams(const L1CaloCoolChannelId& channelId, int& if(settings) { startBit = settings->firStartBit(); strategy = settings->lutJepStrategy(); - offset = settings->lutJepOffset(); slope = settings->lutJepSlope(); cut = settings->lutJepNoiseCut(); pedValue = settings->pedValue(); pedMean = settings->pedMean(); + + hwCoeffs = getFirCoefficients<L1CaloPprConditionsContainerRun2>(channelId.id(), m_conditionsContainer); + + for (unsigned int i = 0; i < hwCoeffs->size(); i++){ + hwCoeffSum += hwCoeffs->at(i); + } + + if (strategy == 0){ + offsetReal = pedMean * hwCoeffSum / pow(2.,startBit); + } + else{ + offsetReal = pedMean * hwCoeffSum * slope / pow(2.,startBit) - slope/2.; + } + offset = static_cast<unsigned short>( offsetReal < 0. ? 0 : offsetReal + 0.5 ); + + ATH_MSG_VERBOSE( "::jepLutParams: Offset: offset/strategy/pedMean/firCoeffSum/startBit/slope: " + << offset << " " << strategy << " " << " " << pedMean << " " << hwCoeffSum << " " << startBit << " " << slope ); + } else ATH_MSG_WARNING( "::jepLutParams: No L1CaloPprConditions found" ); } else ATH_MSG_WARNING( "::jepLutParams: No Conditions Container retrieved" ); -- GitLab From ac9e54a94235cfb2d0743b1d7830c657c7ff5e84 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 17:58:50 +0100 Subject: [PATCH 019/192] Updated TrigT1CaloSim --- .../TrigT1CaloSim/TrigT1CaloSim/RoIROD.h | 4 -- .../TrigT1CaloSim/Run2TriggerTowerMaker.h | 3 ++ .../TrigT1CaloSim/TrigT1CaloSim/Tester.h | 4 -- .../TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx | 4 -- Trigger/TrigT1/TrigT1CaloSim/src/Tester.cxx | 45 ++++++++++--------- 5 files changed, 26 insertions(+), 34 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/RoIROD.h b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/RoIROD.h index 066ae7189599..767b1d45405d 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/RoIROD.h +++ b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/RoIROD.h @@ -8,10 +8,6 @@ email : Alan.Watson@CERN.CH ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef _RoIROD_H_ #define _RoIROD_H_ diff --git a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Run2TriggerTowerMaker.h b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Run2TriggerTowerMaker.h index f195bac4b5b4..aed51bfb39f0 100755 --- a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Run2TriggerTowerMaker.h +++ b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Run2TriggerTowerMaker.h @@ -256,6 +256,9 @@ private: std::vector<int> ADC(L1CaloCoolChannelId channel, const std::vector<double>& amps) const; int EtRange(int et, unsigned short bcidEnergyRangeLow, unsigned short bcidEnergyRangeHigh) const; + // void preProcessLayer(int layer, int eventBCID, InternalTriggerTower* tower, std::vector<int>& etResultVector, std::vector<int>& bcidResultVector); + StatusCode preProcessTower(xAOD::TriggerTower* tower, int eventBCID); + int etaToElement(float feta, int layer) const; // non-linear LUT diff --git a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Tester.h b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Tester.h index a1206d3d000f..adb906c8eb26 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Tester.h +++ b/Trigger/TrigT1/TrigT1CaloSim/TrigT1CaloSim/Tester.h @@ -8,10 +8,6 @@ email : moyse@heppch.ph.qmw.ac.uk ***************************************************************************/ -/*************************************************************************** - * * - * * - ***************************************************************************/ #ifndef _TESTER_H_ #define _TESTER_H_ diff --git a/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx b/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx index 9af99d654450..165e4258f4f2 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx +++ b/Trigger/TrigT1/TrigT1CaloSim/src/EnergyCMX.cxx @@ -13,10 +13,6 @@ // EnergyCMX class Implementation // ================================================ // -/*************************************************************************** - * * - * * - ***************************************************************************/ // // // diff --git a/Trigger/TrigT1/TrigT1CaloSim/src/Tester.cxx b/Trigger/TrigT1/TrigT1CaloSim/src/Tester.cxx index 1d06e6ce8d93..ed5a127b4571 100644 --- a/Trigger/TrigT1/TrigT1CaloSim/src/Tester.cxx +++ b/Trigger/TrigT1/TrigT1CaloSim/src/Tester.cxx @@ -11,10 +11,6 @@ // updated: June 20, M. Wielers // move to Storegate // -/*************************************************************************** - * * - * * - ***************************************************************************/ // ================================================ // Tester class Implementation // ================================================ @@ -270,25 +266,30 @@ void LVL1::Tester::loadEmTauROIs(){ // Now test new EM/Tau implementation - const DataVector<LVL1::TriggerTower>* TTVector; - if( evtStore()->retrieve(TTVector, m_TriggerTowerLocation).isSuccess() ) { - DataVector<CPAlgorithm>* rois = new DataVector<CPAlgorithm>; - m_EmTauTool->findRoIs(TTVector,rois); - DataVector<CPAlgorithm>::iterator cpw = rois->begin(); - for ( ; cpw != rois->end(); cpw++) { - ATH_MSG_DEBUG("CPAlgorithm has properties : " << std::hex - << "RoIWord : " << std::hex << (*cpw)->RoIWord() - << std::dec << endmsg - << "eta : " << (*cpw)->eta() << endmsg - << "phi : " << (*cpw)->phi() << endmsg - << "Core ET : " << (*cpw)->Core() << endmsg - << "EM cluster : " << (*cpw)->EMClus() << endmsg - << "Tau cluster : " << (*cpw)->TauClus() << endmsg - << "EM isol : " << (*cpw)->EMIsol() << endmsg - << "Had isol : " << (*cpw)->HadIsol() << endmsg - << "Had veto : " << (*cpw)->HadVeto() ); + StatusCode sc = m_EmTauTool.retrieve(); + if (sc.isFailure()) { + ATH_MSG_ERROR( "Problem retrieving EmTauTool" ); + } + else { + const DataVector<LVL1::TriggerTower>* TTVector; + if( evtStore()->retrieve(TTVector, m_TriggerTowerLocation).isSuccess() ) { + DataVector<CPAlgorithm>* rois = new DataVector<CPAlgorithm>; + m_EmTauTool->findRoIs(TTVector,rois); + DataVector<CPAlgorithm>::iterator cpw = rois->begin(); + for ( ; cpw != rois->end(); cpw++) { + ATH_MSG_DEBUG("CPAlgorithm has properties : " << std::hex + << "RoIWord : " << std::hex << (*cpw)->RoIWord() << std::dec << endmsg + << "eta : " << (*cpw)->eta() << endmsg + << "phi : " << (*cpw)->phi() << endmsg + << "Core ET : " << (*cpw)->Core() << endmsg + << "EM cluster : " << (*cpw)->EMClus() << endmsg + << "Tau cluster : " << (*cpw)->TauClus() << endmsg + << "EM isol : " << (*cpw)->EMIsol() << endmsg + << "Had isol : " << (*cpw)->HadIsol() << endmsg + << "Had veto : " << (*cpw)->HadVeto() ); + } + delete rois; } - delete rois; } return; -- GitLab From a4c3850b12a7d177a3025170238836af86370fd3 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 18:01:02 +0100 Subject: [PATCH 020/192] Updated L1TopoSimulation --- .../L1Topo/L1TopoSimulation/src/MuonInputProvider.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/MuonInputProvider.h b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/MuonInputProvider.h index 62c48e966af2..150bed834e10 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/MuonInputProvider.h +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/src/MuonInputProvider.h @@ -56,6 +56,17 @@ namespace LVL1 { TCS::MuonTOB createMuonTOB(uint32_t roiword) const; TCS::MuonTOB createMuonTOB(const MuCTPIL1TopoCandidate & roi) const; TCS::LateMuonTOB createLateMuonTOB(const MuCTPIL1TopoCandidate & roi) const; + /** + @brief convert the 2-bit value from MuCTPIL1TopoCandidate::getptL1TopoCode() to an actual pt + + The muon TOB encodes pt values in 2 bits. + A MuCTPIL1TopoCandidate provides the encoded 2-bit value with + the function getptL1TopoCode(). + This function uses the information from the l1 trigger menu + configuration to convert the threshold to an actual pt value. + For more details, see ATR-16781. + */ + unsigned int topoMuonPtThreshold(const MuCTPIL1TopoCandidate &mctpiCand) const; SG::ReadHandleKey<ROIB::RoIBResult> m_roibLocation; -- GitLab From e62ed8708be687e3f8779f43cec32c690f2e3ac0 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Tue, 8 Jan 2019 18:05:53 +0100 Subject: [PATCH 021/192] Updated L1TopoSimulationUtils --- .../TrigT1/L1Topo/L1TopoSimulationUtils/Root/KFLUT.cxx | 10 +++++----- .../share/L1TopoSimulationUtils_test.ref | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/Root/KFLUT.cxx b/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/Root/KFLUT.cxx index de7e8d91fa9a..c30a7b3a7ed7 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/Root/KFLUT.cxx +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/Root/KFLUT.cxx @@ -71,11 +71,11 @@ void TCS::KFLUT::fillLUT(){ etalimits = {-0.10,0.10,0.30,0.50,0.70,0.90,1.10,1.30,1.50,1.70,1.90,2.10,2.33,2.55,2.80,3.42}; etlimits = {8,16,32,64,128,1024}; - vector<double> v0 {-0.12,-0.09,-0.09,-0.05,0.03,0.08,0.14,0.36,0.29,0.04,0.06,0.04,-0.02,-0.09,-0.18,-0.31}; - vector<double> v1 {0.08,0.09,0.09,0.12,0.2,0.27,0.32,0.46,0.39,0.2,0.16,0.13,0.08,-0.09,-0.16,-0.39}; - vector<double> v2 {0.11,0.11,0.12,0.13,0.18,0.21,0.25,0.38,0.28,0.15,0.11,0.1,0.12,-0.03,-0.09,-0.37}; - vector<double> v3 {0.04,0.03,0.04,0.03,0.09,0.11,0.14,0.23,0.15,0.06,0.03,0.04,0.02,-0.05,-0.07,-0.4}; - vector<double> v4 {-0.05,-0.07,-0.06,-0.07,0,0.01,0.01,0.12,0.02,-0.06,-0.05,-0.06,-0.05,-0.09,-0.12,-0.47}; + vector<double> v0 {0.14,0.12,0.12,0.17,0.26,0.3,0.3,0.42,0.38,0.19,0.16,0.15,0.52,0.59,0.62,0.33}; + vector<double> v1 {0.19,0.17,0.18,0.2,0.27,0.3,0.3,0.43,0.36,0.19,0.16,0.14,0.33,0.35,0.38,0.28}; + vector<double> v2 {0.13,0.11,0.11,0.13,0.17,0.19,0.18,0.28,0.21,0.11,0.09,0.08,0.12,0.09,0.12,0.17}; + vector<double> v3 {-0.01,-0.02,-0.02,-0.01,0.02,0.03,0.03,0.12,0.04,-0.04,-0.05,-0.06,-0.03,-0.06,-0.03,0.05}; + vector<double> v4 {-0.12,-0.12,-0.12,-0.11,-0.08,-0.07,-0.08,-0.01,-0.08,-0.14,-0.14,-0.15,-0.13,-0.15,-0.12,-0.04}; LUTKF.push_back(v0); LUTKF.push_back(v1); diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/share/L1TopoSimulationUtils_test.ref b/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/share/L1TopoSimulationUtils_test.ref index d1b6cc93a6e0..1f9caaf4de0d 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/share/L1TopoSimulationUtils_test.ref +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulationUtils/share/L1TopoSimulationUtils_test.ref @@ -3,6 +3,14 @@ delta eta: abs(0 - 23) = 23, cosh 000000001010000101 delta eta: abs(0 - 23) = 23, cosh 000000001010000101 delta eta: abs(0 - 24) = 24, cosh 000000001011000111 ** test2: L1TopoSimulationUtils KFLUT correction vs. et and eta** + et 4 [0], eta 2.4 [12] : 0.52 >>> + et 12 [0], eta 2.4 [12] : 0.52 >>> + et 4 [0], eta 2.6 [13] : 0.59 >>> + et 12 [0], eta 2.6 [13] : 0.59 >>> + et 4 [0], eta 2.9 [14] : 0.62 >>> + et 12 [0], eta 2.9 [14] : 0.62 >>> + et 4 [0], eta 3.1 [14] : 0.62 >>> + et 12 [0], eta 3.1 [14] : 0.62 >>> ** test3: L1TopoSimulationUtils KFLUT saturation** This out_of_range is expected for ET values beyond 1024 : vector::_M_range_check: __n (which is 5) >= this->size() (which is 5) ** test4: L1TopoSimulationUtils quadraticSumBW bitshift** -- GitLab From 2a1c0bbeb216f439bcacf94ff421b465d66752ec Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 11 Jan 2019 15:05:27 +0000 Subject: [PATCH 022/192] Fixing error in failure to remove conflict marker --- .../MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx index 3546b69dc8fd..d3759c58c2c9 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx @@ -5,14 +5,10 @@ #include "MuonCacheCreator.h" #include "MuonIdHelpers/MdtIdHelper.h" -<<<<<<< HEAD #include "MuonIdHelpers/CscIdHelper.h" #include "MuonIdHelpers/RpcIdHelper.h" #include "MuonIdHelpers/TgcIdHelper.h" - -======= #include "AthViews/View.h" ->>>>>>> ddcbbf851a894a70178cd50d03463be0dbb1f5d8 /// Constructor MuonCacheCreator::MuonCacheCreator(const std::string &name,ISvcLocator *pSvcLocator): -- GitLab From ffd32f6704f8576c659a9a1570aea2afbea7e10a Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Tue, 15 Jan 2019 14:08:23 +0100 Subject: [PATCH 023/192] Merge changes from Chuck's athenaprivate1 branch: new DQ framework --- .../python/AllConfigFlags.py | 13 + .../AthenaMonitoring/AthMonitorAlgorithm.h | 287 ++++++++++++++ .../ExampleMonitorAlgorithm.h | 25 ++ .../AthenaMonitoring/MonitoredScope.h | 18 +- .../python/AthMonitorCfgHelper.py | 51 +++ .../AthenaMonitoring/python/DQConfigFlags.py | 43 +++ .../python/GenericMonitoringTool.py | 4 +- Control/AthenaMonitoring/python/__init__.py | 2 + .../share/ExampleMonitorAlgorithm.py | 129 +++++++ .../src/AthMonitorAlgorithm.cxx | 365 ++++++++++++++++++ .../src/ExampleMonitorAlgorithm.cxx | 45 +++ .../components/AthenaMonitoring_entries.cxx | 2 + 12 files changed, 980 insertions(+), 4 deletions(-) create mode 100644 Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h create mode 100644 Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h create mode 100644 Control/AthenaMonitoring/python/AthMonitorCfgHelper.py create mode 100644 Control/AthenaMonitoring/python/DQConfigFlags.py create mode 100644 Control/AthenaMonitoring/python/__init__.py create mode 100644 Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py create mode 100644 Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx create mode 100644 Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index b4ab8c54cb17..aadef9ad1eec 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -40,6 +40,7 @@ def _createCfgFlags(): acf.addFlag('Output.RDOFileName','myROD.pool.root') acf.addFlag('Output.ESDFileName','myESD.pool.root') acf.addFlag('Output.AODFileName','myAOD.pool.root') + acf.addFlag('Output.HISTFileName','myHIST.root') #Geo Model Flags: @@ -97,6 +98,18 @@ def _createCfgFlags(): from MuonConfig.MuonConfigFlags import createMuonConfigFlags acf.join( createMuonConfigFlags() ) +# DQ + try: + import AthenaMonitoring # Suppress flake8 unused import warning: # noqa: F401 + haveDQConfig = True + except ImportError: + haveDQConfig = False + + if haveDQConfig: + from AthenaMonitoring.DQConfigFlags import createDQConfigFlags, createComplexDQConfigFlags + acf.join( createDQConfigFlags() ) + createComplexDQConfigFlags(acf) + return acf diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h new file mode 100644 index 000000000000..82a808ab6b60 --- /dev/null +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -0,0 +1,287 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +/** + * @class AthMonitorAlgorithm + * @author C. Burton <burton@utexas.edu> + * @author P. Onyisi <ponyisi@utexas.edu> + * @date 2018/12/31 + * @brief Base class for Athena Monitoring Algorithms + * + * A class in the AthenaMonitoring package which is subclassed to implement algorithms for + * the data monitoring system. An example subclass is given in ExampleMonitorAlgorithm. In + * the subclass, the user is required to implement the fillHistograms() function. + */ + +#ifndef ATHMONITORALGORITHM_H +#define ATHMONITORALGORITHM_H + +#include "AthenaBaseComps/AthReentrantAlgorithm.h" + +#include "AthenaMonitoring/GenericMonitoringTool.h" +#include "AthenaMonitoring/IDQFilterTool.h" +#include "AthenaMonitoring/IMonitorToolBase.h" +#include "AthenaMonitoring/ITriggerTranslatorTool.h" + +#include "LumiBlockComps/ILuminosityTool.h" +#include "TrigDecisionInterface/ITrigDecisionTool.h" +#include "LumiBlockComps/ITrigLivefractionTool.h" + +#include "StoreGate/ReadHandleKey.h" +#include "xAODEventInfo/EventInfo.h" + +class AthMonitorAlgorithm : public AthReentrantAlgorithm { +public: + + + /** + * Constructor + */ + AthMonitorAlgorithm(const std::string& name, ISvcLocator* pSvcLocator ); + + + /** + * Destructor + */ + virtual ~AthMonitorAlgorithm(); + + + /** + * initialize + * + * @return StatusCode + */ + virtual StatusCode initialize(); + + + /** + * Applies filters and trigger requirements. Then, calls fillHistograms(). + * + * @param ctx event context for reentrant Athena call + * @return StatusCode + */ + virtual StatusCode execute(const EventContext& ctx) const; + + + /** + * adds event to the monitoring histograms + * + * User will overwrite this function. Histogram booking is no longer done in C++. + * This function is called in execute once the filters are all passed. + * + * @param ctx forwarded from execute + * @return StatusCode + */ + virtual StatusCode fillHistograms(const EventContext& ctx) const = 0; + + + /** + * Specifies the processing environment. + * + * The running environment may be used to select which histograms are produced, and + * where they are located in the output. For example, the output paths of the + * histograms are different for the "user", "online" and the various offline flags. + * Strings of the same names may be given as jobOptions. + */ + enum class Environment_t { + user = 0, ///< + online, ///< + tier0, ///< + tier0Raw, ///< + tier0ESD, ///< + AOD, ///< + altprod, ///< + }; + + + /** + * Specifies what type of input data is being monitored. + * + * An enumeration of the different types of data the monitoring application may be + * running over. This can be used to select which histograms to produce, e.g. to + * prevent the production of colliding-beam histograms when running on cosmic-ray data. + * Strings of the same names may be given as jobOptions. + */ + enum class DataType_t { + userDefined = 0, ///< + monteCarlo, ///< + collisions, ///< + cosmics, ///< + heavyIonCollisions, ///< + }; + + + /** + * Accessor functions for the environment. + * + * @return the current value of the class's Environment_t instance. + */ + Environment_t environment() const; + + + /** + * Convert the environment string from the python configuration to an enum object. + * + * @return a value in the Environment_t enumeration which matches the input string. + */ + Environment_t envStringToEnum( const std::string& str ); + + + /** + * Accessor functions for the data type. + * + * @return the current value of the class's DataType_t instance. + */ + DataType_t dataType() const; + + + /** + * Convert the data type string from the python configuration to an enum object. + * + * @return a value in the DataType_t enumeration which matches the input string. + */ + DataType_t dataTypeStringToEnum( const std::string& str ); + + + /** + * Get a specific monitoring tool from the tool handle array. + * + * Finds a specific GenericMonitoringTool instance from the list of monitoring + * tools (a ToolHandleArray). Throws a FATAL warning if the object found is a + * null pointer. + * + * @param name string name of the desired tool + * @return reference to the desired monitoring tool + */ + GenericMonitoringTool& getGroup( const std::string& name ) const; + + + /** + * Get the trigger decision tool member. + * + * The trigger decision tool is used to check whether a specific trigger is + * passed by an event. + * + * @return m_trigDecTool + */ + const ToolHandle<Trig::ITrigDecisionTool>& getTrigDecisionTool(); + + + /** + * Check whether triggers are passed + * + * For the event, use the trigger decision tool to check that at least one + * of the triggers listed in the supplied vector is passed. + * + * @param vTrigNames List of trigger names. + * @return If empty input, default to true. If at least one trigger is + * specified, returns whether at least one trigger was passed. + */ + bool trigChainsArePassed( const std::vector<std::string>& vTrigNames ) const; + + /** + * Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) + * + * @param ctx EventContext for the event + * @return a SG::ReadHandle<xAOD::EventInfo> + */ + SG::ReadHandle<xAOD::EventInfo> GetEventInfo(const EventContext&) const; + + /** @defgroup lumi Luminosity Functions + * A group of functions which all deal with calculating luminosity. + * @{ + */ + + /** + * Calculate the average mu, i.e. <mu>. + */ + virtual float lbAverageInteractionsPerCrossing() const; + + /** + * Calculate instantaneous number of interactions, i.e. mu. + */ + virtual float lbInteractionsPerCrossing(); + + /** + * Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). + */ + virtual float lbAverageLuminosity(); + + /** + * Calculate the instantaneous luminosity per bunch crossing. + */ + virtual float lbLuminosityPerBCID(); + + /** + * Calculate the duration of the luminosity block (in seconds) + */ + virtual double lbDuration(); + + /** + * Calculate the average luminosity livefraction + */ + virtual float lbAverageLivefraction(); + + /** + * Calculate the live fraction per bunch crossing ID. + */ + virtual float livefractionPerBCID(); + + /** + * Calculate the average integrated luminosity multiplied by the live fraction. + */ + virtual double lbLumiWeight(); + + /** @} */ // end of lumi group + + + /** + * Parse a string into a vector + * + * The input string is a single long string of all of the trigger names. It parses this string + * and turns it into a vector, where each element is one trigger or trigger category. + * + * @param line The input string. + * @param result The parsed output vector of strings. + * @return StatusCode + */ + virtual StatusCode parseList( const std::string& line, std::vector<std::string>& result ); + + + /** + * Expands trigger categories. + * + * Searches through the vector of trigger names. If a trigger category is found, it finds the + * constituent triggers in that category and expands the vector to include each one. + * + * @param vTrigChainNames A vector of triggers which is modified. + */ + virtual void unpackTriggerCategories( std::vector<std::string>& vTrigChainNames ); + + +protected: + ToolHandleArray<GenericMonitoringTool> m_tools; ///< Array of Generic Monitoring Tools + ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool; ///< Tool to tell whether a specific trigger is passed + ToolHandle<ITriggerTranslatorTool> m_trigTranslator; ///< Tool to unpack trigger categories into a trigger list + ToolHandleArray<IDQFilterTool> m_DQFilterTools; ///< Array of Data Quality filter tools + ToolHandle<ILuminosityTool> m_lumiTool; ///< Tool for calculating various luminosity quantities + ToolHandle<ITrigLivefractionTool> m_liveTool; ///< Tool for calculating various live luminosity quantities + + AthMonitorAlgorithm::Environment_t m_environment; ///< Instance of the Environment_t enum + AthMonitorAlgorithm::DataType_t m_dataType; ///< Instance of the DataType_t enum + std::string m_environmentStr; ///< Environment string pulled from the job option and converted to enum + std::string m_dataTypeStr; ///< DataType string pulled from the job option and converted to enum + + std::string m_triggerChainString; ///< Trigger chain string pulled from the job option and parsed into a vector + std::vector<std::string> m_vTrigChainNames; ///< Vector of trigger chain names parsed from trigger chain string + + std::string m_fileKey; + bool m_hasRetrievedLumiTool; ///< Allows use of various luminosity functions + bool m_useLumi; ///< Allows use of various luminosity functions + float m_defaultLBDuration; ///< Default duration of one lumi block + int m_detailLevel; ///< Sets the level of detail used in the monitoring + SG::ReadHandleKey<xAOD::EventInfo> m_EventInfoKey; // key for retrieving EventInfo from StoreGate +}; + +#endif diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h new file mode 100644 index 000000000000..deb0a69dce9d --- /dev/null +++ b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h @@ -0,0 +1,25 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef EXAMPLEMONITORALGORITHM_H +#define EXAMPLEMONITORALGORITHM_H + +#include "AthenaMonitoring/AthMonitorAlgorithm.h" + +#include "AthenaMonitoring/MonitoredScope.h" +#include "AthenaMonitoring/MonitoredScalar.h" +#include "AthenaMonitoring/MonitoredCollection.h" + +#include "TRandom3.h" + +class ExampleMonitorAlgorithm : public AthMonitorAlgorithm { +public: + ExampleMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ); + virtual ~ExampleMonitorAlgorithm(); + StatusCode initialize(); + virtual StatusCode fillHistograms( const EventContext& ctx ) const override; +private: + bool m_doRandom; +}; +#endif \ No newline at end of file diff --git a/Control/AthenaMonitoring/AthenaMonitoring/MonitoredScope.h b/Control/AthenaMonitoring/AthenaMonitoring/MonitoredScope.h index 80b82b17ccbb..5350aa7a2917 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/MonitoredScope.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/MonitoredScope.h @@ -86,12 +86,24 @@ namespace Monitored { m_histogramsFillers(!m_tool.empty() ? m_tool->getHistogramsFillers(m_scopeMonitored) : std::vector<HistogramFiller*>()) { } }; + template <typename... T> + void save( GenericMonitoringTool& tool, T&&... variables ) { + for( auto filler: tool.getHistogramsFillers( {std::forward<T>(variables)...} ) ) { + filler->fill(); + } + } + + template <typename... T> + void save( GenericMonitoringTool* tool, T&&... variables ) { + if ( tool ) { + save( *tool, std::forward<T>(variables)...); + } + } + template <typename... T> void save( const ToolHandle<GenericMonitoringTool>& tool, T&&... variables ) { if ( ! tool.empty() ) { - for( auto filler: tool->getHistogramsFillers( {std::forward<T>(variables)...} ) ) { - filler->fill(); - } + save( *tool, std::forward<T>(variables)...); } } } diff --git a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py new file mode 100644 index 000000000000..6c2fff1bd8b6 --- /dev/null +++ b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py @@ -0,0 +1,51 @@ +# +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# + +class AthMonitorCfgHelper(object): + def __init__(self, inputFlags, monName): + from AthenaCommon.AlgSequence import AthSequencer + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + self.inputFlags = inputFlags + self.monName = monName + self.monSeq = AthSequencer('AthMonSeq_' + monName) + self.resobj = ComponentAccumulator() + + def AddAlgorithm(self,algClassOrObj, *args, **kwargs): + from AthenaCommon.Configurable import Configurable + if issubclass(algClassOrObj, Configurable): + algObj = algClassOrObj(*args, **kwargs) + else: + algObj = algClassOrObj + + # configure these properties; users really should have no reason to override them + algObj.Environment = self.inputFlags.DQ.Environment + algObj.DataType = self.inputFlags.DQ.DataType + + self.monSeq += algObj + return algObj + + def AddGroup(self, alg, name, topPath=''): + from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool + tool = GenericMonitoringTool(name) + acc, histsvc = GetDQTHistSvc(self.inputFlags) + self.resobj.merge(acc) + tool.THistSvc = histsvc + tool.HistPath = self.inputFlags.DQ.FileKey + ('/%s' % topPath if topPath else '') + alg.GMTools += [tool] + return tool + + def result(self): + self.resobj.addSequence(self.monSeq) + return self.resobj,self.monSeq + +def GetDQTHistSvc(inputFlags): + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + from GaudiSvc.GaudiSvcConf import THistSvc + + result = ComponentAccumulator() + histsvc = THistSvc() + histsvc.Output += ["%s DATAFILE='%s' OPT='RECREATE'" % (inputFlags.DQ.FileKey, + inputFlags.Output.HISTFileName)] + result.addService(histsvc) + return result, histsvc diff --git a/Control/AthenaMonitoring/python/DQConfigFlags.py b/Control/AthenaMonitoring/python/DQConfigFlags.py new file mode 100644 index 000000000000..0ded9232dfb6 --- /dev/null +++ b/Control/AthenaMonitoring/python/DQConfigFlags.py @@ -0,0 +1,43 @@ +# +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# + +from AthenaConfiguration.AthConfigFlags import AthConfigFlags + +def createDQConfigFlags(): + acf=AthConfigFlags() + acf.addFlag('DQ.doMonitoring', True) + acf.addFlag('DQ.doGlobalMon', True) + acf.addFlag('DQ.doStreamAwareMon', True) + acf.addFlag('DQ.disableAtlasReadyFilter', False) + acf.addFlag('DQ.FileKey', 'CombinedMonitoring') + return acf + +def createComplexDQConfigFlags( acf ): + acf.addFlag('DQ.Environment', getEnvironment ) + acf.addFlag('DQ.DataType', getDataType ) + +def getDataType(flags): + if flags.Input.isMC: + return 'monteCarlo' + elif (False): # this is the HI test, needs HI flags + return 'heavyioncollisions' + elif flags.Beam.Type == 'cosmics': + return 'cosmics' + elif flags.Beam.Type == 'collisions': + return 'collisions' + elif flags.Beam.Type == 'singlebeam': + # historically, singlebeam treated as collisions + return 'collisions' + else: + import logging + local_logger = logging.getLogger('DQConfigFlags_getDataType') + local_logger.warning('Unable to figure out beam type for DQ; using "user"') + return 'user' + +def getEnvironment(flags): + if flags.Common.isOnline: + return 'online' + else: + # this could use being rethought to properly encode input and output types perhaps ... + return 'tier0' diff --git a/Control/AthenaMonitoring/python/GenericMonitoringTool.py b/Control/AthenaMonitoring/python/GenericMonitoringTool.py index 5377698106e8..6ee23ef76637 100644 --- a/Control/AthenaMonitoring/python/GenericMonitoringTool.py +++ b/Control/AthenaMonitoring/python/GenericMonitoringTool.py @@ -13,6 +13,8 @@ class GenericMonitoringTool(_GenericMonitoringTool): def __init__(self, name, **kwargs): super(GenericMonitoringTool, self).__init__(name, **kwargs) + def defineHistogram(self, *args, **kwargs): + self.Histograms.append(defineHistogram(*args, **kwargs)) ## Generate histogram definition string for the `GenericMonitoringTool.Histograms` property # @@ -23,7 +25,7 @@ class GenericMonitoringTool(_GenericMonitoringTool): # @param title Histogram title and optional axis title (same syntax as in TH constructor) # @param opt Histrogram options (see GenericMonitoringTool) # @param labels List of bin labels (for a 2D histogram, sequential list of x- and y-axis labels) -def defineHistogram(varname, type='TH1F', path='EXPERT', +def defineHistogram(varname, type='TH1F', path='DEFAULT', title=None, xbins=100, xmin=0, xmax=1, ybins=None, ymin=None, ymax=None, zmin=None, zmax=None, opt='', labels=None): diff --git a/Control/AthenaMonitoring/python/__init__.py b/Control/AthenaMonitoring/python/__init__.py new file mode 100644 index 000000000000..3314d3063c52 --- /dev/null +++ b/Control/AthenaMonitoring/python/__init__.py @@ -0,0 +1,2 @@ +from AthMonitorCfgHelper import AthMonitorCfgHelper +from AtlasReadyFilterTool import GetAtlasReadyFilterTool diff --git a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py new file mode 100644 index 000000000000..b1072610c3a2 --- /dev/null +++ b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py @@ -0,0 +1,129 @@ +'''@file ExampleMonitorAlgorithm.py +@author C. D. Burton +@author P. Onyisi +@date 2018-01-11 +@brief Example python configuration for the Run III AthenaMonitoring package +''' + +def ExampleMonitoringConfig(inputFlags): + '''Function to configures some algorithms in the monitoring system.''' + + ### STEP 1 ### + # Define one top-level monitoring algorithm. The new configuration + # framework uses a component accumulator. + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + result = ComponentAccumulator() + + # The following class will make a sequence, configure algorithms, and link + # them to GenericMonitoringTools + from AthenaMonitoring import AthMonitorCfgHelper + helper = AthMonitorCfgHelper(inputFlags,"ExampleMonitor") + + + ### STEP 2 ### + # Adding an algorithm to the helper. Here, we will use the example + # algorithm in the AthenaMonitoring package. Just pass the type to the + # helper. Then, the helper will instantiate an instance and set up the + # base class configuration following the inputFlags. The returned object + # is the algorithm. + from AthenaMonitoring.AthenaMonitoringConf import ExampleMonitorAlgorithm + exampleMonAlg = helper.AddAlgorithm(ExampleMonitorAlgorithm) + + # You can actually make multiple instances of the same algorithm and give + # them different configurations + anotherExampleMonAlg = helper.AddAlgorithm(ExampleMonitorAlgorithm) + + # # If for some really obscure reason you need to instantiate an algorithm + # # yourself, the AddAlgorithm method will still configure the base + # # properties and add the algorithm to the monitoring sequence. + # helper.AddAlgorithm(myExistingAlg) + + + ### STEP 3 ### + # Edit properties of a algorithm, using inputFlags. + exampleMonAlg.FileKey = inputFlags.DQ.FileKey + exampleMonAlg.Environment = inputFlags.DQ.Environment + exampleMonAlg.DataType = inputFlags.DQ.DataType + + exampleMonAlg.TriggerChain = '' + exampleMonAlg.EnableLumi = True + + + ### STEP 4 ### + # Add some tools. N.B. Do not use your own trigger decion tool. Use the + # standard one that is included with AthMonitorAlgorithm. + + # # First, add a tool that's set up by a different configuration function. + # # In this case, CaloNoiseToolCfg returns its own component accumulator, + # # which must be merged with the one from this function. + # from CaloTools.CaloNoiseToolConfig import CaloNoiseToolCfg + # caloNoiseAcc, caloNoiseTool = CaloNoiseToolCfg(inputFlags) + # result.merge(caloNoiseAcc) + # exampleMonAlg.CaloNoiseTool = caloNoiseTool + + # # Then, add a tool that doesn't have its own configuration function. In + # # this example, no accumulator is returned, so no merge is necessary. + # from MyDomainPackage.MyDomainPackageConf import MyDomainTool + # exampleMonAlg.MyDomainTool = MyDomainTool() + + # Add a generic monitoring tool (a "group" in old language). The returned + # object here is the standard GenericMonitoringTool. + myGroup = helper.AddGroup( + exampleMonAlg, + "ExampleMonitor", + "OneRing/" + ) + + ### STEP 5 ### + # Configure histograms + myGroup.defineHistogram("lumiPerBCID;lumiPerBCID", title="Luminosity;L/BCID;Events", + path='ToRuleThemAll',xbins=10,xmin=0.0,xmax=10.0) + myGroup.defineHistogram("lb;lb", title="Luminosity Block;lb;Events", + path='ToFindThem',xbins=1000,xmin=-0.5,xmax=999.5) + myGroup.defineHistogram("random;random", title="LB;x;Events", + path='ToBringThemAll',xbins=30,xmin=0,xmax=1) + + ### STEP 6 ### + # Finalize. The return value should be a tuple of the ComponentAccumulator + # and the sequence containing the created algorithms. If we haven't called + # any configuration other than the AthMonitorCfgHelper here, then we can + # just return directly (and not create "result" above) + return helper.result() + + # # Otherwise, merge with result object and return + # acc, seq = helper.result() + # result.merge(acc) + # return result, seq + + +if __name__=='__main__': + # Setup the Run III behavior + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior = 1 + + # Setup logs + from AthenaCommon.Logging import log + from AthenaCommon.Constants import DEBUG,INFO + log.setLevel(INFO) + + # Set the Athena configuration flags + from AthenaConfiguration.AllConfigFlags import ConfigFlags + nightly = '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/' + file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1' + ConfigFlags.Input.Files = [nightly+file] + ConfigFlags.Input.isMC = False + ConfigFlags.DQ.FileKey = 'EXPERT' + ConfigFlags.Output.HISTFileName = 'ExampleMonitor.root' + ConfigFlags.lock() + + # Initialize configuration object, add accumulator, merge, and run. + from AthenaConfiguration.MainServicesConfig import MainServicesSerialCfg + from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg + cfg = MainServicesSerialCfg() + cfg.merge(PoolReadCfg(ConfigFlags)) + + exampleMonitorAcc,exampleMonitorAlg = ExampleMonitoringConfig(ConfigFlags) + exampleMonitorAlg.ClustersOutputName = ConfigFlags.DQ.FileKey + + cfg.merge(exampleMonitorAcc) + cfg.run() diff --git a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx new file mode 100644 index 000000000000..3fd5b2ce51c8 --- /dev/null +++ b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx @@ -0,0 +1,365 @@ +/* + Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +*/ + +#include "AthenaMonitoring/AthMonitorAlgorithm.h" + +AthMonitorAlgorithm::AthMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) +:AthReentrantAlgorithm(name,pSvcLocator) +,m_tools(this) +,m_trigDecTool("") +,m_trigTranslator("") +,m_DQFilterTools(this) +,m_lumiTool("LuminosityTool") +,m_liveTool("TrigLivefractionTool") +,m_environment(Environment_t::user) +,m_dataType(DataType_t::userDefined) +,m_environmentStr("user") +,m_dataTypeStr("userDefined") +,m_triggerChainString("") +,m_vTrigChainNames({}) +,m_fileKey("") +,m_hasRetrievedLumiTool(false) +,m_useLumi(false) +,m_defaultLBDuration(60.) +,m_detailLevel(1) +,m_EventInfoKey("EventInfo") +{ + // The following properties are set in the python configuration and + // picked up here to be converted into the method variables. For an + // explanation of each variable, see the header. + declareProperty("GMTools",m_tools); + declareProperty("TrigDecisionTool",m_trigDecTool); + declareProperty("TriggerTranslatorTool",m_trigTranslator); + declareProperty("FilterTools",m_DQFilterTools); + declareProperty("Environment",m_environmentStr); + declareProperty("DataType",m_dataTypeStr); + declareProperty("TriggerChain",m_triggerChainString); + declareProperty("FileKey",m_fileKey); + declareProperty("EnableLumi",m_useLumi); + declareProperty("DefaultLBDuration",m_defaultLBDuration); + declareProperty("DetailLevel",m_detailLevel); + declareProperty("EventInfoKey",m_EventInfoKey); +} + + +AthMonitorAlgorithm::~AthMonitorAlgorithm() {} + + +StatusCode AthMonitorAlgorithm::initialize() { + StatusCode sc; + + // Retrieve the generic monitoring tools (a ToolHandleArray) + if ( !m_tools.empty() ) { + sc = m_tools.retrieve(); + if ( !sc.isSuccess() ) { + ATH_MSG_ERROR("Unable to retrieve the generic monitoring tools." << endmsg); + } + } + + // Retrieve the trigger decision tool if requested + if ( !m_trigDecTool.empty() ) { + sc = m_trigDecTool.retrieve(); + if( !sc.isSuccess() ) { + ATH_MSG_ERROR("Unable to retrieve the TrigDecisionTool." << endmsg); + return sc; + } + + // If the trigger chain is specified, parse it into a list. + if ( m_triggerChainString!="" ) { + sc = parseList(m_triggerChainString,m_vTrigChainNames); + if ( !sc.isSuccess() ) { + ATH_MSG_WARNING("Error parsing trigger chain list, using empty list instead." << endmsg); + m_vTrigChainNames.clear(); + } + + // Then, retrieve the trigger translator if requested. Finally, convert + // into a usable format using the unpackTriggerCategories function. + if (!m_trigTranslator.empty()) { + sc = m_trigTranslator.retrieve(); + if ( !sc.isSuccess() ) { + ATH_MSG_ERROR("Unable to retrieve the TrigTranslatorTool." << endmsg); + return sc; + } + unpackTriggerCategories(m_vTrigChainNames); + } + } + } + + // Convert the data type and environment strings from the python configuration into the + // enum class types DataType_t and Environment_t + m_dataType = dataTypeStringToEnum(m_dataTypeStr); + m_environment = envStringToEnum(m_environmentStr); + + // Retrieve the luminosity tool if requested and whenever not using Monte Carlo + if (m_useLumi) { + if (m_dataType == DataType_t::monteCarlo) { + ATH_MSG_WARNING("Lumi tool requested, but AthMonitorAlgorithm is configured for MC. Disabling lumi tool."); + } else { + // Retrieve the luminosity and live fraction tools + StatusCode sc_lumiTool = m_lumiTool.retrieve(); + StatusCode sc_liveTool = m_liveTool.retrieve(); + + // Set m_hasRetrievedLumiTool to true if both tools are retrieved successfully + if ( sc_lumiTool.isSuccess() && sc_liveTool.isSuccess() ) { + m_hasRetrievedLumiTool = true; + } + } + } + + // get event info key + ATH_CHECK( m_EventInfoKey.initialize() ); + + // end of initialization + ATH_MSG_DEBUG("Exiting AthMonitorAlgorithm::initialize() successfully."); + return sc; +} + + +StatusCode AthMonitorAlgorithm::execute( const EventContext& ctx ) const { + + // Checks that all of the DQ filters are passed. If any one of the filters + // fails, return SUCCESS code and do not fill the histograms with the event. + for ( const auto& filterItr : m_DQFilterTools ) { + if (!filterItr->accept()) { + return StatusCode::SUCCESS; + } + } + + // Trigger: If there is a decision tool and the chains fail, skip the event. + if ( !m_trigDecTool.empty() && !trigChainsArePassed(m_vTrigChainNames) ) { + return StatusCode::SUCCESS; + } + + return fillHistograms(ctx); +} + +SG::ReadHandle<xAOD::EventInfo> AthMonitorAlgorithm::GetEventInfo( const EventContext& ctx ) const { + return SG::ReadHandle<xAOD::EventInfo>(m_EventInfoKey, ctx); +} + + +AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::environment() const { + return m_environment; +} + + +AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::envStringToEnum( const std::string& str ) { + // convert the string to all lowercase + std::string lowerCaseStr = str; + std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower); + + // check if it matches one of the enum choices + if( lowerCaseStr == "user" ) { + return Environment_t::user; + } else if( lowerCaseStr == "online" ) { + return Environment_t::online; + } else if( lowerCaseStr == "tier0" ) { + return Environment_t::tier0; + } else if( lowerCaseStr == "tier0raw" ) { + return Environment_t::tier0Raw; + } else if( lowerCaseStr == "tier0esd" ) { + return Environment_t::tier0ESD; + } else if( lowerCaseStr == "aod" ) { + return Environment_t::AOD; + } else if( lowerCaseStr == "altprod" ) { + return Environment_t::altprod; + } else { // otherwise, warn the user and return "user" + ATH_MSG_WARNING("AthMonitorAlgorithm::envStringToEnum(): Unknown environment " + <<str<<", returning user."<<endmsg); + return Environment_t::user; + } +} + + +AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataType() const { + return m_dataType; +} + + +AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataTypeStringToEnum( const std::string& str ) { + // convert the string to all lowercase + std::string lowerCaseStr = str; + std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower); + + // check if it matches one of the enum choices + if( lowerCaseStr == "userdefined" ) { + return DataType_t::userDefined; + } else if( lowerCaseStr == "montecarlo" ) { + return DataType_t::monteCarlo; + } else if( lowerCaseStr == "collisions" ) { + return DataType_t::collisions; + } else if( lowerCaseStr == "cosmics" ) { + return DataType_t::cosmics; + } else if( lowerCaseStr == "heavyioncollisions" ) { + return DataType_t::heavyIonCollisions; + } else { // otherwise, warn the user and return "userDefined" + ATH_MSG_WARNING("AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type " + <<str<<", returning userDefined."<<endmsg); + return DataType_t::userDefined; + } +} + + +GenericMonitoringTool& AthMonitorAlgorithm::getGroup( const std::string& name ) const { + // get the pointer to the tool, check that it exists, and return + GenericMonitoringTool* tool = &(*(*m_tools[name])); + if (tool == nullptr) { + ATH_MSG_FATAL("The tool "<<name<<" could not be found in the monitoring algorithm's tool array."<<endmsg); + } + return *tool; +} + + +const ToolHandle<Trig::ITrigDecisionTool>& AthMonitorAlgorithm::getTrigDecisionTool() { + return m_trigDecTool; +} + + +bool AthMonitorAlgorithm::trigChainsArePassed( const std::vector<std::string>& vTrigNames ) const { + // Check whether ANY of the triggers in the list are passed + for ( auto& trigName : vTrigNames ) { + if ( m_trigDecTool->isPassed(trigName) ) { + return true; + } + } + // If no triggers were given, return true. Otherwise, the trigger requirement failed + return vTrigNames.size()==0; +} + + +float AthMonitorAlgorithm::lbAverageInteractionsPerCrossing() const { + if ( m_hasRetrievedLumiTool ) { + return m_lumiTool->lbAverageInteractionsPerCrossing(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageInteractionsPerCrossing() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +float AthMonitorAlgorithm::lbInteractionsPerCrossing() { + if ( m_hasRetrievedLumiTool ) { + float instmu = 0.; + if (m_lumiTool->muToLumi() > 0.) { + instmu = m_lumiTool->lbLuminosityPerBCID()/m_lumiTool->muToLumi(); + } + return instmu; + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbInteractionsPerCrossing() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +float AthMonitorAlgorithm::lbAverageLuminosity() { + if ( m_hasRetrievedLumiTool ) { + return m_lumiTool->lbAverageLuminosity(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageLuminosity() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +float AthMonitorAlgorithm::lbLuminosityPerBCID() { + if ( m_hasRetrievedLumiTool ) { + return m_lumiTool->lbLuminosityPerBCID(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbLuminosityPerBCID() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +float AthMonitorAlgorithm::lbAverageLivefraction() { + if (m_environment == Environment_t::online) { + return 1.0; + } + + if ( m_hasRetrievedLumiTool ) { + return m_liveTool->lbAverageLivefraction(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageLivefraction() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +float AthMonitorAlgorithm::livefractionPerBCID() { + if (m_environment == Environment_t::online) { + return 1.0; + } + + if ( m_hasRetrievedLumiTool ) { + return m_liveTool->livefractionPerBCID(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::livefractionPerBCID() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +double AthMonitorAlgorithm::lbLumiWeight() { + if ( m_hasRetrievedLumiTool ) { + return (lbAverageLuminosity()*lbDuration())*lbAverageLivefraction(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbLumiWeight() - luminosity tools are not retrieved."); + return -1.0; + } +} + + +double AthMonitorAlgorithm::lbDuration() { + if ( m_environment == Environment_t::online ) { + return m_defaultLBDuration; + } + + if ( m_hasRetrievedLumiTool ) { + return m_lumiTool->lbDuration(); + } else { + ATH_MSG_DEBUG("AthMonitorAlgorithm::lbDuration() - luminosity tools are not retrieved."); + return m_defaultLBDuration; + } +} + + +StatusCode AthMonitorAlgorithm::parseList(const std::string& line, std::vector<std::string>& result) { + std::string item; + std::stringstream ss(line); + + ATH_MSG_DEBUG("AthMonitorAlgorithm::parseList()" << endmsg); + + while ( std::getline(ss, item, ',') ) { + std::stringstream iss(item); // remove whitespace + iss >> item; + result.push_back(item); + } + + return StatusCode::SUCCESS; +} + + +void AthMonitorAlgorithm::unpackTriggerCategories(std::vector<std::string>& vTrigChainNames) { + for (size_t i = 0; i < vTrigChainNames.size(); ++i) { + std::string& thisName = vTrigChainNames[i]; + + if (thisName.substr(0,9) == "CATEGORY_") { + ATH_MSG_DEBUG("Found a trigger category: " << thisName << ". Unpacking."); + std::vector<std::string> triggers = m_trigTranslator->translate(thisName.substr(9,std::string::npos)); + std::ostringstream oss; + oss << "("; + for (size_t itrig = 0; itrig < triggers.size(); ++itrig) { + if (itrig != 0) { + oss << "|"; + } + oss << triggers[itrig]; + } + oss << ")"; + // replace with new value + std::string newval = oss.str(); + ATH_MSG_DEBUG("Replaced with " << newval); + vTrigChainNames[i] = newval; + } + } +} diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx new file mode 100644 index 000000000000..a601db48bda7 --- /dev/null +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -0,0 +1,45 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "AthenaMonitoring/ExampleMonitorAlgorithm.h" + +ExampleMonitorAlgorithm::ExampleMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) +:AthMonitorAlgorithm(name,pSvcLocator) +,m_doRandom(false) +{ + declareProperty("RandomHist",m_doRandom); +} + + +ExampleMonitorAlgorithm::~ExampleMonitorAlgorithm() {} + + +StatusCode ExampleMonitorAlgorithm::initialize() { + return AthMonitorAlgorithm::initialize(); +} + + +StatusCode ExampleMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const { + using namespace Monitored; + + // Declare the quantities which should be monitored + auto lumiPerBCID = MonitoredScalar::declare<float>("lumiPerBCID",0.0); + auto lb = MonitoredScalar::declare<int>("lb",0); + auto random = MonitoredScalar::declare<float>("random",0.0); + + // Set the values of the monitored variables for the event + lumiPerBCID = lbAverageInteractionsPerCrossing(); + lb = GetEventInfo(ctx)->lumiBlock(); + if (m_doRandom) { + TRandom *r = new TRandom(); + random = r->Rndm(); + } + + // Use the getGroup method to get your instance of the GenericMonitoringTool by name + auto& tool = getGroup("ExampleMonitor"); + // Save. First argument is the tool, all others are the variables to be saved. + Monitored::save(&tool,lumiPerBCID,lb,random); + + return StatusCode::SUCCESS; +} diff --git a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx index c4924ca33ce2..a0d1219d16c8 100644 --- a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx +++ b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx @@ -8,6 +8,7 @@ #include "AthenaMonitoring/DQBadLBFilterAlg.h" #include "AthenaMonitoring/TriggerTranslatorSimple.h" #include "AthenaMonitoring/GenericMonitoringTool.h" +#include "AthenaMonitoring/ExampleMonitorAlgorithm.h" DECLARE_COMPONENT( AthenaMon ) @@ -20,3 +21,4 @@ DECLARE_COMPONENT( DQBadLBFilterTool ) DECLARE_COMPONENT( DQBadLBFilterAlg ) DECLARE_COMPONENT( TriggerTranslatorToolSimple ) DECLARE_COMPONENT( GenericMonitoringTool ) +DECLARE_COMPONENT( ExampleMonitorAlgorithm ) \ No newline at end of file -- GitLab From c59fa469b12df8244e0d2c503550afd6a9154fa6 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Tue, 15 Jan 2019 13:55:03 +0000 Subject: [PATCH 024/192] Another error missed in conflict resolution --- .../MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx index d3759c58c2c9..3572573b0e41 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.cxx @@ -55,13 +55,13 @@ StatusCode MuonCacheCreator::execute (const EventContext& ctx) const { } // Create the MDT cache container auto maxHashMDTs = m_mdtIdHelper->stationNameIndex("BME") != -1 ? m_mdtIdHelper->detectorElement_hash_max() : m_mdtIdHelper->module_hash_max(); - ATH_CHECK(CreateContainer(m_MdtCsmCacheKey, maxHashMDTs, ctx)); + ATH_CHECK(createContainer(m_MdtCsmCacheKey, maxHashMDTs, ctx)); // Create the CSC cache container - ATH_CHECK(CreateContainer(m_CscCacheKey, m_cscIdHelper->module_hash_max(), ctx)); + ATH_CHECK(createContainer(m_CscCacheKey, m_cscIdHelper->module_hash_max(), ctx)); // Create the RPC cache container - ATH_CHECK(CreateContainer(m_RpcCacheKey, m_rpcIdHelper->module_hash_max(), ctx)); + ATH_CHECK(createContainer(m_RpcCacheKey, m_rpcIdHelper->module_hash_max(), ctx)); // Create the TGC cache container - ATH_CHECK(CreateContainer(m_TgcCacheKey, m_tgcIdHelper->module_hash_max(), ctx)); + ATH_CHECK(createContainer(m_TgcCacheKey, m_tgcIdHelper->module_hash_max(), ctx)); ATH_MSG_INFO("Created cache container " << m_MdtCsmCacheKey); ATH_MSG_INFO("Created cache container " << m_CscCacheKey); -- GitLab From e1b9b054ecbb7e08ec827f8a039dbe9e6016e8a6 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Tue, 15 Jan 2019 08:28:32 -0600 Subject: [PATCH 025/192] add missing module in AthenaMonitoring __init__ --- Control/AthenaMonitoring/python/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Control/AthenaMonitoring/python/__init__.py b/Control/AthenaMonitoring/python/__init__.py index 3314d3063c52..be0edc4e5c56 100644 --- a/Control/AthenaMonitoring/python/__init__.py +++ b/Control/AthenaMonitoring/python/__init__.py @@ -1,2 +1,3 @@ from AthMonitorCfgHelper import AthMonitorCfgHelper from AtlasReadyFilterTool import GetAtlasReadyFilterTool +import DQConfigFlags -- GitLab From 8f8b06ba82db7c8794fff6a44196d12c220ea752 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Tue, 15 Jan 2019 08:33:40 -0600 Subject: [PATCH 026/192] make AthMonitorAlgorithm's lumi functions const --- .../AthenaMonitoring/AthMonitorAlgorithm.h | 14 +++++++------- .../AthenaMonitoring/src/AthMonitorAlgorithm.cxx | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h index 82a808ab6b60..96f3959ffd38 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -201,37 +201,37 @@ public: /** * Calculate instantaneous number of interactions, i.e. mu. */ - virtual float lbInteractionsPerCrossing(); + virtual float lbInteractionsPerCrossing() const; /** * Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). */ - virtual float lbAverageLuminosity(); + virtual float lbAverageLuminosity() const; /** * Calculate the instantaneous luminosity per bunch crossing. */ - virtual float lbLuminosityPerBCID(); + virtual float lbLuminosityPerBCID() const; /** * Calculate the duration of the luminosity block (in seconds) */ - virtual double lbDuration(); + virtual double lbDuration() const; /** * Calculate the average luminosity livefraction */ - virtual float lbAverageLivefraction(); + virtual float lbAverageLivefraction() const; /** * Calculate the live fraction per bunch crossing ID. */ - virtual float livefractionPerBCID(); + virtual float livefractionPerBCID() const; /** * Calculate the average integrated luminosity multiplied by the live fraction. */ - virtual double lbLumiWeight(); + virtual double lbLumiWeight() const; /** @} */ // end of lumi group diff --git a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx index 3fd5b2ce51c8..487923e14365 100644 --- a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx @@ -238,7 +238,7 @@ float AthMonitorAlgorithm::lbAverageInteractionsPerCrossing() const { } -float AthMonitorAlgorithm::lbInteractionsPerCrossing() { +float AthMonitorAlgorithm::lbInteractionsPerCrossing() const { if ( m_hasRetrievedLumiTool ) { float instmu = 0.; if (m_lumiTool->muToLumi() > 0.) { @@ -252,7 +252,7 @@ float AthMonitorAlgorithm::lbInteractionsPerCrossing() { } -float AthMonitorAlgorithm::lbAverageLuminosity() { +float AthMonitorAlgorithm::lbAverageLuminosity() const { if ( m_hasRetrievedLumiTool ) { return m_lumiTool->lbAverageLuminosity(); } else { @@ -262,7 +262,7 @@ float AthMonitorAlgorithm::lbAverageLuminosity() { } -float AthMonitorAlgorithm::lbLuminosityPerBCID() { +float AthMonitorAlgorithm::lbLuminosityPerBCID() const { if ( m_hasRetrievedLumiTool ) { return m_lumiTool->lbLuminosityPerBCID(); } else { @@ -272,7 +272,7 @@ float AthMonitorAlgorithm::lbLuminosityPerBCID() { } -float AthMonitorAlgorithm::lbAverageLivefraction() { +float AthMonitorAlgorithm::lbAverageLivefraction() const { if (m_environment == Environment_t::online) { return 1.0; } @@ -286,7 +286,7 @@ float AthMonitorAlgorithm::lbAverageLivefraction() { } -float AthMonitorAlgorithm::livefractionPerBCID() { +float AthMonitorAlgorithm::livefractionPerBCID() const { if (m_environment == Environment_t::online) { return 1.0; } @@ -300,7 +300,7 @@ float AthMonitorAlgorithm::livefractionPerBCID() { } -double AthMonitorAlgorithm::lbLumiWeight() { +double AthMonitorAlgorithm::lbLumiWeight() const { if ( m_hasRetrievedLumiTool ) { return (lbAverageLuminosity()*lbDuration())*lbAverageLivefraction(); } else { @@ -310,7 +310,7 @@ double AthMonitorAlgorithm::lbLumiWeight() { } -double AthMonitorAlgorithm::lbDuration() { +double AthMonitorAlgorithm::lbDuration() const { if ( m_environment == Environment_t::online ) { return m_defaultLBDuration; } -- GitLab From 1ae7a610f7dbecb1a1a1058fd205712940f0f7b0 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Wed, 16 Jan 2019 04:55:29 -0600 Subject: [PATCH 027/192] update copyright statements --- Control/AthenaConfiguration/python/AllConfigFlags.py | 2 +- .../AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h | 2 +- .../AthenaMonitoring/ExampleMonitorAlgorithm.h | 2 +- Control/AthenaMonitoring/python/AthMonitorCfgHelper.py | 2 +- Control/AthenaMonitoring/python/DQConfigFlags.py | 2 +- Control/AthenaMonitoring/python/__init__.py | 4 ++++ Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py | 4 ++++ Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx | 2 +- Control/AthenaMonitoring/src/AthenaMonManager.cxx | 2 +- Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx | 2 +- .../src/components/AthenaMonitoring_entries.cxx | 4 ++++ 11 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index aadef9ad1eec..135e9ca10c1e 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.AthConfigFlags import AthConfigFlags from AthenaCommon.SystemOfUnits import TeV diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h index 96f3959ffd38..11c0542fb48c 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h index deb0a69dce9d..0c6f77662709 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef EXAMPLEMONITORALGORITHM_H diff --git a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py index 6c2fff1bd8b6..16a4ea893376 100644 --- a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py +++ b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # class AthMonitorCfgHelper(object): diff --git a/Control/AthenaMonitoring/python/DQConfigFlags.py b/Control/AthenaMonitoring/python/DQConfigFlags.py index 0ded9232dfb6..1d19f8c68030 100644 --- a/Control/AthenaMonitoring/python/DQConfigFlags.py +++ b/Control/AthenaMonitoring/python/DQConfigFlags.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # from AthenaConfiguration.AthConfigFlags import AthConfigFlags diff --git a/Control/AthenaMonitoring/python/__init__.py b/Control/AthenaMonitoring/python/__init__.py index be0edc4e5c56..a97b74013952 100644 --- a/Control/AthenaMonitoring/python/__init__.py +++ b/Control/AthenaMonitoring/python/__init__.py @@ -1,3 +1,7 @@ +# +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# + from AthMonitorCfgHelper import AthMonitorCfgHelper from AtlasReadyFilterTool import GetAtlasReadyFilterTool import DQConfigFlags diff --git a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py index b1072610c3a2..5ddbdbe8b33e 100644 --- a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py +++ b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py @@ -1,3 +1,7 @@ +# +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# + '''@file ExampleMonitorAlgorithm.py @author C. D. Burton @author P. Onyisi diff --git a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx index 487923e14365..a6b28b2f1312 100644 --- a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "AthenaMonitoring/AthMonitorAlgorithm.h" diff --git a/Control/AthenaMonitoring/src/AthenaMonManager.cxx b/Control/AthenaMonitoring/src/AthenaMonManager.cxx index 811743a9ce84..d2207e7825b7 100755 --- a/Control/AthenaMonitoring/src/AthenaMonManager.cxx +++ b/Control/AthenaMonitoring/src/AthenaMonManager.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ********************************************************************** diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index a601db48bda7..fdea06f7b187 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "AthenaMonitoring/ExampleMonitorAlgorithm.h" diff --git a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx index a0d1219d16c8..ed03084a43a2 100644 --- a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx +++ b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx @@ -1,3 +1,7 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + #include "AthenaMonitoring/AthenaMon.h" #include "AthenaMonitoring/AthenaMonManager.h" #include "AthenaMonitoring/ManagedMonitorToolTest.h" -- GitLab From 204dcb50cfd070b9cce9eea3ce36f1ba266ed12a Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Wed, 16 Jan 2019 12:08:49 -0600 Subject: [PATCH 028/192] fix memory leak --- Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py | 2 -- Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py index 5ddbdbe8b33e..bc4d49131617 100644 --- a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py +++ b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py @@ -116,7 +116,6 @@ if __name__=='__main__': file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1' ConfigFlags.Input.Files = [nightly+file] ConfigFlags.Input.isMC = False - ConfigFlags.DQ.FileKey = 'EXPERT' ConfigFlags.Output.HISTFileName = 'ExampleMonitor.root' ConfigFlags.lock() @@ -127,7 +126,6 @@ if __name__=='__main__': cfg.merge(PoolReadCfg(ConfigFlags)) exampleMonitorAcc,exampleMonitorAlg = ExampleMonitoringConfig(ConfigFlags) - exampleMonitorAlg.ClustersOutputName = ConfigFlags.DQ.FileKey cfg.merge(exampleMonitorAcc) cfg.run() diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index fdea06f7b187..58b7784ee03e 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -32,8 +32,8 @@ StatusCode ExampleMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co lumiPerBCID = lbAverageInteractionsPerCrossing(); lb = GetEventInfo(ctx)->lumiBlock(); if (m_doRandom) { - TRandom *r = new TRandom(); - random = r->Rndm(); + TRandom r; + random = r.Rndm(); } // Use the getGroup method to get your instance of the GenericMonitoringTool by name -- GitLab From 9924ac8e0f5ce342d18f2734a43fef3922a7a11a Mon Sep 17 00:00:00 2001 From: Krzysztof Jamrog <krzysztof.piotr.jamrog@cern.ch> Date: Wed, 16 Jan 2019 21:25:40 +0100 Subject: [PATCH 029/192] HypoTools merging logic --- .../python/ComponentAccumulator.py | 35 ++++++++++++------- .../python/UnifyProperties.py | 35 +++++++++++++++---- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py index 7a4b1db8b764..4bad9da69a7b 100644 --- a/Control/AthenaConfiguration/python/ComponentAccumulator.py +++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py @@ -11,7 +11,7 @@ from GaudiKernel.GaudiHandles import PublicToolHandle, PublicToolHandleArray, Se import ast import collections -from UnifyProperties import unifyProperty, unifySet +from UnifyProperties import unifyProperty, unifySet, matchProperty class DeduplicationFailed(RuntimeError): @@ -175,8 +175,12 @@ class ComponentAccumulator(object): for algo in algorithms: if not isinstance(algo, ConfigurableAlgorithm): raise TypeError("Attempt to add wrong type: %s as event algorithm" % type( algo ).__name__) - - seq+=algo #TODO: Deduplication necessary? + + existingAlg = findAlgorithm(seq, algo.getName()) + if existingAlg: + self._deduplicateComponent(algo, existingAlg) + else: + seq+=algo #TODO: Deduplication necessary? pass return None @@ -271,11 +275,13 @@ class ComponentAccumulator(object): if type(oldprop) != type(newprop): raise DeduplicationFailed(" '%s' defined multiple times with conflicting types %s and %s" % \ (comp.getJobOptName(),type(oldprop),type(newprop))) - + + propid = "%s.%s" % (comp.getType(), str(prop)) + #Note that getattr for a list property works, even if it's not in ValuedProperties if (oldprop!=newprop): #found property mismatch - if isinstance(oldprop,PublicToolHandle) or isinstance(oldprop,ServiceHandle): + if isinstance(oldprop,PublicToolHandle) or isinstance(oldprop,ServiceHandle): if oldprop.getFullName()==newprop.getFullName(): # For public tools/services we check only their full name because they are already de-duplicated in addPublicTool/addSerivce continue @@ -283,24 +289,29 @@ class ComponentAccumulator(object): raise DeduplicationFailed("PublicToolHandle / ServiceHandle '%s.%s' defined multiple times with conflicting values %s and %s" % \ (comp.getJobOptName(),oldprop.getFullName(),newprop.getFullName())) elif isinstance(oldprop,PublicToolHandleArray): - for newtool in newprop: - if newtool not in oldprop: - oldprop+=[newtool,] - continue + for newtool in newprop: + if newtool not in oldprop: + oldprop+=[newtool,] + continue elif isinstance(oldprop,ConfigurableAlgTool): self._deduplicateComponent(oldprop,newprop) pass elif isinstance(oldprop,GaudiHandles.GaudiHandleArray): + + if matchProperty(propid): + mergeprop = unifyProperty(propid, oldprop, newprop) + setattr(comp, prop, mergeprop) + continue + for newTool in newprop: self._deduplicate(newTool,oldprop) pass elif isinstance(oldprop,list): #if properties are mergeable, do that! - propid="%s.%s" % (comp.getType(),str(prop)) #Try merging this property. Will raise on failure mergeprop=unifyProperty(propid,oldprop,newprop) setattr(comp,prop,mergeprop) elif isinstance(oldprop,dict): #Dicts/maps can be unified - #find conflicting keys + #find conflicting keys doubleKeys= set(oldprop.keys()) & set(prop.keys()) for k in doubleKeys(): if oldprop[k]!= prop[k]: @@ -427,7 +438,7 @@ class ComponentAccumulator(object): existingAlg = findAlgorithm( dest, c.name(), depth=1 ) if existingAlg: if existingAlg != c: # if it is the same we can just skip it, else this indicates an error - raise ConfigurationError( "Duplicate algorithm %s in source and destination sequences %s" % ( c.name(), src.name() ) ) + self._deduplicate(c, existingAlg) else: # absent, adding self._msg.debug(" Merging algorithm %s to a sequence %s", c.name(), dest.name() ) dest += c diff --git a/Control/AthenaConfiguration/python/UnifyProperties.py b/Control/AthenaConfiguration/python/UnifyProperties.py index e75ac7e02eb5..dbbb6d968d1a 100644 --- a/Control/AthenaConfiguration/python/UnifyProperties.py +++ b/Control/AthenaConfiguration/python/UnifyProperties.py @@ -48,20 +48,43 @@ _propsToUnify={"GeoModelSvc.DetectorTools":unifySet, "AtRndmGenSvc.Seeds": unifySet, } -def matchPropName(propname): + +def getUnificationKey(propname): if propname in _propsToUnify: - return True + return propname try: objectName, variableName = propname.split('.')[-2:] - return '*.{}'.format(variableName) in _propsToUnify or '{}.*'.format(objectName) in _propsToUnify + + matchingByVariable = '*.{}'.format(variableName) + if matchingByVariable in _propsToUnify: + return matchingByVariable + + matchingByObject = '{}.*'.format(objectName) + if matchingByObject in _propsToUnify: + return matchingByObject + except: - return False + pass + + return None + + +def matchProperty(propname): + return getUnificationKey(propname) is not None + + +def getUnificationFunc(propname): + unificationKey = getUnificationKey(propname) + if unificationKey is None: + return None + return _propsToUnify[unificationKey] def unifyProperty(propname,prop1,prop2): - if not matchPropName(propname): + unificationFunc = getUnificationFunc(propname) + if unificationFunc is None: from AthenaConfiguration.ComponentAccumulator import DeduplicationFailed raise DeduplicationFailed("List property %s defined multiple times with conflicting values.\n " % propname \ + str(prop1) +"\n and \n" +str(prop2) \ + "\nIf this property should be merged, consider adding it to AthenaConfiguration/UnifyProperties.py") - return _propsToUnify[propname](prop1,prop2) + return unificationFunc(prop1,prop2) -- GitLab From 560d47e8abe96292b1de3c4d43c2c426b074fc30 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 17 Jan 2019 12:42:14 +0100 Subject: [PATCH 030/192] Added the -x argument for the build scripts of AnalysisBase. Now that that argument exists for the other projects as well. --- Projects/AnalysisBase/build.sh | 11 ++++++++--- Projects/AnalysisBase/build_externals.sh | 15 +++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Projects/AnalysisBase/build.sh b/Projects/AnalysisBase/build.sh index e6f04f22b375..97717bd1f5b5 100755 --- a/Projects/AnalysisBase/build.sh +++ b/Projects/AnalysisBase/build.sh @@ -8,12 +8,13 @@ _time_() { local c="time -p " ; while test "X$1" != "X" ; do c+=" \"$1\"" ; shif # Function printing the usage information for the script usage() { - echo "Usage: build.sh [-t type] [-b dir] [-g generator] [-c] [-m] [-i] [-p] [-a]" + echo "Usage: build.sh [-t type] [-b dir] [-g generator] [-c] [-m] [-i] [-p] [-a] [-x opt]" echo "" echo " General flags:" echo " -t: The (optional) CMake build type to use." echo " -b: The (optional) build directory to use." echo " -g: The (optional) CMake generator to use." + echo " -x: Custom argument(s) to pass to the CMake configuration" echo " -a: Abort on error." echo " Build step selection:" echo " -c: Execute the CMake step." @@ -35,7 +36,8 @@ EXE_MAKE="" EXE_INSTALL="" EXE_CPACK="" NIGHTLY=true -while getopts ":t:b:g:hcmipa" opt; do +EXTRACMAKE=() +while getopts ":t:b:g:hcmipax:" opt; do case $opt in t) BUILDTYPE=$OPTARG @@ -61,6 +63,9 @@ while getopts ":t:b:g:hcmipa" opt; do a) NIGHTLY=false ;; + x) + EXTRACMAKE+=($OPTARG) + ;; h) usage exit 0 @@ -122,7 +127,7 @@ if [ -n "$EXE_CMAKE" ]; then # Now run the actual CMake configuration: _time_ cmake -G "${GENERATOR}" \ -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \ - ${USE_LAUNCHERS} \ + ${USE_LAUNCHERS} ${EXTRACMAKE[@]} \ ${AnalysisBaseSrcDir} 2>&1 | tee cmake_config.log fi diff --git a/Projects/AnalysisBase/build_externals.sh b/Projects/AnalysisBase/build_externals.sh index 234b2db78b24..26089095a33d 100755 --- a/Projects/AnalysisBase/build_externals.sh +++ b/Projects/AnalysisBase/build_externals.sh @@ -8,11 +8,13 @@ set -e # Function printing the usage information for the script usage() { - echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c]" + echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-x opt]" echo " -f: Force rebuild of externals, otherwise if script" echo " finds an external build present it will simply exit" echo " -c: Build the externals for the continuous integration (CI) system," echo " skipping the build of the externals RPMs." + echo " -x: Extra cmake argument(s) to provide for the build(configuration)" + echo " of all externals needed by Athena." echo "If a build_dir is not given the default is '../build'" echo "relative to the athena checkout" } @@ -22,7 +24,8 @@ BUILDDIR="" BUILDTYPE="RelWithDebInfo" FORCE="" CI="" -while getopts ":t:b:fch" opt; do +EXTRACMAKE=() +while getopts ":t:b:x:fch" opt; do case $opt in t) BUILDTYPE=$OPTARG @@ -36,6 +39,9 @@ while getopts ":t:b:fch" opt; do c) CI="1" ;; + x) + EXTRACMAKE+=($OPTARG) + ;; h) usage exit 0 @@ -95,12 +101,13 @@ fi # Read in the tag/branch to use for AnalysisBaseExternals: AnalysisBaseExternalsVersion=$(awk '/^AnalysisBaseExternalsVersion/{print $3}' ${thisdir}/externals.txt) +# Stop on all errors in the following (piped) commands: set -o pipefail # Check out AnalysisBaseExternals from the right branch/tag: ${scriptsdir}/checkout_atlasexternals.sh \ -t ${AnalysisBaseExternalsVersion} \ - -s ${BUILDDIR}/src/AnalysisBaseExternals 2>&1 | tee ${BUILDDIR}/src/checkout.AnalysisBaseExternals.log + -s ${BUILDDIR}/src/AnalysisBaseExternals 2>&1 | tee ${BUILDDIR}/src/checkout.AnalysisBaseExternals.log # Build AnalysisBaseExternals: export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AnalysisBaseExternals @@ -109,4 +116,4 @@ ${scriptsdir}/build_atlasexternals.sh \ -b ${BUILDDIR}/build/AnalysisBaseExternals \ -i ${BUILDDIR}/install/AnalysisBaseExternals/${NICOS_PROJECT_VERSION} \ -p AnalysisBaseExternals ${RPMOPTIONS} -t ${BUILDTYPE} \ - -v ${NICOS_PROJECT_VERSION} + -v ${NICOS_PROJECT_VERSION} ${EXTRACMAKE[@]/#/-x } -- GitLab From 2ecaaf7c6713be8970355254131b14a28dfde703 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 18 Jan 2019 14:09:30 +0000 Subject: [PATCH 031/192] Fix missing StatusCode check when adding to container --- .../MuonCSC_CnvTools/src/CscROD_Decoder.cxx | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx index 673840e401fc..bb76d1695d24 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscROD_Decoder.cxx @@ -515,7 +515,11 @@ void Muon::CscROD_Decoder::rodVersion2(const ROBFragment& robFrag, CscRawDataCo } if(rawCollection) { - lock.addOrDelete(std::move( rawCollection ) ); + StatusCode status_lock = lock.addOrDelete(std::move( rawCollection ) ); + if (status_lock.isFailure()) { + ATH_MSG_ERROR ( "Could not insert CscRawDataCollection into CscRawDataContainer..." ); + return; + } } ATH_MSG_DEBUG ( "end of CscROD_Decode::fillCollection()" ); @@ -649,8 +653,13 @@ void Muon::CscROD_Decoder::rodVersion1(const ROBFragment& robFrag, CscRawDataCo if (i < (size-rodFooter)) dpuFragment = rodReadOut.isDPU(p[i]); numberOfDPU++; } + if(rawCollection) { - lock.addOrDelete(std::move( rawCollection ) ); + StatusCode status_lock = lock.addOrDelete(std::move( rawCollection ) ); + if (status_lock.isFailure()) { + ATH_MSG_ERROR ( "Could not insert CscRawDataCollection into CscRawDataContainer..." ); + return; + } } return; @@ -751,9 +760,15 @@ void Muon::CscROD_Decoder::rodVersion0(const ROBFragment& robFrag, CscRawDataCo // check that the new fragment is body bodyFragment = rodReadOut.isBody(p[i]); } + if(rawCollection) { - lock.addOrDelete(std::move( rawCollection ) ); + StatusCode status_lock = lock.addOrDelete(std::move( rawCollection ) ); + if (status_lock.isFailure()) { + ATH_MSG_ERROR ( "Could not insert CscRawDataCollection into CscRawDataContainer..." ); + return; + } } + return; } -- GitLab From 36911c01375f4fc7e49ed8a5e29d830f7b9541d2 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 18 Jan 2019 17:20:22 +0000 Subject: [PATCH 032/192] Adding a test for the caching which won't conflict with existing one --- MuonSpectrometer/MuonConfig/CMakeLists.txt | 6 ++++++ .../python/MuonBytestreamDecodeConfig.py | 3 ++- .../MuonConfig/python/MuonRdoDecodeConfig.py | 13 ++++++++++--- .../MuonConfig/test/testMuonDataDecode_Cache.sh | 14 ++++++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100755 MuonSpectrometer/MuonConfig/test/testMuonDataDecode_Cache.sh diff --git a/MuonSpectrometer/MuonConfig/CMakeLists.txt b/MuonSpectrometer/MuonConfig/CMakeLists.txt index 084623f6fef6..651d53e6a032 100644 --- a/MuonSpectrometer/MuonConfig/CMakeLists.txt +++ b/MuonSpectrometer/MuonConfig/CMakeLists.txt @@ -17,6 +17,12 @@ atlas_add_test( MuonDataDecodeTest EXTRA_PATTERNS "GeoModelSvc.MuonDetectorTool.*SZ=|Cache alignment|Range of input|recorded new|map from" SCRIPT test/testMuonDataDecode.sh ) +# Adding an identical test for the ByteStream identifiable caches (and future RDO caches) +atlas_add_test( MuonDataDecodeTest_Cache + PROPERTIES TIMEOUT 1000 + EXTRA_PATTERNS "GeoModelSvc.MuonDetectorTool.*SZ=|Cache alignment|Range of input|recorded new|map from" + SCRIPT test/testMuonDataDecode_Cache.sh ) + atlas_add_test( MuonCablingConfigTest SCRIPT python -m MuonConfig.MuonCablingConfig POST_EXEC_SCRIPT nopost.sh ) diff --git a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py index 8fc7bf04f710..bd0428cd172d 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py @@ -158,7 +158,8 @@ def CscBytestreamDecodeCfg(flags, forTrigger=False): # Setup the RAW data provider tool from MuonCSC_CnvTools.MuonCSC_CnvToolsConf import Muon__CSC_RawDataProviderTool MuonCscRawDataProviderTool = Muon__CSC_RawDataProviderTool(name = "CSC_RawDataProviderTool", - Decoder = CSCRodDecoder ) + Decoder = CSCRodDecoder, + OutputLevel = VERBOSE) if forTrigger: MuonCscRawDataProviderTool.CscContainerCacheKey = "CscCache" diff --git a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py index 4f8971276487..b9dbefe7a6a4 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py @@ -148,7 +148,8 @@ def CscClusterBuildCfg(flags, forTrigger=False): # This function runs the decoding on a data file -def muonRdoDecodeTestData(): +def muonRdoDecodeTestData( forTrigger = False ): + # Add a flag, forTrigger, which will initially put the ByteStreamDecodeCfg code into "Cached Container" mode from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior=1 @@ -174,6 +175,12 @@ def muonRdoDecodeTestData(): from ByteStreamCnvSvc.ByteStreamConfig import TrigBSReadCfg cfg.merge(TrigBSReadCfg(ConfigFlags )) + # Setup IdentifiableCaches before anything else + from MuonConfig.MuonBytestreamDecodeConfig import MuonCacheCfg + muoncacheacc, muoncachealg = MuonCacheCfg() + cfg.merge( muoncacheacc ) + cfg.addEventAlgo( muoncachealg ) + # Schedule Rpc bytestream data decoding - once mergeAll is working can simplify these lines from MuonConfig.MuonBytestreamDecodeConfig import RpcBytestreamDecodeCfg rpcdecodingAcc, rpcdecodingAlg = RpcBytestreamDecodeCfg( ConfigFlags ) @@ -187,12 +194,12 @@ def muonRdoDecodeTestData(): cfg.addEventAlgo( tgcdecodingAlg ) from MuonConfig.MuonBytestreamDecodeConfig import MdtBytestreamDecodeCfg - mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags ) + mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags, forTrigger ) cfg.merge( mdtdecodingAcc ) cfg.addEventAlgo( mdtdecodingAlg ) from MuonConfig.MuonBytestreamDecodeConfig import CscBytestreamDecodeCfg - cscdecodingAcc, cscdecodingAlg = CscBytestreamDecodeCfg( ConfigFlags ) + cscdecodingAcc, cscdecodingAlg = CscBytestreamDecodeCfg( ConfigFlags, forTrigger ) cfg.merge( cscdecodingAcc ) cfg.addEventAlgo( cscdecodingAlg ) diff --git a/MuonSpectrometer/MuonConfig/test/testMuonDataDecode_Cache.sh b/MuonSpectrometer/MuonConfig/test/testMuonDataDecode_Cache.sh new file mode 100755 index 000000000000..32058eff9f56 --- /dev/null +++ b/MuonSpectrometer/MuonConfig/test/testMuonDataDecode_Cache.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +python -c 'from MuonConfig.MuonRdoDecodeConfig import muonRdoDecodeTestData; muonRdoDecodeTestData( True )'# generate pickle +status=$? +if [ ${status} -ne 0 ] +then + echo "ERROR in configuration generation stage, stopping" + exit -1 +else + echo + echo "JOs reading stage finished, launching Athena from pickle file" + echo + athena --threads=1 --evtMax=20 MuonRdoDecode.pkl +fi -- GitLab From 1e2f15154fc1228b019182742b7dd34fbc68276f Mon Sep 17 00:00:00 2001 From: Dmitry Popov <dmitry.popov@cern.ch> Date: Mon, 21 Jan 2019 13:11:41 +0000 Subject: [PATCH 033/192] Fixed L1TriggerTowerTool usage in TrigT1CaloMonitoring --- .../share/TrigT1CaloMonitoring_forRecExCommission_Run2.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py index a66a45d1cb7c..2bde474a0d54 100755 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/share/TrigT1CaloMonitoring_forRecExCommission_Run2.py @@ -106,8 +106,7 @@ if l1caloRawMon: if athenaCommonFlags.isOnline: from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool theBCTool = BunchCrossingTool() - # ToolSvc += theBCTool - L1CaloMan.AthenaMonTools += [theBCTool] + ToolSvc += theBCTool L1PPrStabilityMonTool.BunchCrossingTool = theBCTool else: @@ -183,11 +182,9 @@ if l1caloRawMon: PPMSimBSMonTool = LVL1__PPMSimBSMon("PPMSimBSMonTool") #ToolSvc += PPMSimBSMonTool L1CaloMan.AthenaMonTools += [PPMSimBSMonTool] - #ToolSvc.PPMSimBSMonTool.OutputLevel = DEBUG from TrigT1CaloTools.TrigT1CaloToolsConf import LVL1__L1TriggerTowerTool L1TriggerTowerTool = LVL1__L1TriggerTowerTool("L1TriggerTowerTool") - # ToolSvc += L1TriggerTowerTool - L1CaloMan.AthenaMonTools += [L1TriggerTowerTool] + ToolSvc += L1TriggerTowerTool from TrigT1CaloCondSvc.TrigT1CaloCondSvcConf import L1CaloCondSvc ServiceMgr += L1CaloCondSvc() from IOVDbSvc.CondDB import conddb -- GitLab From 4b99aef2f9cc564b8d41d397aab3e6820f4d741c Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 21 Jan 2019 15:21:31 +0000 Subject: [PATCH 034/192] adding a new ctest and moving issues relating to the cache creator into the new test which we can use to verify that things don't change with old or new setups --- .../python/MuonBytestreamDecodeConfig.py | 6 +- .../MuonConfig/python/MuonRdoDecodeConfig.py | 10 +- .../MuonConfig/share/MuonDataDecodeTest.ref | 719 +--- .../share/MuonDataDecodeTest_Cache.ref | 3259 +++++++++++++++++ 4 files changed, 3395 insertions(+), 599 deletions(-) create mode 100644 MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest_Cache.ref diff --git a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py index bd0428cd172d..06fc84cb37bc 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py @@ -121,8 +121,7 @@ def MdtBytestreamDecodeCfg(flags, forTrigger=False): # Setup the RAW data provider tool from MuonMDT_CnvTools.MuonMDT_CnvToolsConf import Muon__MDT_RawDataProviderTool MuonMdtRawDataProviderTool = Muon__MDT_RawDataProviderTool(name = "MDT_RawDataProviderTool", - Decoder = MDTRodDecoder, - OutputLevel = VERBOSE) + Decoder = MDTRodDecoder) if forTrigger: MuonMdtRawDataProviderTool.CsmContainerCacheKey = "MdtCsmCache" @@ -158,8 +157,7 @@ def CscBytestreamDecodeCfg(flags, forTrigger=False): # Setup the RAW data provider tool from MuonCSC_CnvTools.MuonCSC_CnvToolsConf import Muon__CSC_RawDataProviderTool MuonCscRawDataProviderTool = Muon__CSC_RawDataProviderTool(name = "CSC_RawDataProviderTool", - Decoder = CSCRodDecoder, - OutputLevel = VERBOSE) + Decoder = CSCRodDecoder) if forTrigger: MuonCscRawDataProviderTool.CscContainerCacheKey = "CscCache" diff --git a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py index b9dbefe7a6a4..30d457c49190 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py @@ -2,7 +2,7 @@ # Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration # from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator -from AthenaCommon.Constants import DEBUG, INFO +from AthenaCommon.Constants import VERBOSE, DEBUG, INFO ## This configuration function sets up everything for decoding RPC RDO to PRD conversion # @@ -194,12 +194,18 @@ def muonRdoDecodeTestData( forTrigger = False ): cfg.addEventAlgo( tgcdecodingAlg ) from MuonConfig.MuonBytestreamDecodeConfig import MdtBytestreamDecodeCfg - mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags, forTrigger ) + mdtdecodingAcc, mdtdecodingAlg = MdtBytestreamDecodeCfg( ConfigFlags, forTrigger ) + # Put into a verbose logging mode to check the caching + if forTrigger: + mdtdecodingAlg.ProviderTool.OutputLevel = VERBOSE cfg.merge( mdtdecodingAcc ) cfg.addEventAlgo( mdtdecodingAlg ) from MuonConfig.MuonBytestreamDecodeConfig import CscBytestreamDecodeCfg cscdecodingAcc, cscdecodingAlg = CscBytestreamDecodeCfg( ConfigFlags, forTrigger ) + # Put into a verbose logging mode to check the caching + if forTrigger: + cscdecodingAlg.ProviderTool.OutputLevel = VERBOSE cfg.merge( cscdecodingAcc ) cfg.addEventAlgo( cscdecodingAlg ) diff --git a/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest.ref b/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest.ref index d83162b1d46d..b9a28dde4c45 100644 --- a/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest.ref +++ b/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest.ref @@ -27,6 +27,8 @@ Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderS Py:ComponentAccumulator DEBUG Adding component ByteStreamAttListMetadataSvc/ByteStreamAttListMetadataSvc to the job Py:ComponentAccumulator DEBUG Adding component IOVDbMetaDataTool/IOVDbMetaDataTool to the job Py:ComponentAccumulator DEBUG Adding component ByteStreamMetadataTool/ByteStreamMetadataTool to the job +Py:ComponentAccumulator DEBUG Merging algorithm MuonCacheCreator to a sequence AthAlgSeq +Py:Configurable ERROR attempt to add a duplicate (AthAlgSeq.MuonCacheCreator) ... dupe ignored Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job @@ -96,7 +98,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -188,7 +189,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -198,7 +198,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Mu Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job Py:ComponentAccumulator DEBUG Adding component Muon::TGC_RawDataProviderTool/TGC_RawDataProviderTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -388,7 +387,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -399,7 +397,6 @@ Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProvi Py:ComponentAccumulator DEBUG Adding component Muon::MDT_RawDataProviderTool/MDT_RawDataProviderTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -467,7 +464,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -476,7 +472,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProvi Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job Py:ComponentAccumulator DEBUG Adding component Muon::CSC_RawDataProviderTool/CSC_RawDataProviderTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -555,7 +550,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -564,7 +558,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProvi Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool Py:ComponentAccumulator DEBUG Adding component Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepDataTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -646,7 +639,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -655,7 +647,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProvi Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool Py:ComponentAccumulator DEBUG Adding component Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepDataTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -829,7 +820,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -839,7 +829,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Mu Py:ComponentAccumulator DEBUG Adding component Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepDataTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader Py:ComponentAccumulator DEBUG Reconciled configuration of component MuonMDT_CablingAlg -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -1058,7 +1047,6 @@ Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the jo Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -1067,7 +1055,6 @@ Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProvi Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool Py:ComponentAccumulator DEBUG Adding component Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepDataTool to the job Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader -Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc.MuonDetectorTool Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc @@ -1111,6 +1098,27 @@ Py:Athena INFO Print Config |-Sequential = False |-StopOverride = False |-TimeOut = 0.0 +|=/***** Algorithm MuonCacheCreator/MuonCacheCreator ************************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-DisableViewWarning = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| |-RegisterForContextService = False +| \----- (End of Algorithm MuonCacheCreator/MuonCacheCreator) ---------------------------------------- |=/***** Algorithm Muon::RpcRawDataProvider/RpcRawDataProvider *************************************** | |-AuditAlgorithms = False | |-AuditBeginRun = False @@ -1238,6 +1246,7 @@ Py:Athena INFO Print Config | | |-AuditTools = False | | |-CsmContainerCacheKey = 'StoreGateSvc+' | | |-MonitorService = 'MonitorSvc' +| | |-OutputLevel = 0 | | |-RdoLocation = 'StoreGateSvc+MDTCSM' | | |-ReadKey = 'ConditionStore+MuonMDT_CablingMap' | | |=/***** Private AlgTool MdtROD_Decoder/MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder ***** @@ -1276,16 +1285,17 @@ Py:Athena INFO Print Config | | (default: 'Muon::CSC_RawDataProviderTool/CscRawDataProviderTool') | |-RegisterForContextService = False | |=/***** Private AlgTool Muon::CSC_RawDataProviderTool/CscRawDataProvider.CSC_RawDataProviderTool ***** -| | |-AuditFinalize = False -| | |-AuditInitialize = False -| | |-AuditReinitialize = False -| | |-AuditRestart = False -| | |-AuditStart = False -| | |-AuditStop = False -| | |-AuditTools = False -| | |-MonitorService = 'MonitorSvc' -| | |-OutputLevel = 0 -| | |-RdoLocation = 'StoreGateSvc+CSCRDO' +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-CscContainerCacheKey = 'StoreGateSvc+' +| | |-MonitorService = 'MonitorSvc' +| | |-OutputLevel = 0 +| | |-RdoLocation = 'StoreGateSvc+CSCRDO' | | |=/***** Private AlgTool Muon::CscROD_Decoder/CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder ***** | | | |-AuditFinalize = False | | | |-AuditInitialize = False @@ -1499,16 +1509,17 @@ Py:Athena INFO Print Config | | |-OutputLevel = 0 | | |-RDOContainer = 'StoreGateSvc+CSCRDO' | | |=/***** Private AlgTool Muon::CSC_RawDataProviderTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool ***** -| | | |-AuditFinalize = False -| | | |-AuditInitialize = False -| | | |-AuditReinitialize = False -| | | |-AuditRestart = False -| | | |-AuditStart = False -| | | |-AuditStop = False -| | | |-AuditTools = False -| | | |-MonitorService = 'MonitorSvc' -| | | |-OutputLevel = 0 -| | | |-RdoLocation = 'StoreGateSvc+CSCRDO' +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-CscContainerCacheKey = 'StoreGateSvc+' +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | |-RdoLocation = 'StoreGateSvc+CSCRDO' | | | |=/***** Private AlgTool Muon::CscROD_Decoder/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool.CscROD_Decoder ***** | | | | |-AuditFinalize = False | | | | |-AuditInitialize = False @@ -1621,7 +1632,6 @@ PoolSvc WARNING Unable to locate catalog for apcfile:poolcond/PoolCat_ PoolSvc INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml 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: CONDBR2-BLKPA-2018-13 set from joboptions IOVDbFolder INFO Inputfile tag override disabled for /GLOBAL/BField/Maps IOVDbSvc INFO Initialised with 8 connections and 19 folders @@ -1913,18 +1923,12 @@ MuonTGC_CablingSvc INFO for 1/12 sector initialize ToolSvc.TGCCabl... INFO initialize TgcRawDataProvi... INFO initialize() successful in TgcRawDataProvider.TGC_RawDataProviderTool MdtRawDataProvider INFO MdtRawDataProvider::initialize -MdtRawDataProvi...VERBOSE Starting init -MdtRawDataProvi...VERBOSE Getting m_robDataProvider MdtRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') -MdtRawDataProvi...VERBOSE Getting MuonDetectorManager -MdtRawDataProvi...VERBOSE Getting m_decoder MdtRawDataProvi... INFO Processing configuration for layouts with BME chambers. MdtRawDataProvi... INFO Processing configuration for layouts with BMG chambers. MdtRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('MdtROD_Decoder/MdtROD_Decoder') MdtRawDataProvi... INFO Tool = MdtRawDataProvider.MDT_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc -MdtRawDataProvi... DEBUG Could not find TrigConf::HLTJobOptionsSvc MdtRawDataProvi... INFO initialize() successful in MdtRawDataProvider.MDT_RawDataProviderTool -MdtRawDataProvi... DEBUG Adding private ToolHandle tool MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder (MdtROD_Decoder) CscRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') CscRawDataProvi... INFO Tool = CscRawDataProvider.CSC_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc CscRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('Muon::CscROD_Decoder/CscROD_Decoder') @@ -2054,7 +2058,6 @@ phi high-pt mu11 mu15 mu15 RPCcabling INFO CablingRPC---InitMaps from COOL: going to read configuration -RPCcabling INFO CablingRPC--->> RPC cabling map from COOL << RPCcabling INFO CablingRPC--- ReadConf: map has size 222202 RPCcabling INFO CablingRPC--- ReadConf: map n. of lines read is 924 RPCcabling INFO CablingRPC--- ReadConf: version is 5.0 Atlas R_07_03_RUN2ver104 @@ -2092,598 +2095,131 @@ AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] Toroids_SCurrent , 4 , 20397.7 AtlasFieldSvc INFO Currents read from DCS: solenoid 7729.99 toroid 20399.9 AtlasFieldSvc INFO Initializing the field map (solenoidCurrent=7729.99 toroidCurrent=20399.9) -AtlasFieldSvc INFO reading the map from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/atlas/offline/ReleaseData/v20/MagneticFieldMaps/bfieldmap_7730_20400_14m.root -AtlasFieldSvc INFO Initialized the field map from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/atlas/offline/ReleaseData/v20/MagneticFieldMaps/bfieldmap_7730_20400_14m.root AthenaEventLoopMgr INFO ===>>> start processing event #186525031, run #327265 0 events processed so far <<<=== IOVDbSvc INFO Opening COOL connection for COOLONL_MDT/CONDBR2 IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to MDTCablingMapSchema_BMG_01 for folder /MDT/CABLING/MAP_SCHEMA IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to MDTCablingMezzanineSchema_M5-RUN2 for folder /MDT/CABLING/MEZZANINE_SCHEMA IOVDbSvc INFO Disconnecting from COOLONL_MDT/CONDBR2 MuonMDT_CablingAlg INFO Size of CondAttrListCollection ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MEZZANINE_SCHEMA' ) readCdoMez->size()= 24 -MuonMDT_CablingAlg INFO Range of input is {[0,l:0] - [INVALID]} MuonMDT_CablingAlg INFO Size of CondAttrListCollection ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MAP_SCHEMA' ) readCdoMap->size()= 2312 -MuonMDT_CablingAlg INFO Range of input is {[327264,l:4294640031] - [327265,l:4294640030]} -MuonMDT_CablingAlg INFO recorded new MuonMDT_CablingMap with range {[327264,l:4294640031] - [327265,l:4294640030]} into Conditions Store -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG fillCollection: starting -MdtRawDataProvi... DEBUG **********Decoder dumping the words******** -MdtRawDataProvi... DEBUG The size of this ROD-read is -MdtRawDataProvi... DEBUG word 0 = 8003e994 -MdtRawDataProvi... DEBUG word 1 = 81040007 -MdtRawDataProvi... DEBUG word 2 = 18030370 -MdtRawDataProvi... DEBUG word 3 = 890003ff -MdtRawDataProvi... DEBUG word 4 = a3994153 -MdtRawDataProvi... DEBUG word 5 = 30a403c0 -MdtRawDataProvi... DEBUG word 6 = 30a004ce -MdtRawDataProvi... DEBUG word 7 = 8a994005 -MdtRawDataProvi... DEBUG word 8 = 8104000d -MdtRawDataProvi... DEBUG word 9 = 18030371 -MdtRawDataProvi... DEBUG word 10 = 89000fff -MdtRawDataProvi... DEBUG word 11 = a2994153 -MdtRawDataProvi... DEBUG word 12 = 306c0472 -MdtRawDataProvi... DEBUG word 13 = 306804d5 -MdtRawDataProvi... DEBUG word 14 = a3994153 -MdtRawDataProvi... DEBUG word 15 = 20080000 -MdtRawDataProvi... DEBUG word 16 = a4994153 -MdtRawDataProvi... DEBUG word 17 = 301c0504 -MdtRawDataProvi... DEBUG word 18 = 30180562 -MdtRawDataProvi... DEBUG word 19 = 20000010 -MdtRawDataProvi... DEBUG word 20 = 8a99400b -MdtRawDataProvi... DEBUG word 21 = 81040006 -MdtRawDataProvi... DEBUG word 22 = 18030372 -MdtRawDataProvi... DEBUG word 23 = 89003fff -MdtRawDataProvi... DEBUG word 24 = a6994153 -MdtRawDataProvi... DEBUG word 25 = 20008000 -MdtRawDataProvi... DEBUG word 26 = 8a994004 -MdtRawDataProvi... DEBUG word 27 = 8104000f -MdtRawDataProvi... DEBUG word 28 = 18030373 -MdtRawDataProvi... DEBUG word 29 = 89003fff -MdtRawDataProvi... DEBUG word 30 = a0994153 -MdtRawDataProvi... DEBUG word 31 = 3034054a -MdtRawDataProvi... DEBUG word 32 = 303005c2 -MdtRawDataProvi... DEBUG word 33 = a7994153 -MdtRawDataProvi... DEBUG word 34 = 3084023a -MdtRawDataProvi... DEBUG word 35 = 3080029e -MdtRawDataProvi... DEBUG word 36 = a8994153 -MdtRawDataProvi... DEBUG word 37 = 307c03f6 -MdtRawDataProvi... DEBUG word 38 = 30ac03f8 -MdtRawDataProvi... DEBUG word 39 = 307804c4 -MdtRawDataProvi... DEBUG word 40 = 30a804cb -MdtRawDataProvi... DEBUG word 41 = 8a99400d -MdtRawDataProvi... DEBUG word 42 = 81040008 -MdtRawDataProvi... DEBUG word 43 = 18030374 -MdtRawDataProvi... DEBUG word 44 = 8903ffff -MdtRawDataProvi... DEBUG word 45 = af994153 -MdtRawDataProvi... DEBUG word 46 = 302c05c7 -MdtRawDataProvi... DEBUG word 47 = 30280664 -MdtRawDataProvi... DEBUG word 48 = 305c0673 -MdtRawDataProvi... DEBUG word 49 = 8a994006 -MdtRawDataProvi... DEBUG word 50 = 81040031 -MdtRawDataProvi... DEBUG word 51 = 18030375 -MdtRawDataProvi... DEBUG word 52 = 8903ffff -MdtRawDataProvi... DEBUG word 53 = a0994153 -MdtRawDataProvi... DEBUG word 54 = 3054055c -MdtRawDataProvi... DEBUG word 55 = 305005fb -MdtRawDataProvi... DEBUG word 56 = a2994153 -MdtRawDataProvi... DEBUG word 57 = 20010000 -MdtRawDataProvi... DEBUG word 58 = a8994153 -MdtRawDataProvi... DEBUG word 59 = 306c034f -MdtRawDataProvi... DEBUG word 60 = 309c0349 -MdtRawDataProvi... DEBUG word 61 = 308c0394 -MdtRawDataProvi... DEBUG word 62 = 309803d9 -MdtRawDataProvi... DEBUG word 63 = 304c03f8 -MdtRawDataProvi... DEBUG word 64 = 30680422 -MdtRawDataProvi... DEBUG word 65 = 30880439 -MdtRawDataProvi... DEBUG word 66 = 30bc03f3 -MdtRawDataProvi... DEBUG word 67 = 3048049a -MdtRawDataProvi... DEBUG word 68 = 30b80479 -MdtRawDataProvi... DEBUG word 69 = 305c05e9 -MdtRawDataProvi... DEBUG word 70 = 30580652 -MdtRawDataProvi... DEBUG word 71 = af994153 -MdtRawDataProvi... DEBUG word 72 = 30940521 -MdtRawDataProvi... DEBUG word 73 = 30840583 -MdtRawDataProvi... DEBUG word 74 = 308c0583 -MdtRawDataProvi... DEBUG word 75 = 309c0585 -MdtRawDataProvi... DEBUG word 76 = 308005e7 -MdtRawDataProvi... DEBUG word 77 = 308805f5 -MdtRawDataProvi... DEBUG word 78 = 3090061d -MdtRawDataProvi... DEBUG word 79 = 309805f1 -MdtRawDataProvi... DEBUG word 80 = 30a40587 -MdtRawDataProvi... DEBUG word 81 = 30ac0588 -MdtRawDataProvi... DEBUG word 82 = 30b40589 -MdtRawDataProvi... DEBUG word 83 = 30bc058d -MdtRawDataProvi... DEBUG word 84 = 30a005fc -MdtRawDataProvi... DEBUG word 85 = 30a805f2 -MdtRawDataProvi... DEBUG word 86 = 30b005e7 -MdtRawDataProvi... DEBUG word 87 = 30b805d8 -MdtRawDataProvi... DEBUG word 88 = b0994153 -MdtRawDataProvi... DEBUG word 89 = 306c0082 -MdtRawDataProvi... DEBUG word 90 = 3068012b -MdtRawDataProvi... DEBUG word 91 = 303c01ed -MdtRawDataProvi... DEBUG word 92 = 30380250 -MdtRawDataProvi... DEBUG word 93 = 306c0556 -MdtRawDataProvi... DEBUG word 94 = 306805a3 -MdtRawDataProvi... DEBUG word 95 = 20004000 -MdtRawDataProvi... DEBUG word 96 = b1994153 -MdtRawDataProvi... DEBUG word 97 = 20010000 -MdtRawDataProvi... DEBUG word 98 = 8a99402f -MdtRawDataProvi... DEBUG word 99 = f0000064 -MdtRawDataProvi... DEBUG Found the beginning of buffer -MdtRawDataProvi... DEBUG Level 1 Id : 256404 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 0 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 1 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 2 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 3 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 7 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 4 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 15 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 5 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 15 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 16 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 17 -MdtRawDataProvi... DEBUG fillCollection: starting -MdtRawDataProvi... DEBUG **********Decoder dumping the words******** -MdtRawDataProvi... DEBUG The size of this ROD-read is -MdtRawDataProvi... DEBUG word 0 = 8003e994 -MdtRawDataProvi... DEBUG word 1 = 81040004 -MdtRawDataProvi... DEBUG word 2 = 18030210 -MdtRawDataProvi... DEBUG word 3 = 890003ff -MdtRawDataProvi... DEBUG word 4 = 8a994002 -MdtRawDataProvi... DEBUG word 5 = 81040014 -MdtRawDataProvi... DEBUG word 6 = 18030211 -MdtRawDataProvi... DEBUG word 7 = 89000fff -MdtRawDataProvi... DEBUG word 8 = a1994153 -MdtRawDataProvi... DEBUG word 9 = 20000500 -MdtRawDataProvi... DEBUG word 10 = a3994153 -MdtRawDataProvi... DEBUG word 11 = 20000028 -MdtRawDataProvi... DEBUG word 12 = aa994153 -MdtRawDataProvi... DEBUG word 13 = 303c0116 -MdtRawDataProvi... DEBUG word 14 = 3038016f -MdtRawDataProvi... DEBUG word 15 = 308c0202 -MdtRawDataProvi... DEBUG word 16 = 3088026b -MdtRawDataProvi... DEBUG word 17 = 20100000 -MdtRawDataProvi... DEBUG word 18 = ab994153 -MdtRawDataProvi... DEBUG word 19 = 3074012d -MdtRawDataProvi... DEBUG word 20 = 30700187 -MdtRawDataProvi... DEBUG word 21 = 3084015b -MdtRawDataProvi... DEBUG word 22 = 308001ca -MdtRawDataProvi... DEBUG word 23 = 20140150 -MdtRawDataProvi... DEBUG word 24 = 8a994012 -MdtRawDataProvi... DEBUG word 25 = 81040007 -MdtRawDataProvi... DEBUG word 26 = 18030212 -MdtRawDataProvi... DEBUG word 27 = 89003fff -MdtRawDataProvi... DEBUG word 28 = a3994153 -MdtRawDataProvi... DEBUG word 29 = 307c0071 -MdtRawDataProvi... DEBUG word 30 = 30780094 -MdtRawDataProvi... DEBUG word 31 = 8a994005 -MdtRawDataProvi... DEBUG word 32 = 81040014 -MdtRawDataProvi... DEBUG word 33 = 18030213 -MdtRawDataProvi... DEBUG word 34 = 89003fff -MdtRawDataProvi... DEBUG word 35 = a3994153 -MdtRawDataProvi... DEBUG word 36 = 30b401cb -MdtRawDataProvi... DEBUG word 37 = 30bc0213 -MdtRawDataProvi... DEBUG word 38 = 30b00256 -MdtRawDataProvi... DEBUG word 39 = 30b802c7 -MdtRawDataProvi... DEBUG word 40 = 307c032d -MdtRawDataProvi... DEBUG word 41 = 30840397 -MdtRawDataProvi... DEBUG word 42 = 307803e7 -MdtRawDataProvi... DEBUG word 43 = 308003f1 -MdtRawDataProvi... DEBUG word 44 = a6994153 -MdtRawDataProvi... DEBUG word 45 = 30b40533 -MdtRawDataProvi... DEBUG word 46 = 30740552 -MdtRawDataProvi... DEBUG word 47 = 30a40588 -MdtRawDataProvi... DEBUG word 48 = 307005cb -MdtRawDataProvi... DEBUG word 49 = 30a00611 -MdtRawDataProvi... DEBUG word 50 = 30b0063b -MdtRawDataProvi... DEBUG word 51 = 8a994012 -MdtRawDataProvi... DEBUG word 52 = 8104001c -MdtRawDataProvi... DEBUG word 53 = 18030214 -MdtRawDataProvi... DEBUG word 54 = 8903ffff -MdtRawDataProvi... DEBUG word 55 = a2994153 -MdtRawDataProvi... DEBUG word 56 = 30b0002f -MdtRawDataProvi... DEBUG word 57 = 3084019b -MdtRawDataProvi... DEBUG word 58 = 30800237 -MdtRawDataProvi... DEBUG word 59 = 20540100 -MdtRawDataProvi... DEBUG word 60 = a4994153 -MdtRawDataProvi... DEBUG word 61 = 306c019f -MdtRawDataProvi... DEBUG word 62 = 30680214 -MdtRawDataProvi... DEBUG word 63 = 30140429 -MdtRawDataProvi... DEBUG word 64 = 30100474 -MdtRawDataProvi... DEBUG word 65 = 20000ad4 -MdtRawDataProvi... DEBUG word 66 = a5994153 -MdtRawDataProvi... DEBUG word 67 = 30bc0362 -MdtRawDataProvi... DEBUG word 68 = 30b80481 -MdtRawDataProvi... DEBUG word 69 = a6994153 -MdtRawDataProvi... DEBUG word 70 = 20004000 -MdtRawDataProvi... DEBUG word 71 = a8994153 -MdtRawDataProvi... DEBUG word 72 = 20000820 -MdtRawDataProvi... DEBUG word 73 = aa994153 -MdtRawDataProvi... DEBUG word 74 = 20000002 -MdtRawDataProvi... DEBUG word 75 = ae994153 -MdtRawDataProvi... DEBUG word 76 = 20000080 -MdtRawDataProvi... DEBUG word 77 = b0994153 -MdtRawDataProvi... DEBUG word 78 = 20000200 -MdtRawDataProvi... DEBUG word 79 = 8a99401a -MdtRawDataProvi... DEBUG word 80 = 81040025 -MdtRawDataProvi... DEBUG word 81 = 18030215 -MdtRawDataProvi... DEBUG word 82 = 8903ffff -MdtRawDataProvi... DEBUG word 83 = a5994153 -MdtRawDataProvi... DEBUG word 84 = 304c054e -MdtRawDataProvi... DEBUG word 85 = 304805fd -MdtRawDataProvi... DEBUG word 86 = a6994153 -MdtRawDataProvi... DEBUG word 87 = 20000040 -MdtRawDataProvi... DEBUG word 88 = a8994153 -MdtRawDataProvi... DEBUG word 89 = 306c0098 -MdtRawDataProvi... DEBUG word 90 = 30bc0093 -MdtRawDataProvi... DEBUG word 91 = 308400fd -MdtRawDataProvi... DEBUG word 92 = 308c00fe -MdtRawDataProvi... DEBUG word 93 = 309400fb -MdtRawDataProvi... DEBUG word 94 = 309c00fd -MdtRawDataProvi... DEBUG word 95 = 30a400f9 -MdtRawDataProvi... DEBUG word 96 = 30ac00fc -MdtRawDataProvi... DEBUG word 97 = 30b400f9 -MdtRawDataProvi... DEBUG word 98 = 302c0185 -MdtRawDataProvi... DEBUG word 99 = 306801a0 -MdtRawDataProvi... DEBUG word 100 = 30800148 -MdtRawDataProvi... DEBUG word 101 = 30880147 -MdtRawDataProvi... DEBUG word 102 = 30900149 -MdtRawDataProvi... DEBUG word 103 = 30980168 -MdtRawDataProvi... DEBUG word 104 = 30a00169 -MdtRawDataProvi... DEBUG word 105 = 30a80163 -MdtRawDataProvi... DEBUG word 106 = 30b00161 -MdtRawDataProvi... DEBUG word 107 = 30b801a3 -MdtRawDataProvi... DEBUG word 108 = 30280271 -MdtRawDataProvi... DEBUG word 109 = a9994153 -MdtRawDataProvi... DEBUG word 110 = 301c00b6 -MdtRawDataProvi... DEBUG word 111 = 309c00d1 -MdtRawDataProvi... DEBUG word 112 = 301801bc -MdtRawDataProvi... DEBUG word 113 = 309801b9 -MdtRawDataProvi... DEBUG word 114 = 305c01f8 -MdtRawDataProvi... DEBUG word 115 = 305802ec -MdtRawDataProvi... DEBUG word 116 = 8a994023 -MdtRawDataProvi... DEBUG word 117 = f0000076 -MdtRawDataProvi... DEBUG Found the beginning of buffer -MdtRawDataProvi... DEBUG Level 1 Id : 256404 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 0 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 1 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 10 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 11 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 2 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 3 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 4 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 -MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 2 chan: 22 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 10 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 14 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 16 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 5 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 2 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 -MdtRawDataProvi... DEBUG fillCollection: starting -MdtRawDataProvi... DEBUG **********Decoder dumping the words******** -MdtRawDataProvi... DEBUG The size of this ROD-read is -MdtRawDataProvi... DEBUG word 0 = 8003e994 -MdtRawDataProvi... DEBUG word 1 = 81040004 -MdtRawDataProvi... DEBUG word 2 = 180300d0 -MdtRawDataProvi... DEBUG word 3 = 890003ff -MdtRawDataProvi... DEBUG word 4 = 8a994002 -MdtRawDataProvi... DEBUG word 5 = 81040004 -MdtRawDataProvi... DEBUG word 6 = 180300d1 -MdtRawDataProvi... DEBUG word 7 = 89000fff -MdtRawDataProvi... DEBUG word 8 = 8a994002 -MdtRawDataProvi... DEBUG word 9 = 8104000e -MdtRawDataProvi... DEBUG word 10 = 180300d2 -MdtRawDataProvi... DEBUG word 11 = 89000fff -MdtRawDataProvi... DEBUG word 12 = a0994153 -MdtRawDataProvi... DEBUG word 13 = 30a00056 -MdtRawDataProvi... DEBUG word 14 = 20105050 -MdtRawDataProvi... DEBUG word 15 = a1994153 -MdtRawDataProvi... DEBUG word 16 = 30b40578 -MdtRawDataProvi... DEBUG word 17 = 30b0060a -MdtRawDataProvi... DEBUG word 18 = a8994153 -MdtRawDataProvi... DEBUG word 19 = 20000400 -MdtRawDataProvi... DEBUG word 20 = a9994153 -MdtRawDataProvi... DEBUG word 21 = 307c067b -MdtRawDataProvi... DEBUG word 22 = 8a99400c -MdtRawDataProvi... DEBUG word 23 = 81040011 -MdtRawDataProvi... DEBUG word 24 = 180300d3 -MdtRawDataProvi... DEBUG word 25 = 89003fff -MdtRawDataProvi... DEBUG word 26 = a5994153 -MdtRawDataProvi... DEBUG word 27 = 308c0359 -MdtRawDataProvi... DEBUG word 28 = 30880397 -MdtRawDataProvi... DEBUG word 29 = 20020000 -MdtRawDataProvi... DEBUG word 30 = a7994153 -MdtRawDataProvi... DEBUG word 31 = 30600040 -MdtRawDataProvi... DEBUG word 32 = 20001000 -MdtRawDataProvi... DEBUG word 33 = a8994153 -MdtRawDataProvi... DEBUG word 34 = 302403a8 -MdtRawDataProvi... DEBUG word 35 = 3020040f -MdtRawDataProvi... DEBUG word 36 = a9994153 -MdtRawDataProvi... DEBUG word 37 = 309c0635 -MdtRawDataProvi... DEBUG word 38 = 308c0671 -MdtRawDataProvi... DEBUG word 39 = 8a99400f -MdtRawDataProvi... DEBUG word 40 = 81040017 -MdtRawDataProvi... DEBUG word 41 = 180300d4 -MdtRawDataProvi... DEBUG word 42 = 8900ffff -MdtRawDataProvi... DEBUG word 43 = a1994153 -MdtRawDataProvi... DEBUG word 44 = 304c0488 -MdtRawDataProvi... DEBUG word 45 = 308c0498 -MdtRawDataProvi... DEBUG word 46 = 302c0500 -MdtRawDataProvi... DEBUG word 47 = 30280581 -MdtRawDataProvi... DEBUG word 48 = 3048052d -MdtRawDataProvi... DEBUG word 49 = 3088056a -MdtRawDataProvi... DEBUG word 50 = 301c05a2 -MdtRawDataProvi... DEBUG word 51 = 30180610 -MdtRawDataProvi... DEBUG word 52 = 309c0646 -MdtRawDataProvi... DEBUG word 53 = a4994153 -MdtRawDataProvi... DEBUG word 54 = 30640517 -MdtRawDataProvi... DEBUG word 55 = 306005a2 -MdtRawDataProvi... DEBUG word 56 = 302405e1 -MdtRawDataProvi... DEBUG word 57 = 30200624 -MdtRawDataProvi... DEBUG word 58 = a9994153 -MdtRawDataProvi... DEBUG word 59 = 200000a0 -MdtRawDataProvi... DEBUG word 60 = ab994153 -MdtRawDataProvi... DEBUG word 61 = 20041100 -MdtRawDataProvi... DEBUG word 62 = 8a994015 -MdtRawDataProvi... DEBUG word 63 = 8104001c -MdtRawDataProvi... DEBUG word 64 = 180300d5 -MdtRawDataProvi... DEBUG word 65 = 8903ffff -MdtRawDataProvi... DEBUG word 66 = a0994153 -MdtRawDataProvi... DEBUG word 67 = 3014000e -MdtRawDataProvi... DEBUG word 68 = 30100032 -MdtRawDataProvi... DEBUG word 69 = 30940069 -MdtRawDataProvi... DEBUG word 70 = 3090008d -MdtRawDataProvi... DEBUG word 71 = 20000400 -MdtRawDataProvi... DEBUG word 72 = a1994153 -MdtRawDataProvi... DEBUG word 73 = 3070001a -MdtRawDataProvi... DEBUG word 74 = 30040377 -MdtRawDataProvi... DEBUG word 75 = 30000398 -MdtRawDataProvi... DEBUG word 76 = 20014001 -MdtRawDataProvi... DEBUG word 77 = a2994153 -MdtRawDataProvi... DEBUG word 78 = 20000020 -MdtRawDataProvi... DEBUG word 79 = a3994153 -MdtRawDataProvi... DEBUG word 80 = 20000040 -MdtRawDataProvi... DEBUG word 81 = a9994153 -MdtRawDataProvi... DEBUG word 82 = 30a40400 -MdtRawDataProvi... DEBUG word 83 = 30a00424 -MdtRawDataProvi... DEBUG word 84 = aa994153 -MdtRawDataProvi... DEBUG word 85 = 20008000 -MdtRawDataProvi... DEBUG word 86 = ab994153 -MdtRawDataProvi... DEBUG word 87 = 20080000 -MdtRawDataProvi... DEBUG word 88 = b0994153 -MdtRawDataProvi... DEBUG word 89 = 20080000 -MdtRawDataProvi... DEBUG word 90 = 8a99401a -MdtRawDataProvi... DEBUG word 91 = f000005c -MdtRawDataProvi... DEBUG Found the beginning of buffer -MdtRawDataProvi... DEBUG Level 1 Id : 256404 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 0 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 3 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 1 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 0 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 3 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 2 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 -MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 0 chan: 20 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 3 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 2 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi... DEBUG Phi : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 7 -MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 7 chan: 12 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 4 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 1 -MdtRawDataProvi... DEBUG Phi : 3 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 -MdtRawDataProvi... DEBUG Decoding data from TDC number : 11 -MdtRawDataProvi... DEBUG Found the Beginnning of Link -MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 5 -MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: -MdtRawDataProvi... DEBUG Name : 4 -MdtRawDataProvi... DEBUG Eta : 2 -MdtRawDataProvi...WARNING DEBUG message limit (500) reached for MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder. Suppressing further output. -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186525031, run #327265 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186524665, run #327265 1 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186524665, run #327265 2 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186542447, run #327265 2 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186542447, run #327265 3 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186543405, run #327265 3 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186543405, run #327265 4 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186548387, run #327265 4 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186548387, run #327265 5 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186515186, run #327265 5 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186515186, run #327265 6 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186556019, run #327265 6 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186556019, run #327265 7 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186542866, run #327265 7 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186542866, run #327265 8 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186537901, run #327265 8 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186537901, run #327265 9 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186517811, run #327265 9 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186517811, run #327265 10 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186534221, run #327265 10 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186534221, run #327265 11 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186540986, run #327265 11 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186540986, run #327265 12 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186535104, run #327265 12 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186535104, run #327265 13 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186539903, run #327265 13 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186539903, run #327265 14 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186552713, run #327265 14 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186552713, run #327265 15 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186524730, run #327265 15 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186524730, run #327265 16 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186547632, run #327265 16 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186547632, run #327265 17 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186555621, run #327265 17 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186555621, run #327265 18 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186568452, run #327265 18 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186568452, run #327265 19 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #186580451, run #327265 19 events processed so far <<<=== -MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. -MdtRawDataProvi... DEBUG Created container -MdtRawDataProvi... DEBUG After processing numColls=1136 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' AthenaEventLoopMgr INFO ===>>> done processing event #186580451, run #327265 20 events processed so far <<<=== Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] ApplicationMgr INFO Application Manager Stopped successfully @@ -2718,7 +2254,4 @@ ToolSvc.TGCCabl... INFO finalize ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully -Listing sources of suppressed message: - Message Source | Level | Count - MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder| DEBUG | 854603 Py:Athena INFO leaving with code 0: "successful run" diff --git a/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest_Cache.ref b/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest_Cache.ref new file mode 100644 index 000000000000..e832c7dcc385 --- /dev/null +++ b/MuonSpectrometer/MuonConfig/share/MuonDataDecodeTest_Cache.ref @@ -0,0 +1,3259 @@ +Flag Name : Value +Py:Athena INFO About to setup Rpc Raw data decoding +Py:ComponentAccumulator DEBUG Adding component EventSelectorByteStream/EventSelector to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamEventStorageInputSvc/ByteStreamInputSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamCnvSvc/ByteStreamCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamAddressProviderSvc/ByteStreamAddressProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbMetaDataTool/IOVDbMetaDataTool to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamMetadataTool/ByteStreamMetadataTool to the job +Py:ComponentAccumulator DEBUG Adding component StoreGateSvc/MetaDataStore to the job +Py:ComponentAccumulator DEBUG Adding component StoreGateSvc/InputMetaDataStore to the job +Py:ComponentAccumulator DEBUG Adding component MetaDataSvc/MetaDataSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamAttListMetadataSvc/ByteStreamAttListMetadataSvc to the job +Py:Athena INFO Obtaining metadata of auto-configuration by peeking into /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1 +Py:ComponentAccumulator DEBUG Adding component EventSelectorByteStream/EventSelector to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamEventStorageInputSvc/ByteStreamInputSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamCnvSvc/ByteStreamCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamAddressProviderSvc/ByteStreamAddressProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component StoreGateSvc/MetaDataStore to the job +Py:ComponentAccumulator DEBUG Adding component StoreGateSvc/InputMetaDataStore to the job +Py:ComponentAccumulator DEBUG Adding component MetaDataSvc/MetaDataSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamAttListMetadataSvc/ByteStreamAttListMetadataSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbMetaDataTool/IOVDbMetaDataTool to the job +Py:ComponentAccumulator DEBUG Adding component ByteStreamMetadataTool/ByteStreamMetadataTool to the job +Py:ComponentAccumulator DEBUG Merging algorithm MuonCacheCreator to a sequence AthAlgSeq +Py:Configurable ERROR attempt to add a duplicate (AthAlgSeq.MuonCacheCreator) ... dupe ignored +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component RPCcablingServerSvc/RPCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component RPCCablingDbTool/RPCCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonRPC_CablingSvc/MuonRPC_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component RPCcablingServerSvc/RPCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonRPC_CablingSvc/MuonRPC_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component RPCCablingDbTool/RPCCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::RPC_RawDataProviderTool/RPC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component RPCcablingServerSvc/RPCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonRPC_CablingSvc/MuonRPC_CablingSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ROBDataProviderSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component RPCCablingDbTool/RPCCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component Muon::RPC_RawDataProviderTool/RPC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component LVL1TGC::TGCRecRoiSvc/LVL1TGC::TGCRecRoiSvc to the job +Py:ComponentAccumulator DEBUG Adding component TGCcablingServerSvc/TGCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component LVL1TGC::TGCRecRoiSvc/LVL1TGC::TGCRecRoiSvc to the job +Py:ComponentAccumulator DEBUG Adding component TGCcablingServerSvc/TGCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::TGC_RawDataProviderTool/TGC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component LVL1TGC::TGCRecRoiSvc/LVL1TGC::TGCRecRoiSvc to the job +Py:ComponentAccumulator DEBUG Adding component TGCcablingServerSvc/TGCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ROBDataProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::TGC_RawDataProviderTool/TGC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job +Py:ComponentAccumulator DEBUG Adding component MDTCablingDbTool/MDTCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingSvc/MuonMDT_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingSvc/MuonMDT_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component MDTCablingDbTool/MDTCablingDbTool to the job +Py:Athena INFO Importing MuonCnvExample.MuonCnvUtils +Py:Athena INFO Importing MagFieldServices.MagFieldServicesConfig +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:IOVDbSvc.CondDB DEBUG Loading basic services for CondDBSetup... +Py:loadBasicAthenaPool DEBUG Loading basic services for AthenaPool... +Py:loadBasicAthenaPool DEBUG Loading basic services for AthenaPool... [DONE] +Py:loadBasicIOVDb DEBUG Loading basic services for IOVDbSvc... +Py:Configurable ERROR attempt to add a duplicate (ServiceManager.ProxyProviderSvc) ... dupe ignored +Py:loadBasicEventInfoMgt DEBUG Loading basic services for EventInfoMgt... +Py:Configurable ERROR attempt to add a duplicate (ServiceManager.EventPersistencySvc) ... dupe ignored +Py:Configurable ERROR attempt to add a duplicate (ServiceManager.ProxyProviderSvc) ... dupe ignored +Py:loadBasicEventInfoMgt DEBUG Loading basic services for EventInfoMgt... [DONE] +Py:loadBasicIOVDb DEBUG Loading basic services for IOVDb... [DONE] +Py:IOVDbSvc.CondDB INFO Setting up conditions DB access to instance OFLP200 +Py:Configurable ERROR attempt to add a duplicate (ServiceManager.PoolSvc) ... dupe ignored +Py:IOVDbSvc.CondDB DEBUG Loading basic services for CondDBSetup... [DONE] +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationSvc/MdtCalibrationSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component AthenaPoolCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationSvc/MdtCalibrationSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MDT_RawDataProviderTool/MDT_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingSvc/MuonMDT_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationSvc/MdtCalibrationSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ROBDataProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component MDTCablingDbTool/MDTCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MDT_RawDataProviderTool/MDT_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component CSCcablingSvc/CSCcablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component CSCcablingSvc/CSCcablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component ROBDataProviderSvc/ROBDataProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::CSC_RawDataProviderTool/CSC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component CSCcablingSvc/CSCcablingSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ROBDataProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::CSC_RawDataProviderTool/CSC_RawDataProviderTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component RPCcablingServerSvc/RPCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component RPCCablingDbTool/RPCCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonRPC_CablingSvc/MuonRPC_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component RPCcablingServerSvc/RPCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonRPC_CablingSvc/MuonRPC_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component RPCCablingDbTool/RPCCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepDataTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component RPCcablingServerSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component MuonRPC_CablingSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.RPCCablingDbTool +Py:ComponentAccumulator DEBUG Adding component Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepDataTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component LVL1TGC::TGCRecRoiSvc/LVL1TGC::TGCRecRoiSvc to the job +Py:ComponentAccumulator DEBUG Adding component TGCcablingServerSvc/TGCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component LVL1TGC::TGCRecRoiSvc/LVL1TGC::TGCRecRoiSvc to the job +Py:ComponentAccumulator DEBUG Adding component TGCcablingServerSvc/TGCcablingServerSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepDataTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component LVL1TGC::TGCRecRoiSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TGCcablingServerSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepDataTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job +Py:ComponentAccumulator DEBUG Adding component MDTCablingDbTool/MDTCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingSvc/MuonMDT_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingAlg/MuonMDT_CablingAlg to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonMDT_CablingSvc/MuonMDT_CablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component MDTCablingDbTool/MDTCablingDbTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component AthenaPoolCnvSvc/AthenaPoolCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationSvc/MdtCalibrationSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component AthenaPoolCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component MagField::AtlasFieldSvc/AtlasFieldSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationDbSvc/MdtCalibrationDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component MdtCalibrationSvc/MdtCalibrationSvc to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::MdtCalibDbCoolStrTool/MuonCalib::MdtCalibDbCoolStrTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepDataTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component MuonMDT_CablingAlg +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component AthenaPoolCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component MuonMDT_CablingSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component AtlasFieldSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component MdtCalibrationDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component MdtCalibrationSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.MDTCablingDbTool +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.MuonCalib::MdtCalibDbCoolStrTool +Py:ComponentAccumulator DEBUG Adding component Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepDataTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component CSCcablingSvc/CSCcablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component CSCcablingSvc/CSCcablingSvc to the job +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::CscCoolStrSvc/MuonCalib::CscCoolStrSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Adding component CondInputLoader/CondInputLoader to the job +Py:ComponentAccumulator DEBUG Adding component MuonCalib::CscCoolStrSvc/MuonCalib::CscCoolStrSvc to the job +Py:ComponentAccumulator DEBUG Adding component IOVDbSvc/IOVDbSvc to the job +Py:ComponentAccumulator DEBUG Adding component PoolSvc/PoolSvc to the job +Py:ComponentAccumulator DEBUG Adding component CondSvc/CondSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Adding component DBReplicaSvc/DBReplicaSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Adding component GeoModelSvc/GeoModelSvc to the job +Py:ComponentAccumulator DEBUG Adding component DetDescrCnvSvc/DetDescrCnvSvc to the job +Py:ComponentAccumulator DEBUG Adding component EvtPersistencySvc/EventPersistencySvc to the job +Py:ComponentAccumulator DEBUG Adding component TagInfoMgr/TagInfoMgr to the job +Py:ComponentAccumulator DEBUG Adding component ProxyProviderSvc/ProxyProviderSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Adding component Muon::MuonIdHelperTool/Muon::MuonIdHelperTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepDataTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondInputLoader +Py:ComponentAccumulator DEBUG Reconciled configuration of component GeoModelSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DetDescrCnvSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component EventPersistencySvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component TagInfoMgr +Py:ComponentAccumulator DEBUG Reconciled configuration of component ProxyProviderSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CSCcablingSvc +Py:ComponentAccumulator DEBUG Adding component MuonCalib::CscCoolStrSvc/MuonCalib::CscCoolStrSvc to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component IOVDbSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component PoolSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component CondSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component DBReplicaSvc +Py:ComponentAccumulator DEBUG Reconciled configuration of component ToolSvc.Muon::MuonIdHelperTool +Py:ComponentAccumulator DEBUG Adding component Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepDataTool to the job +Py:ComponentAccumulator DEBUG Adding component CscThresholdClusterBuilderTool/CscThesholdClusterBuilderTool to the job +Py:ComponentAccumulator DEBUG Adding component CscThresholdClusterBuilderTool/CscThesholdClusterBuilderTool to the job +Py:ComponentAccumulator DEBUG Reconciled configuration of component AthenaPoolCnvSvc +Py:Athena INFO Print Config +|-Atomic = False +|-AuditAlgorithms = False +|-AuditBeginRun = False +|-AuditEndRun = False +|-AuditExecute = False +|-AuditFinalize = False +|-AuditInitialize = False +|-AuditReinitialize = False +|-AuditRestart = False +|-AuditStart = False +|-AuditStop = False +|-ContinueEventloopOnFPE = False +|-Enable = True +|-ErrorCounter = 0 +|-ErrorMax = 1 +|-FilterCircularDependencies = True +|-IgnoreFilterPassed = False +|-IsIOBound = False +| (default: []) +|-ModeOR = False +|-MonitorService = 'MonitorSvc' +|-OutputLevel = 0 +|-RegisterForContextService = False +|-Sequential = False +|-StopOverride = False +|-TimeOut = 0.0 +|=/***** Algorithm MuonCacheCreator/MuonCacheCreator ************************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-DisableViewWarning = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| |-RegisterForContextService = False +| \----- (End of Algorithm MuonCacheCreator/MuonCacheCreator) ---------------------------------------- +|=/***** Algorithm Muon::RpcRawDataProvider/RpcRawDataProvider *************************************** +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-DoSeededDecoding = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| | (default: 'Muon::RPC_RawDataProviderTool/RpcRawDataProviderTool') +| |-RegisterForContextService = False +| |-RoIs = 'StoreGateSvc+OutputRoIs' +| |=/***** Private AlgTool Muon::RPC_RawDataProviderTool/RpcRawDataProvider.RPC_RawDataProviderTool ***** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-MonitorService = 'MonitorSvc' +| | |-OutputLevel = 0 +| | |-RPCSec = 'StoreGateSvc+RPC_SECTORLOGIC' +| | |-RdoLocation = 'StoreGateSvc+RPCPAD' +| | |=/***** Private AlgTool Muon::RpcROD_Decoder/RpcRawDataProvider.RPC_RawDataProviderTool.RpcROD_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-DataErrorPrintLimit = 1000 +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | |-Sector13Data = False +| | | |-SpecialROBNumber = -1 +| | | \----- (End of Private AlgTool Muon::RpcROD_Decoder/RpcRawDataProvider.RPC_RawDataProviderTool.RpcROD_Decoder) ----- +| | \----- (End of Private AlgTool Muon::RPC_RawDataProviderTool/RpcRawDataProvider.RPC_RawDataProviderTool) ----- +| \----- (End of Algorithm Muon::RpcRawDataProvider/RpcRawDataProvider) ------------------------------ +|=/***** Algorithm Muon::TgcRawDataProvider/TgcRawDataProvider *************************************** +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| | (default: 'Muon::TGC_RawDataProviderTool/TgcRawDataProviderTool') +| |-RegisterForContextService = False +| |=/***** Private AlgTool Muon::TGC_RawDataProviderTool/TgcRawDataProvider.TGC_RawDataProviderTool ***** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | | (default: 'Muon::TGC_RodDecoderReadout/TGC_RodDecoderReadout') +| | |-MonitorService = 'MonitorSvc' +| | |-OutputLevel = 0 +| | |-RdoLocation = 'StoreGateSvc+TGCRDO' +| | |=/***** Private AlgTool Muon::TGC_RodDecoderReadout/TgcRawDataProvider.TGC_RawDataProviderTool.TgcROD_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | |-ShowStatusWords = False +| | | |-SkipCoincidence = False +| | | \----- (End of Private AlgTool Muon::TGC_RodDecoderReadout/TgcRawDataProvider.TGC_RawDataProviderTool.TgcROD_Decoder) ----- +| | \----- (End of Private AlgTool Muon::TGC_RawDataProviderTool/TgcRawDataProvider.TGC_RawDataProviderTool) ----- +| \----- (End of Algorithm Muon::TgcRawDataProvider/TgcRawDataProvider) ------------------------------ +|=/***** Algorithm Muon::MdtRawDataProvider/MdtRawDataProvider *************************************** +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| | (default: 'Muon::MDT_RawDataProviderTool/MdtRawDataProviderTool') +| |-RegisterForContextService = False +| |=/***** Private AlgTool Muon::MDT_RawDataProviderTool/MdtRawDataProvider.MDT_RawDataProviderTool ***** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-MonitorService = 'MonitorSvc' +| | |-RdoLocation = 'StoreGateSvc+MDTCSM' +| | |-ReadKey = 'ConditionStore+MuonMDT_CablingMap' +| | |=/***** Private AlgTool MdtROD_Decoder/MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | |-ReadKey = 'ConditionStore+MuonMDT_CablingMap' +| | | |-SpecialROBNumber = -1 +| | | \----- (End of Private AlgTool MdtROD_Decoder/MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder) ----- +| | \----- (End of Private AlgTool Muon::MDT_RawDataProviderTool/MdtRawDataProvider.MDT_RawDataProviderTool) ----- +| \----- (End of Algorithm Muon::MdtRawDataProvider/MdtRawDataProvider) ------------------------------ +|=/***** Algorithm Muon::CscRawDataProvider/CscRawDataProvider *************************************** +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| | (default: 'Muon::CSC_RawDataProviderTool/CscRawDataProviderTool') +| |-RegisterForContextService = False +| |=/***** Private AlgTool Muon::CSC_RawDataProviderTool/CscRawDataProvider.CSC_RawDataProviderTool ***** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-MonitorService = 'MonitorSvc' +| | |-RdoLocation = 'StoreGateSvc+CSCRDO' +| | |=/***** Private AlgTool Muon::CscROD_Decoder/CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-IsCosmics = False +| | | |-IsOldCosmics = False +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | \----- (End of Private AlgTool Muon::CscROD_Decoder/CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder) ----- +| | \----- (End of Private AlgTool Muon::CSC_RawDataProviderTool/CscRawDataProvider.CSC_RawDataProviderTool) ----- +| \----- (End of Algorithm Muon::CscRawDataProvider/CscRawDataProvider) ------------------------------ +|=/***** Algorithm RpcRdoToRpcPrepData/RpcRdoToRpcPrepData ******************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| | (default: 'Muon::RpcRdoToPrepDataTool/RpcRdoToPrepDataTool') +| |-DoSeededDecoding = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputCollection = 'StoreGateSvc+RPC_Measurements' +| |-OutputLevel = 0 +| |-PrintInputRdo = False +| |-RegisterForContextService = False +| |-RoIs = 'StoreGateSvc+OutputRoIs' +| |=/***** Private AlgTool Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepData.RpcRdoToRpcPrepDataTool ****** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-DecodeData = True +| | |-InputCollection = 'StoreGateSvc+RPC_triggerHits' +| | |-MonitorService = 'MonitorSvc' +| | |-OutputCollection = 'StoreGateSvc+RPCPAD' +| | |-OutputLevel = 0 +| | |-RPCInfoFromDb = False +| | | (default: 'Muon::RpcRDO_Decoder') +| | |-TriggerOutputCollection = 'StoreGateSvc+RPC_Measurements' +| | |-etaphi_coincidenceTime = 20.0 +| | |-overlap_timeTolerance = 10.0 +| | |-processingData = False +| | |-produceRpcCoinDatafromTriggerWords = True +| | |-reduceCablingOverlap = True +| | |-solvePhiAmbiguities = True +| | |-timeShift = -12.5 +| | |=/***** Private AlgTool Muon::RpcRDO_Decoder/RpcRdoToRpcPrepData.RpcRdoToRpcPrepDataTool.Muon::RpcRDO_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | \----- (End of Private AlgTool Muon::RpcRDO_Decoder/RpcRdoToRpcPrepData.RpcRdoToRpcPrepDataTool.Muon::RpcRDO_Decoder) ----- +| | \----- (End of Private AlgTool Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepData.RpcRdoToRpcPrepDataTool) ----- +| \----- (End of Algorithm RpcRdoToRpcPrepData/RpcRdoToRpcPrepData) ---------------------------------- +|=/***** Algorithm TgcRdoToTgcPrepData/TgcRdoToTgcPrepData ******************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| | (default: 'Muon::TgcRdoToPrepDataTool/TgcPrepDataProviderTool') +| |-DoSeededDecoding = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputCollection = 'StoreGateSvc+TGC_Measurements' +| |-OutputLevel = 0 +| |-PrintInputRdo = False +| |-RegisterForContextService = False +| |-RoIs = 'StoreGateSvc+OutputRoIs' +| |-Setting = 0 +| |=/***** Private AlgTool Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepData.TgcRdoToTgcPrepDataTool ****** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-DecodeData = True +| | |-FillCoinData = True +| | |-MonitorService = 'MonitorSvc' +| | |-OutputCoinCollection = 'TrigT1CoinDataCollection' +| | |-OutputCollection = 'TGC_Measurements' +| | |-OutputLevel = 0 +| | |-RDOContainer = 'StoreGateSvc+TGCRDO' +| | |-TGCHashIdOffset = 26000 +| | |-dropPrdsWithZeroWidth = True +| | | (default: ['StoreGateSvc+dummy', 'StoreGateSvc+dummy', 'StoreGateSvc+dummy']) +| | | (default: ['StoreGateSvc+dummy', 'StoreGateSvc+dummy', 'StoreGateSvc+dummy', 'StoreGateSvc+dummy']) +| | |-show_warning_level_invalid_A09_SSW6_hit = False +| | \----- (End of Private AlgTool Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepData.TgcRdoToTgcPrepDataTool) ----- +| \----- (End of Algorithm TgcRdoToTgcPrepData/TgcRdoToTgcPrepData) ---------------------------------- +|=/***** Algorithm MdtRdoToMdtPrepData/MdtRdoToMdtPrepData ******************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| | (default: 'Muon::MdtRdoToPrepDataTool/MdtPrepDataProviderTool') +| |-DoSeededDecoding = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputCollection = 'StoreGateSvc+MDT_DriftCircles' +| |-OutputLevel = 0 +| |-PrintInputRdo = False +| |-RegisterForContextService = False +| |-RoIs = 'StoreGateSvc+OutputRoIs' +| |=/***** Private AlgTool Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepData.MdtRdoToMdtPrepDataTool ****** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-CalibratePrepData = True +| | |-DecodeData = True +| | |-DiscardSecondaryHitTwin = False +| | |-DoPropagationCorrection = False +| | |-DoTofCorrection = True +| | |-MonitorService = 'MonitorSvc' +| | |-OutputCollection = 'StoreGateSvc+MDT_DriftCircles' +| | |-OutputLevel = 0 +| | |-RDOContainer = 'StoreGateSvc+MDTCSM' +| | |-ReadKey = 'ConditionStore+MuonMDT_CablingMap' +| | |-SortPrepData = False +| | |-TimeWindowLowerBound = -1000000.0 +| | |-TimeWindowSetting = 2 +| | |-TimeWindowUpperBound = -1000000.0 +| | |-TwinCorrectSlewing = False +| | |-Use1DPrepDataTwin = False +| | |-UseAllBOLTwin = False +| | |-UseTwin = True +| | \----- (End of Private AlgTool Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepData.MdtRdoToMdtPrepDataTool) ----- +| \----- (End of Algorithm MdtRdoToMdtPrepData/MdtRdoToMdtPrepData) ---------------------------------- +|=/***** Algorithm CscRdoToCscPrepData/CscRdoToCscPrepData ******************************************* +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| | (default: 'Muon::CscRdoToCscPrepDataTool/CscRdoToPrepDataTool') +| |-DoSeededDecoding = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputCollection = 'StoreGateSvc+CSC_Measurements' +| |-OutputLevel = 0 +| |-PrintInputRdo = False +| |-RegisterForContextService = False +| |-RoIs = 'StoreGateSvc+OutputRoIs' +| |=/***** Private AlgTool Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool ***** +| | |-AuditFinalize = False +| | |-AuditInitialize = False +| | |-AuditReinitialize = False +| | |-AuditRestart = False +| | |-AuditStart = False +| | |-AuditStop = False +| | |-AuditTools = False +| | |-CSCHashIdOffset = 22000 +| | |-DecodeData = True +| | |-MonitorService = 'MonitorSvc' +| | |-OutputCollection = 'StoreGateSvc+CSC_Measurements' +| | |-OutputLevel = 0 +| | |-RDOContainer = 'StoreGateSvc+CSCRDO' +| | |=/***** Private AlgTool Muon::CSC_RawDataProviderTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-CscContainerCacheKey = 'StoreGateSvc+' +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | |-RdoLocation = 'StoreGateSvc+CSCRDO' +| | | |=/***** Private AlgTool Muon::CscROD_Decoder/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool.CscROD_Decoder ***** +| | | | |-AuditFinalize = False +| | | | |-AuditInitialize = False +| | | | |-AuditReinitialize = False +| | | | |-AuditRestart = False +| | | | |-AuditStart = False +| | | | |-AuditStop = False +| | | | |-AuditTools = False +| | | | |-IsCosmics = False +| | | | |-IsOldCosmics = False +| | | | |-MonitorService = 'MonitorSvc' +| | | | |-OutputLevel = 0 +| | | | \----- (End of Private AlgTool Muon::CscROD_Decoder/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool.CscROD_Decoder) ----- +| | | \----- (End of Private AlgTool Muon::CSC_RawDataProviderTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool) ----- +| | |=/***** Private AlgTool CscCalibTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CscCalibTool ******* +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-IsOnline = True +| | | |-Latency = 100.0 +| | | |-MonitorService = 'MonitorSvc' +| | | |-NSamples = 4 +| | | |-Noise = 3.5 +| | | |-OutputLevel = 0 +| | | |-Pedestal = 2048.0 +| | | |-ReadFromDatabase = True +| | | |-Slope = 0.19 +| | | |-SlopeFromDatabase = False +| | | |-TimeOffsetRange = 1.0 +| | | |-Use2Samples = False +| | | |-integrationNumber = 12.0 +| | | |-integrationNumber2 = 11.66 +| | | |-samplingTime = 50.0 +| | | |-signalWidth = 14.4092 +| | | |-timeOffset = 46.825 +| | | \----- (End of Private AlgTool CscCalibTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CscCalibTool) ----- +| | |=/***** Private AlgTool Muon::CscRDO_Decoder/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CscRDO_Decoder ***** +| | | |-AuditFinalize = False +| | | |-AuditInitialize = False +| | | |-AuditReinitialize = False +| | | |-AuditRestart = False +| | | |-AuditStart = False +| | | |-AuditStop = False +| | | |-AuditTools = False +| | | |-MonitorService = 'MonitorSvc' +| | | |-OutputLevel = 0 +| | | \----- (End of Private AlgTool Muon::CscRDO_Decoder/CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CscRDO_Decoder) ----- +| | \----- (End of Private AlgTool Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepData.CscRdoToCscPrepDataTool) ----- +| \----- (End of Algorithm CscRdoToCscPrepData/CscRdoToCscPrepData) ---------------------------------- +|=/***** Algorithm CscThresholdClusterBuilder/CscThesholdClusterBuilder ****************************** +| |-AuditAlgorithms = False +| |-AuditBeginRun = False +| |-AuditEndRun = False +| |-AuditExecute = False +| |-AuditFinalize = False +| |-AuditInitialize = False +| |-AuditReinitialize = False +| |-AuditRestart = False +| |-AuditStart = False +| |-AuditStop = False +| |-Enable = True +| |-ErrorCounter = 0 +| |-ErrorMax = 1 +| |-FilterCircularDependencies = True +| |-IsIOBound = False +| |-MonitorService = 'MonitorSvc' +| |-OutputLevel = 0 +| |-RegisterForContextService = False +| | (default: 'CscThresholdClusterBuilderTool/CscThresholdClusterBuilderTool') +| \----- (End of Algorithm CscThresholdClusterBuilder/CscThesholdClusterBuilder) --------------------- +\----- (End of Algorithm AthSequencer/AthAlgSeq) --------------------------------------------------- +Py:Athena INFO Save Config + +JOs reading stage finished, launching Athena from pickle file + +Py:Athena INFO executing ROOT6Setup +Py:Athena INFO configuring AthenaHive with [1] concurrent threads and [1] concurrent events +Py:AlgScheduler INFO setting up AvalancheSchedulerSvc/AvalancheSchedulerSvc with 1 threads +Py:Athena INFO now loading MuonRdoDecode.pkl ... +ApplicationMgr INFO Application Manager Configured successfully +AthDictLoaderSvc INFO in initialize... +AthDictLoaderSvc INFO acquired Dso-registry +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) +ROBDataProviderSvc INFO ---> Filter out empty ROB fragments = 'filterEmptyROB':False +ROBDataProviderSvc INFO ---> Filter out specific ROBs by Status Code: # ROBs = 0 +ROBDataProviderSvc INFO ---> Filter out Sub Detector ROBs by Status Code: # Sub Detectors = 0 +ByteStreamAddre... INFO initialized +ByteStreamAddre... INFO -- Module IDs for: +ByteStreamAddre... INFO CTP = 0x1 +ByteStreamAddre... INFO muCTPi = 0x1 +ByteStreamAddre... INFO Calorimeter Cluster Processor RoI = 0xa8, 0xa9, 0xaa, 0xab +ByteStreamAddre... INFO Calorimeter Jet/Energy Processor RoI = 0xac, 0xad +ByteStreamAddre... INFO Topo Processor RoI = 0x81, 0x91 +ByteStreamAddre... INFO -- Will fill Store with id = 0 +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 +PoolSvc INFO Successfully setup replica sorting algorithm +PoolSvc INFO Setting up APR FileCatalog and Streams +PoolSvc INFO Resolved path (via ATLAS_POOLCOND_PATH) is /cvmfs/atlas-condb.cern.ch/repo/conditions/poolcond/PoolFileCatalog.xml +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 WARNING Unable to locate catalog for prfile:poolcond/PoolCat_comcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables +PoolSvc WARNING Unable to locate catalog for apcfile:poolcond/PoolCat_comcond.xml check your ATLAS_POOLCOND_PATH and DATAPATH variables +PoolSvc INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml +IOVDbSvc INFO Opened read transaction for POOL PersistencySvc +IOVDbSvc INFO Only 5 POOL conditions files will be open at once +IOVDbSvc INFO Global tag: CONDBR2-BLKPA-2018-13 set from joboptions +IOVDbFolder INFO Inputfile tag override disabled for /GLOBAL/BField/Maps +IOVDbSvc INFO Initialised with 8 connections and 19 folders +IOVDbSvc INFO Service IOVDbSvc initialised successfully +IOVDbSvc INFO Opening COOL connection for COOLONL_MDT/CONDBR2 +IOVSvc INFO No IOVSvcTool associated with store "StoreGateSvc" +IOVSvcTool INFO IOVRanges will be checked at every Event +IOVDbSvc INFO Opening COOL connection for COOLONL_RPC/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLONL_MDT/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLOFL_MDT/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLONL_RPC/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLOFL_CSC/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLOFL_MDT/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLONL_GLOBAL/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLOFL_CSC/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLONL_TGC/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLONL_GLOBAL/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLOFL_DCS/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLONL_TGC/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLOFL_DCS/CONDBR2 +IOVDbSvc INFO Added taginfo remove for /EXT/DCS/MAGNETS/SENSORDATA +IOVDbSvc INFO Added taginfo remove for /GLOBAL/BField/Maps +IOVDbSvc INFO Added taginfo remove for /MDT/CABLING/MAP_SCHEMA +IOVDbSvc INFO Added taginfo remove for /MDT/CABLING/MEZZANINE_SCHEMA +IOVDbSvc INFO Added taginfo remove for /MDT/RTBLOB +IOVDbSvc INFO Added taginfo remove for /MDT/T0BLOB +IOVDbSvc INFO Added taginfo remove for /RPC/CABLING/MAP_SCHEMA +IOVDbSvc INFO Added taginfo remove for /RPC/CABLING/MAP_SCHEMA_CORR +IOVDbSvc INFO Added taginfo remove for /RPC/TRIGGER/CM_THR_ETA +IOVDbSvc INFO Added taginfo remove for /RPC/TRIGGER/CM_THR_PHI +IOVDbSvc INFO Added taginfo remove for /TGC/CABLING/MAP_SCHEMA +IOVDbSvc INFO Added taginfo remove for /CSC/FTHOLD +IOVDbSvc INFO Added taginfo remove for /CSC/NOISE +IOVDbSvc INFO Added taginfo remove for /CSC/PED +IOVDbSvc INFO Added taginfo remove for /CSC/PSLOPE +IOVDbSvc INFO Added taginfo remove for /CSC/RMS +IOVDbSvc INFO Added taginfo remove for /CSC/STAT +IOVDbSvc INFO Added taginfo remove for /CSC/T0BASE +IOVDbSvc INFO Added taginfo remove for /CSC/T0PHASE +DetDescrCnvSvc INFO initializing +DetDescrCnvSvc INFO Found DetectorStore service +DetDescrCnvSvc INFO filling proxies for detector managers +DetDescrCnvSvc INFO filling address for CaloTTMgr with CLID 117659265 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloMgr with CLID 4548337 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloSuperCellMgr with CLID 241807251 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloIdManager with CLID 125856940 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArIdManager with CLID 79554919 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for IdDict with CLID 2411 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for AtlasID with CLID 164875623 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for PixelID with CLID 2516 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for SCT_ID with CLID 2517 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TRT_ID with CLID 2518 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for SiliconID with CLID 129452393 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArEM_ID with CLID 163583365 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArEM_SuperCell_ID with CLID 99488227 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArHEC_ID with CLID 3870484 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArHEC_SuperCell_ID with CLID 254277678 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArFCAL_ID with CLID 45738051 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArFCAL_SuperCell_ID with CLID 12829437 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArMiniFCAL_ID with CLID 79264204 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArOnlineID with CLID 158698068 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TTOnlineID with CLID 38321944 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArOnline_SuperCellID with CLID 115600394 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArHVLineID with CLID 27863673 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for LArElectrodeID with CLID 80757351 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TileID with CLID 2901 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for Tile_SuperCell_ID with CLID 49557789 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TileHWID with CLID 2902 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TileTBID with CLID 2903 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for MDTIDHELPER with CLID 4170 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CSCIDHELPER with CLID 4171 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for RPCIDHELPER with CLID 4172 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for TGCIDHELPER with CLID 4173 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for STGCIDHELPER with CLID 4174 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for MMIDHELPER with CLID 4175 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloLVL1_ID with CLID 108133391 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloCell_ID with CLID 123500438 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloCell_SuperCell_ID with CLID 128365736 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for CaloDM_ID with CLID 167756483 and storage type 68 to detector store +DetDescrCnvSvc INFO filling address for ZdcID with CLID 190591643 and storage type 68 to detector store +GeoModelSvc.Muo... INFO Initializing ... +GeoModelSvc::RD...WARNING Getting PixTBMatComponents with default tag +GeoModelSvc::RD...WARNING Getting PixTBMaterials with default tag +GeoModelSvc::RD...WARNING Getting InDetMatComponents with default tag +GeoModelSvc::RD...WARNING Getting InDetMaterials with default tag +GeoModelSvc.Muo... INFO Properties have been set as follows: +GeoModelSvc.Muo... INFO LayoutName R +GeoModelSvc.Muo... INFO IncludeCutouts 0 +GeoModelSvc.Muo... INFO IncludeCutoutsBog 0 +GeoModelSvc.Muo... INFO IncludeCtbBis 0 +GeoModelSvc.Muo... INFO ControlAlines 111111 +GeoModelSvc.Muo... INFO MinimalGeoFlag 0 +GeoModelSvc.Muo... INFO EnableCscIntAlignment 0 +GeoModelSvc.Muo... INFO EnableCscIntAlignmentFromGM 1 +GeoModelSvc.Muo... INFO ControlCscIntAlines reset to 0 +GeoModelSvc.Muo... INFO EnableMdtDeformations 0 +GeoModelSvc.Muo... INFO EnableMdtAsBuiltParameters 0 +MuonGeoModel INFO MuonDetectorFactory - constructor MuonSystem OuterRadius 13000 Length 22030 +MuGM:MuonFactory INFO MuonLayout set to <R.08.01> = Development version for DC3 - infrastructures +MuGM:MuonFactory INFO BOG cutouts are activated 1 , all other cutouts are disabled 1 +MuGM:MuonFactory INFO Manager created for geometry version R.08.01 from DB MuonVersion <MuonSpectrometer-R.08.01> +MuonGeoModel_MYSQL INFO GeometryVersion set to <R.08.01> +MuGM:MuonFactory INFO Mysql helper class created here for geometry version R.08.01 from DB MuonVersion <MuonSpectrometer-R.08.01> +EventPersistenc... INFO Added successfully Conversion service:ByteStreamCnvSvc +EventPersistenc... INFO Added successfully Conversion service:AthenaPoolCnvSvc +EventPersistenc... INFO Added successfully Conversion service:DetDescrCnvSvc +MDT_IDDetDescrCnv INFO in createObj: creating a MdtIdHelper object in the detector store +IdDictDetDescrCnv INFO in initialize +IdDictDetDescrCnv INFO in createObj: creating a IdDictManager object in the detector store +IdDictDetDescrCnv INFO IdDictName: IdDictParser/ATLAS_IDS.xml +IdDictDetDescrCnv INFO Reading InnerDetector IdDict file InDetIdDictFiles/IdDictInnerDetector_IBL3D25-03.xml +IdDictDetDescrCnv INFO Reading LArCalorimeter IdDict file IdDictParser/IdDictLArCalorimeter_DC3-05-Comm-01.xml +IdDictDetDescrCnv INFO Reading TileCalorimeter IdDict file IdDictParser/IdDictTileCalorimeter.xml +IdDictDetDescrCnv INFO Reading Calorimeter IdDict file IdDictParser/IdDictCalorimeter_L1Onl.xml +IdDictDetDescrCnv INFO Reading MuonSpectrometer IdDict file IdDictParser/IdDictMuonSpectrometer_R.03.xml +IdDictDetDescrCnv INFO Reading ForwardDetectors IdDict file IdDictParser/IdDictForwardDetectors_2010.xml +IdDictDetDescrCnv INFO Found id dicts: +IdDictDetDescrCnv INFO Using dictionary tag: null +IdDictDetDescrCnv INFO Dictionary ATLAS version default DetDescr tag (using default) file +IdDictDetDescrCnv INFO Dictionary Calorimeter version default DetDescr tag CaloIdentifier-LVL1-02 file IdDictParser/IdDictCalorimeter_L1Onl.xml +IdDictDetDescrCnv INFO Dictionary ForwardDetectors version default DetDescr tag ForDetIdentifier-01 file IdDictParser/IdDictForwardDetectors_2010.xml +IdDictDetDescrCnv INFO Dictionary InnerDetector version IBL-DBM DetDescr tag InDetIdentifier-IBL3D25-02 file InDetIdDictFiles/IdDictInnerDetector_IBL3D25-03.xml +IdDictDetDescrCnv INFO Dictionary LArCalorimeter version fullAtlas DetDescr tag LArIdentifier-DC3-05-Comm file IdDictParser/IdDictLArCalorimeter_DC3-05-Comm-01.xml +IdDictDetDescrCnv INFO Dictionary LArElectrode version fullAtlas DetDescr tag (using default) file +IdDictDetDescrCnv INFO Dictionary LArHighVoltage version fullAtlas DetDescr tag (using default) file +IdDictDetDescrCnv INFO Dictionary MuonSpectrometer version R.03 DetDescr tag MuonIdentifier-08 file IdDictParser/IdDictMuonSpectrometer_R.03.xml +IdDictDetDescrCnv INFO Dictionary TileCalorimeter version fullAtlasAndTestBeam DetDescr tag TileIdentifier-00 file IdDictParser/IdDictTileCalorimeter.xml +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +MdtIdHelper INFO MultiRange built successfully to Technology: MultiRange size is 210 +MdtIdHelper INFO MultiRange built successfully to detector element: Multilayer MultiRange size is 241 +MdtIdHelper INFO MultiRange built successfully to tube: MultiRange size is 241 +MdtIdHelper INFO Initializing MDT hash indices ... +MdtIdHelper INFO The element hash max is 1188 +MdtIdHelper INFO The detector element hash max is 2328 +MdtIdHelper INFO Initializing MDT hash indices for finding neighbors ... +MuGM:MuonFactory INFO MDTIDHELPER retrieved from DetStore +RPC_IDDetDescrCnv INFO in createObj: creating a RpcIdHelper object in the detector store +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +RpcIdHelper INFO MultiRange built successfully to doubletR: MultiRange size is 241 +RpcIdHelper INFO MultiRange built successfully to detectorElement: DetectorElement MultiRange size is 241 +RpcIdHelper INFO MultiRange built successfully to rpcStrip: MultiRange size is 241 +RpcIdHelper INFO Initializing RPC hash indices ... +RpcIdHelper INFO The element hash max is 600 +RpcIdHelper INFO The detector element hash max is 1122 +RpcIdHelper INFO Initializing RPC hash indices for finding neighbors ... +MuGM:MuonFactory INFO RPCIDHELPER retrieved from DetStore +TGC_IDDetDescrCnv INFO in createObj: creating a TgcIdHelper object in the detector store +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +TgcIdHelper INFO MultiRange built successfully to Technology: MultiRange size is 210 +TgcIdHelper INFO MultiRange built successfully to detector element: Multilayer MultiRange size is 210 +TgcIdHelper INFO MultiRange built successfully to channel: MultiRange size is 241 +TgcIdHelper INFO Initializing TGC hash indices ... +TgcIdHelper INFO The element hash max is 1578 +TgcIdHelper INFO The detector element hash max is 1578 +TgcIdHelper INFO Initializing TGC hash indices for finding neighbors ... +MuGM:MuonFactory INFO TGCIDHELPER retrieved from DetStore +CSC_IDDetDescrCnv INFO in createObj: creating a CcscIdHelper object in the detector store +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +CscIdHelper INFO MultiRange built successfully to Technology: MultiRange size is 210 +CscIdHelper INFO MultiRange built successfully to detector element: Multilayer MultiRange size is 237 +CscIdHelper INFO MultiRange built successfully to cscStrip: MultiRange size is 241 +CscIdHelper INFO Initializing CSC hash indices ... +CscIdHelper INFO The element hash max is 32 +CscIdHelper INFO The detector element hash max is 64 +CscIdHelper INFO The channel hash max is 61440 +CscIdHelper INFO Initializing CSC hash indices for finding neighbors ... +MuGM:MuonFactory INFO CSCIDHELPER retrieved from DetStore +sTGC_IDDetDescrCnv INFO in createObj: creating a sTgcIdHelper object in the detector store +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +MuGM:MuonFactory INFO STGCIDHELPER retrieved from DetStore +MM_IDDetDescrCnv INFO in createObj: creating a MmIdHelper object in the detector store +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0 +AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0 +AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! +AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! + AtlasDetectorID::initialize_from_dictionary - OK +MuGM:MuonFactory INFO MMIDHELPER retrieved from DetStore +MuGM:MuonFactory INFO **************** MuonDetectorFactory001 ************************ +MuGM:MuonFactory INFO *** Start building the Muon Geometry Tree ********************** +RDBAccessSvc WARNING Could not get the tag for XtomoData node. Returning 0 pointer to IRDBQuery +MuGM:RDBReadAtlas INFO After getQuery XtomoData +In DblQ00Xtomo(data) +No XtomoData table in the MuonDD Database +MuGM:RDBReadAtlas INFO After new DblQ00Xtomo +MuGM:RDBReadAtlas INFO After m_dhxtomo.data() +MuGM:RDBReadAtlas INFO No Ascii aszt input found: looking for A-lines in ORACLE +MuGM:RDBReadAtlas INFO ASZT table found in Oracle +MuGM:RDBReadAtlas INFO ASZT size is 32 +MuGM:RDBReadAtlas INFO No Ascii iacsc input found: looking for A-lines in ORACLE +RDBAccessSvc WARNING Could not get the tag for ISZT node. Returning 0 pointer to IRDBQuery +MuGM:RDBReadAtlas INFO No ISZT table in Oracle +MuGM:RDBReadAtlas INFO Access granted for all dbObjects needed by muon detectors +MuonGeoModel_MYSQL INFO LayoutName (from DBAM) set to <R.08> -- relevant for CTB2004 +MuGM:ProcStations INFO Processing Stations and Components +MuGM:ProcStations INFO Processing Stations and Components DONE +MuGM:ProcTechnol.s INFO nMDT 13 nCSC 2 nTGC 22 nRPC 25 +MuGM:ProcTechnol.s INFO nDED 2 nSUP 4 nSPA 2 +MuGM:ProcTechnol.s INFO nCHV 7 nCRO 7 nCMI 6 nLBI 6 +MuGM:ProcPosition INFO *** N. of stations positioned in the setup 234 +MuGM:ProcPosition INFO *** N. of stations described in mysql 234 +MuGM:ProcPosition INFO *** N. of types 32 size of jtypvec 32 +MuGM:ProcPosition INFO *** : 234 kinds of stations (type*sub_type) +MuGM:ProcPosition INFO *** : 1758 physical stations in space - according to the MuonDD DataBase +MuGM:ProcCutouts INFO Processing Cutouts for geometry layout R.08 +MuGM:ProcCutouts INFO Processing Cutouts DONE +MuGM:RDBReadAtlas INFO ProcessTGCreadout - version 7 wirespacing 1.8 +MuGM:RDBReadAtlas INFO Intermediate Objects built from primary numbers +MuGM:MuonFactory INFO theMaterialManager retrieven successfully from the DetStore +MuGM:MuonFactory INFO TreeTop added to the Manager +MuGM:MuonFactory INFO Muon Layout R.08.01 +MuGM:MuonFactory INFO Fine Clash Fixing disabled: (should be ON/OFF for Simulation/Reconstruction) +MuGM:MuonFactory INFO **************** MuonDetectorFactory001 **************************** +MuGM:MuonFactory INFO *** The Muon Chamber Geometry Tree is built with +MuGM:MuonFactory INFO *** 1758 child volumes +MuGM:MuonFactory INFO *** 1839 independent elements and +MuGM:MuonFactory INFO *** 11473 elements cloned or shared +MuGM:MuonFactory INFO *** 234 kinds of stations +MuGM:MuonFactory INFO *** 1758 stations with alignable transforms +MuGM:MuonFactory INFO *** 148 stations are described as Assemblies +MuGM:MuonFactory INFO *** 1758 MuonStations +MuGM:MuonFactory INFO *** 2324 MDT Readout Elements 1186 MDT Detector Elements +MuGM:MuonFactory INFO *** 32 CSC Readout Elements 32 CSC Detector Elements +MuGM:MuonFactory INFO *** 1122 RPC Readout Elements 600 RPC Detector Elements +MuGM:MuonFactory INFO *** 1578 TGC Readout Elements 1578 TGC Detector Elements +MuGM:MuonFactory INFO ******************************************************************** +MuGM:MuonFactory INFO *** Inert Material built according to DB switches and config. ****** +MuGM:MuonFactory INFO *** The Muon Geometry Tree has 1758 child vol.s in total ******** +MuGM:MuonFactory INFO ******************************************************************** + +MGM::MuonDetect... INFO Init A/B Line Containers - done - size is respectively 1758/0 +MGM::MuonDetect... INFO No Aline for CSC wire layers loaded +GeoModelSvc.Muo... INFO CondAttrListCollection not found in the DetectorStore +GeoModelSvc.Muo... INFO Unable to register callback on CondAttrListCollection for any folder in the list +GeoModelSvc.Muo... INFO This is OK unless you expect to read alignment and deformations from COOL +CondInputLoader INFO Initializing CondInputLoader... +CondInputLoader INFO Adding base classes: + + ( 'CondAttrListCollection' , 'ConditionStore+/EXT/DCS/MAGNETS/SENSORDATA' ) -> + + ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MAP_SCHEMA' ) -> + + ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MEZZANINE_SCHEMA' ) -> +CondInputLoader INFO Will create WriteCondHandle dependencies for the following DataObjects: + + ( 'CondAttrListCollection' , 'ConditionStore+/EXT/DCS/MAGNETS/SENSORDATA' ) + + ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MAP_SCHEMA' ) + + ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MEZZANINE_SCHEMA' ) +RpcRawDataProvider INFO RpcRawDataProvider::initialize +RpcRawDataProvider INFO 'DoSeededDecoding':False +ToolSvc.RPCCabl... INFO Initializing - folders names are: conf /RPC/CABLING/MAP_SCHEMA / corr /RPC/CABLING/MAP_SCHEMA_CORR +MuonRPC_CablingSvc INFO RPCCablingDbTool retrieved with statusCode = SUCCESS with handle TheRpcCablingDbTool = PublicToolHandle('RPCCablingDbTool/RPCCablingDbTool') +MuonRPC_CablingSvc INFO Register call-back against 2 folders listed below +MuonRPC_CablingSvc INFO Folder n. 1 </RPC/CABLING/MAP_SCHEMA> found in the DetStore +MuonRPC_CablingSvc INFO initMappingModel registered for call-back against folder </RPC/CABLING/MAP_SCHEMA> +MuonRPC_CablingSvc INFO Folder n. 2 </RPC/CABLING/MAP_SCHEMA_CORR> found in the DetStore +MuonRPC_CablingSvc INFO initMappingModel registered for call-back against folder </RPC/CABLING/MAP_SCHEMA_CORR> +MuonRPC_CablingSvc INFO RPCTriggerDbTool retrieved with statusCode = SUCCESS pointer = TheRpcTriggerDbTool = PublicToolHandle('RPCTriggerDbTool') +MuonRPC_CablingSvc INFO Register call-back against 2 folders listed below +MuonRPC_CablingSvc INFO Folder n. 1 </RPC/TRIGGER/CM_THR_ETA> found in the DetStore +MuonRPC_CablingSvc INFO initTrigRoadsModel registered for call-back against folder </RPC/TRIGGER/CM_THR_ETA> +MuonRPC_CablingSvc INFO Folder n. 2 </RPC/TRIGGER/CM_THR_PHI> found in the DetStore +MuonRPC_CablingSvc INFO initTrigRoadsModel registered for call-back against folder </RPC/TRIGGER/CM_THR_PHI> +RpcRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('Muon::RpcROD_Decoder/RpcROD_Decoder') +RpcRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') +RpcRawDataProvi... INFO Tool = RpcRawDataProvider.RPC_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc +RpcRawDataProvi... INFO initialize() successful in RpcRawDataProvider.RPC_RawDataProviderTool +TgcRawDataProvider INFO TgcRawDataProvider::initialize +TgcRawDataProvi... INFO initialize() successful in TgcRawDataProvider.TGC_RawDataProviderTool.TgcROD_Decoder +TgcRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('Muon::TGC_RodDecoderReadout/TgcROD_Decoder') +TgcRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') +TgcRawDataProvi... INFO Tool = TgcRawDataProvider.TGC_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc +MuonTGC_CablingSvc INFO for 1/12 sector initialize +ToolSvc.TGCCabl... INFO initialize +TgcRawDataProvi... INFO initialize() successful in TgcRawDataProvider.TGC_RawDataProviderTool +MdtRawDataProvider INFO MdtRawDataProvider::initialize +MdtRawDataProvi...VERBOSE Starting init +MdtRawDataProvi...VERBOSE Getting m_robDataProvider +MdtRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') +MdtRawDataProvi...VERBOSE Getting MuonDetectorManager +MdtRawDataProvi...VERBOSE Getting m_decoder +MdtRawDataProvi... INFO Processing configuration for layouts with BME chambers. +MdtRawDataProvi... INFO Processing configuration for layouts with BMG chambers. +MdtRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('MdtROD_Decoder/MdtROD_Decoder') +MdtRawDataProvi... INFO Tool = MdtRawDataProvider.MDT_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc +MdtRawDataProvi... DEBUG Could not find TrigConf::HLTJobOptionsSvc +MdtRawDataProvi... INFO initialize() successful in MdtRawDataProvider.MDT_RawDataProviderTool +MdtRawDataProvi... DEBUG Adding private ToolHandle tool MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder (MdtROD_Decoder) +CscRawDataProvi...VERBOSE ServiceLocatorHelper::service: found service ActiveStoreSvc +CscRawDataProvi... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') +CscRawDataProvi...VERBOSE ServiceLocatorHelper::service: found service JobOptionsSvc +CscRawDataProvi... INFO Tool = CscRawDataProvider.CSC_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc +CscRawDataProvi... DEBUG Could not find TrigConf::HLTJobOptionsSvc +CscRawDataProvi... DEBUG Found the CscIdHelper. +CscRawDataProvi... INFO Retrieved tool Decoder = PrivateToolHandle('Muon::CscROD_Decoder/CscROD_Decoder') +CscRawDataProvi... INFO The Muon Geometry version is R.08.01 +CscRawDataProvi... INFO initialize() successful in CscRawDataProvider.CSC_RawDataProviderTool +CscRawDataProvi... DEBUG Adding private ToolHandle tool CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder (Muon::CscROD_Decoder) +RpcRdoToRpcPrep... INFO properties are +RpcRdoToRpcPrep... INFO processingData 0 +RpcRdoToRpcPrep... INFO produceRpcCoinDatafromTriggerWords 1 +RpcRdoToRpcPrep... INFO reduceCablingOverlap 1 +RpcRdoToRpcPrep... INFO solvePhiAmbiguities 1 +RpcRdoToRpcPrep... INFO timeShift -12.5 +RpcRdoToRpcPrep... INFO etaphi_coincidenceTime 20 +RpcRdoToRpcPrep... INFO overlap_timeTolerance 10 +RpcRdoToRpcPrep... INFO Correct prd time from cool db 0 +RpcRdoToRpcPrep... INFO Rpc Cabling Svc name is dataLike +RpcRdoToRpcPrep... INFO Retrieved DecodingTool = PrivateToolHandle('Muon::RpcRdoToPrepDataTool/RpcRdoToRpcPrepDataTool') +TgcRdoToTgcPrep... INFO initialize() successful in TgcRdoToTgcPrepData.TgcRdoToTgcPrepDataTool +TgcRdoToTgcPrep... INFO Retrieved DecodingTool = PrivateToolHandle('Muon::TgcRdoToPrepDataTool/TgcRdoToTgcPrepDataTool') +MdtCalibrationSvc INFO Processing configuration for layouts with BMG chambers. +AtlasFieldSvc INFO initialize() ... +AtlasFieldSvc INFO maps will be chosen reading COOL folder /GLOBAL/BField/Maps +AtlasFieldSvc INFO magnet currents will be read from COOL folder /EXT/DCS/MAGNETS/SENSORDATA +AtlasFieldSvc INFO Booked callback for /EXT/DCS/MAGNETS/SENSORDATA +AtlasFieldSvc INFO initialize() successful +MdtRdoToMdtPrep... INFO Processing configuration for layouts with BME chambers. +MdtRdoToMdtPrep... INFO Processing configuration for layouts with BMG chambers. +MdtRdoToMdtPrep... INFO Retrieved DecodingTool = PrivateToolHandle('Muon::MdtRdoToPrepDataTool/MdtRdoToMdtPrepDataTool') +CscRdoToCscPrep... INFO The Geometry version is MuonSpectrometer-R.08.01 +CscRdoToCscPrep... INFO Retrieved service ServiceHandle('ROBDataProviderSvc') +CscRdoToCscPrep... INFO Tool = CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool is connected to JobOptionsSvc Service = JobOptionsSvc +CscRdoToCscPrep... INFO Retrieved tool Decoder = PrivateToolHandle('Muon::CscROD_Decoder/CscROD_Decoder') +CscRdoToCscPrep... INFO The Muon Geometry version is R.08.01 +CscRdoToCscPrep... INFO initialize() successful in CscRdoToCscPrepData.CscRdoToCscPrepDataTool.CSC_RawDataProviderTool +MuonCalib::CscC... INFO Initializing CscCoolStrSvc +CscRdoToCscPrep... INFO Retrieved CscRdoToCscPrepDataTool = PrivateToolHandle('Muon::CscRdoToCscPrepDataTool/CscRdoToCscPrepDataTool') +CscRdoToCscPrep...WARNING Implicit circular data dependency detected for id ( 'CscRawDataContainer' , 'StoreGateSvc+CSCRDO' ) +HistogramPersis...WARNING Histograms saving not required. +EventSelector WARNING InputCollections not properly set, checking EventStorageInputSvc properties +EventSelector INFO Retrieved StoreGateSvc name of '':StoreGateSvc +EventSelector INFO reinitialization... +ToolSvc.Luminos... INFO LuminosityTool::initialize() registering +ToolSvc.Luminos... INFO LumiFolderName is empty, skipping +ToolSvc.Luminos... INFO OnlineLumiCalibrationTool.empty() is TRUE, skipping... +ToolSvc.Luminos... INFO FillParamsTool.empty() is TRUE, skipping... +ToolSvc.Luminos... INFO BunchLumisTool.empty() is TRUE, skipping... +ToolSvc.Luminos... INFO BunchGroupTool.empty() is TRUE, skipping... +ToolSvc.Luminos... INFO LBLBFolderName is empty, skipping... +EventSelector INFO Retrieved InputCollections from InputSvc +EventSelector INFO reinitialization... +AthenaEventLoopMgr INFO Setup EventSelector service EventSelector +ApplicationMgr INFO Application Manager Initialized successfully +ByteStreamInputSvc INFO Picked valid file: /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1 +CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/EXT/DCS/MAGNETS/SENSORDATA' +CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/MDT/CABLING/MAP_SCHEMA' +CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/MDT/CABLING/MEZZANINE_SCHEMA' +ApplicationMgr INFO Application Manager Started successfully +EventInfoByteSt... INFO UserType : RawEvent +EventInfoByteSt... INFO IsSimulation : 0 +EventInfoByteSt... INFO IsTestbeam : 0 +EventInfoByteSt... INFO IsCalibration : 0 +EventInfoByteSt... INFO EventContext not valid +AthenaEventLoopMgr INFO ===>>> start of run 327265 <<<=== +EventPersistenc... INFO Added successfully Conversion service:TagInfoMgr +IOVDbSvc INFO Opening COOL connection for COOLOFL_DCS/CONDBR2 +IOVDbSvc INFO Disconnecting from COOLOFL_DCS/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLONL_GLOBAL/CONDBR2 +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to BFieldMap-Run1-14m-v01 for folder /GLOBAL/BField/Maps +IOVDbSvc INFO Disconnecting from COOLONL_GLOBAL/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLONL_RPC/CONDBR2 +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to RPCCablingMapSchema_2016_2017_01 for folder /RPC/CABLING/MAP_SCHEMA +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to RPCCablingMapSchemaCorr_2016_2017_01 for folder /RPC/CABLING/MAP_SCHEMA_CORR +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to RPCTriggerCMThrEta_RUN1-RUN2-HI-02 for folder /RPC/TRIGGER/CM_THR_ETA +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to RPCTriggerCMThrPhi_RUN1-RUN2-HI-02 for folder /RPC/TRIGGER/CM_THR_PHI +IOVDbSvc INFO Disconnecting from COOLONL_RPC/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLONL_TGC/CONDBR2 +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to TgcCablingMapschema-RUN2-20100908-ASD2PPONL for folder /TGC/CABLING/MAP_SCHEMA +IOVDbSvc INFO Disconnecting from COOLONL_TGC/CONDBR2 +IOVDbSvc INFO Opening COOL connection for COOLOFL_CSC/CONDBR2 +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscFthold-RUN2-BLK-UPD1-007-00 for folder /CSC/FTHOLD +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscNoise-RUN2-BLK-UPD1-007-00 for folder /CSC/NOISE +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscPed-RUN2-BLK-UPD1-007-00 for folder /CSC/PED +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscPslope-RUN2-BLK-UPD1-000-00 for folder /CSC/PSLOPE +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscRms-RUN2-BLK-UPD1-003-00 for folder /CSC/RMS +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscStat-RUN2-BLK-UPD1-008-00 for folder /CSC/STAT +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscT0base-RUN2-BLK-UPD1-001-00 for folder /CSC/T0BASE +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to CscT0phase-RUN2-BLK-UPD2-001-00 for folder /CSC/T0PHASE +IOVDbSvc INFO Disconnecting from COOLOFL_CSC/CONDBR2 +MuonRPC_CablingSvc INFO initMappingModel has been called +MuonRPC_CablingSvc INFO ToolHandle in initMappingModel - <TheRpcCablingDbTool = PublicToolHandle('RPCCablingDbTool/RPCCablingDbTool')> +MuonRPC_CablingSvc INFO Retrieving cabling singleton; to create an empty one or to get the existing one +RPCcabling INFO CablingRPC---singleton constructor ---- this must be executed just once +RPCcabling INFO CablingRPC---The singleton will fill the maps from the COOL streams +RPCcabling INFO CablingRPC---InitMaps from COOL cannot be executed NOW: empty string +RPCcabling INFO CablingRPC---The singleton is created here +RPCcabling INFO CablingRPC--- cacheCleared: s_status = 0 +MuonRPC_CablingSvc INFO Cabling singleton cache has been cleared +MuonRPC_CablingSvc INFO Trigger roads will be loaded from COOL +ToolSvc.RPCCabl... INFO LoadParameters /RPC/CABLING/MAP_SCHEMA I=2 +ToolSvc.RPCCabl... INFO loadRPCMap --- Load Map from DB +ToolSvc.RPCCabl... INFO Try to read from folder </RPC/CABLING/MAP_SCHEMA> +ToolSvc.RPCCabl... INFO CondAttrListCollection from DB folder have been obtained with size 1 +ToolSvc.RPCCabl... INFO Loop over CondAttrListCollection ic = 1 +ToolSvc.RPCCabl... INFO After Reading folder, Configuration string size is 222202 +ToolSvc.RPCCabl... INFO LoadParameters /RPC/CABLING/MAP_SCHEMA_CORR I=2 +ToolSvc.RPCCabl... INFO loadRPCCorr --- Load Corrections from DB +ToolSvc.RPCCabl... INFO Try to read from folder </RPC/CABLING/MAP_SCHEMA_CORR> +ToolSvc.RPCCabl... INFO CondAttrListCollection from DB folder have been obtained with size 1 +ToolSvc.RPCCabl... INFO After Reading folder, Correction string size is 29369 +MuonRPC_CablingSvc INFO InitMappingModel: Trigger roads not yet loaded from COOL - postpone cabling initialization +MuonRPC_CablingSvc INFO initTrigRoadsModel has been called +MuonRPC_CablingSvc INFO Trigger roads will be loaded from COOL +MuonRPC_CablingSvc INFO Retrieve the pointer to the cabling singleton +RPCcabling INFO CablingRPC--- cacheCleared: s_status = 0 +MuonRPC_CablingSvc INFO Cabling singleton cache has been cleared +ToolSvc.RPCTrig... INFO LoadParameters /RPC/TRIGGER/CM_THR_ETA I=2 +ToolSvc.RPCTrig... INFO LoadParameters /RPC/TRIGGER/CM_THR_PHI I=2 +MuonRPC_CablingSvc INFO ======== RPC Trigger Roads from COOL - Header infos ======== +MuonRPC_CablingSvc INFO +RPC LVL1 Configuration 10.6 with roads from Feb 2012 +L1 THRESHOLDS: MU4 MU6 MU10 MU11 MU15 MU20 +Road version: "road_files_120209" +CMA th0 th1 th2 +eta low-pt mu4 mu6 mu10 +phi low-pt mu4 mu6 mu10 +eta high-pt mu11 mu15 mu20 +phi high-pt mu11 mu15 mu15 + + +RPCcabling INFO CablingRPC---InitMaps from COOL: going to read configuration +RPCcabling INFO CablingRPC--- ReadConf: map has size 222202 +RPCcabling INFO CablingRPC--- ReadConf: map n. of lines read is 924 +RPCcabling INFO CablingRPC--- ReadConf: version is 5.0 Atlas R_07_03_RUN2ver104 +RPCcabling INFO CablingRPC--- buildRDOmap +RPCcabling INFO CablingRPC---InitMaps from COOL: going to read corrections to configuration +RPCcabling INFO CablingRPC--->> RPC cabling corrections from COOL << +RPCcabling INFO CablingRPC--- ReadCorr: CorrMap has size 29369 +RPCcabling INFO CablingRPC--- ReadConf: CorrMap n. of lines read is 743 +RPCcabling INFO CablingRPC---InitMaps from COOL - maps have been parsed +MuonRPC_CablingSvc INFO InitTrigRoadsModel: RPC cabling model is loaded! +Level-1 configuration database version 5.0 Atlas R_07_03_RUN2ver104 read. +Contains 26 Trigger Sector Types: +negative sectors 0 - 15 ==> 18 2 24 3 19 2 24 4 20 2 24 1 18 5 25 6 +negative sectors 16 - 31 ==> 21 13 26 6 21 7 16 8 14 7 16 6 21 13 26 1 +positive sectors 32 - 47 ==> 9 24 2 22 9 24 2 23 10 24 2 18 1 25 5 18 +positive sectors 48 - 63 ==> 1 26 13 21 6 17 12 15 11 17 12 21 6 26 13 22 + +MuonRPC_CablingSvc INFO buildOfflineOnlineMap +MuonRPC_CablingSvc INFO Applying FeetPadThresholds : 0,2,5 +MuonRPC_CablingSvc INFO MuonRPC_CablingSvc initialized succesfully +MuonTGC_CablingSvc INFO updateCableASDToPP called +ToolSvc.TGCCabl... INFO loadTGCMap from DB +ToolSvc.TGCCabl... INFO CondAttrListCollection from DB folder have been obtained with size 1 +ToolSvc.TGCCabl... INFO giveASD2PP_DIFF_12 (m_ASD2PP_DIFF_12 is not NULL) +MdtCalibrationD... INFO RtKey I=2 TubeKey I=2 +AtlasFieldSvc INFO reading magnetic field map filenames from COOL +AtlasFieldSvc INFO found map of type GlobalMap with soleCur=7730 toroCur=20400 (path file:MagneticFieldMaps/bfieldmap_7730_20400_14m.root) +AtlasFieldSvc INFO found map of type SolenoidMap with soleCur=7730 toroCur=0 (path file:MagneticFieldMaps/bfieldmap_7730_0_14m.root) +AtlasFieldSvc INFO found map of type ToroidMap with soleCur=0 toroCur=20400 (path file:MagneticFieldMaps/bfieldmap_0_20400_14m.root) +AtlasFieldSvc INFO no need to update map set +AtlasFieldSvc INFO Attempt 1 at reading currents from DCS (using channel name) +AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] CentralSol_Current , 1 , 7729.99 +AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] CentralSol_SCurrent , 2 , 7730 +AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] Toroids_Current , 3 , 20399.9 +AtlasFieldSvc INFO Trying to read from DCS: [channel name, index, value] Toroids_SCurrent , 4 , 20397.7 +AtlasFieldSvc INFO Currents read from DCS: solenoid 7729.99 toroid 20399.9 +AtlasFieldSvc INFO Initializing the field map (solenoidCurrent=7729.99 toroidCurrent=20399.9) +AthenaEventLoopMgr INFO ===>>> start processing event #186525031, run #327265 0 events processed so far <<<=== +IOVDbSvc INFO Opening COOL connection for COOLONL_MDT/CONDBR2 +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to MDTCablingMapSchema_BMG_01 for folder /MDT/CABLING/MAP_SCHEMA +IOVDbFolder INFO HVS tag CONDBR2-BLKPA-2018-13 resolved to MDTCablingMezzanineSchema_M5-RUN2 for folder /MDT/CABLING/MEZZANINE_SCHEMA +IOVDbSvc INFO Disconnecting from COOLONL_MDT/CONDBR2 +MuonMDT_CablingAlg INFO Size of CondAttrListCollection ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MEZZANINE_SCHEMA' ) readCdoMez->size()= 24 +MuonMDT_CablingAlg INFO Size of CondAttrListCollection ( 'CondAttrListCollection' , 'ConditionStore+/MDT/CABLING/MAP_SCHEMA' ) readCdoMap->size()= 2312 +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG fillCollection: starting +MdtRawDataProvi... DEBUG **********Decoder dumping the words******** +MdtRawDataProvi... DEBUG The size of this ROD-read is +MdtRawDataProvi... DEBUG word 0 = 8003e994 +MdtRawDataProvi... DEBUG word 1 = 81040007 +MdtRawDataProvi... DEBUG word 2 = 18030370 +MdtRawDataProvi... DEBUG word 3 = 890003ff +MdtRawDataProvi... DEBUG word 4 = a3994153 +MdtRawDataProvi... DEBUG word 5 = 30a403c0 +MdtRawDataProvi... DEBUG word 6 = 30a004ce +MdtRawDataProvi... DEBUG word 7 = 8a994005 +MdtRawDataProvi... DEBUG word 8 = 8104000d +MdtRawDataProvi... DEBUG word 9 = 18030371 +MdtRawDataProvi... DEBUG word 10 = 89000fff +MdtRawDataProvi... DEBUG word 11 = a2994153 +MdtRawDataProvi... DEBUG word 12 = 306c0472 +MdtRawDataProvi... DEBUG word 13 = 306804d5 +MdtRawDataProvi... DEBUG word 14 = a3994153 +MdtRawDataProvi... DEBUG word 15 = 20080000 +MdtRawDataProvi... DEBUG word 16 = a4994153 +MdtRawDataProvi... DEBUG word 17 = 301c0504 +MdtRawDataProvi... DEBUG word 18 = 30180562 +MdtRawDataProvi... DEBUG word 19 = 20000010 +MdtRawDataProvi... DEBUG word 20 = 8a99400b +MdtRawDataProvi... DEBUG word 21 = 81040006 +MdtRawDataProvi... DEBUG word 22 = 18030372 +MdtRawDataProvi... DEBUG word 23 = 89003fff +MdtRawDataProvi... DEBUG word 24 = a6994153 +MdtRawDataProvi... DEBUG word 25 = 20008000 +MdtRawDataProvi... DEBUG word 26 = 8a994004 +MdtRawDataProvi... DEBUG word 27 = 8104000f +MdtRawDataProvi... DEBUG word 28 = 18030373 +MdtRawDataProvi... DEBUG word 29 = 89003fff +MdtRawDataProvi... DEBUG word 30 = a0994153 +MdtRawDataProvi... DEBUG word 31 = 3034054a +MdtRawDataProvi... DEBUG word 32 = 303005c2 +MdtRawDataProvi... DEBUG word 33 = a7994153 +MdtRawDataProvi... DEBUG word 34 = 3084023a +MdtRawDataProvi... DEBUG word 35 = 3080029e +MdtRawDataProvi... DEBUG word 36 = a8994153 +MdtRawDataProvi... DEBUG word 37 = 307c03f6 +MdtRawDataProvi... DEBUG word 38 = 30ac03f8 +MdtRawDataProvi... DEBUG word 39 = 307804c4 +MdtRawDataProvi... DEBUG word 40 = 30a804cb +MdtRawDataProvi... DEBUG word 41 = 8a99400d +MdtRawDataProvi... DEBUG word 42 = 81040008 +MdtRawDataProvi... DEBUG word 43 = 18030374 +MdtRawDataProvi... DEBUG word 44 = 8903ffff +MdtRawDataProvi... DEBUG word 45 = af994153 +MdtRawDataProvi... DEBUG word 46 = 302c05c7 +MdtRawDataProvi... DEBUG word 47 = 30280664 +MdtRawDataProvi... DEBUG word 48 = 305c0673 +MdtRawDataProvi... DEBUG word 49 = 8a994006 +MdtRawDataProvi... DEBUG word 50 = 81040031 +MdtRawDataProvi... DEBUG word 51 = 18030375 +MdtRawDataProvi... DEBUG word 52 = 8903ffff +MdtRawDataProvi... DEBUG word 53 = a0994153 +MdtRawDataProvi... DEBUG word 54 = 3054055c +MdtRawDataProvi... DEBUG word 55 = 305005fb +MdtRawDataProvi... DEBUG word 56 = a2994153 +MdtRawDataProvi... DEBUG word 57 = 20010000 +MdtRawDataProvi... DEBUG word 58 = a8994153 +MdtRawDataProvi... DEBUG word 59 = 306c034f +MdtRawDataProvi... DEBUG word 60 = 309c0349 +MdtRawDataProvi... DEBUG word 61 = 308c0394 +MdtRawDataProvi... DEBUG word 62 = 309803d9 +MdtRawDataProvi... DEBUG word 63 = 304c03f8 +MdtRawDataProvi... DEBUG word 64 = 30680422 +MdtRawDataProvi... DEBUG word 65 = 30880439 +MdtRawDataProvi... DEBUG word 66 = 30bc03f3 +MdtRawDataProvi... DEBUG word 67 = 3048049a +MdtRawDataProvi... DEBUG word 68 = 30b80479 +MdtRawDataProvi... DEBUG word 69 = 305c05e9 +MdtRawDataProvi... DEBUG word 70 = 30580652 +MdtRawDataProvi... DEBUG word 71 = af994153 +MdtRawDataProvi... DEBUG word 72 = 30940521 +MdtRawDataProvi... DEBUG word 73 = 30840583 +MdtRawDataProvi... DEBUG word 74 = 308c0583 +MdtRawDataProvi... DEBUG word 75 = 309c0585 +MdtRawDataProvi... DEBUG word 76 = 308005e7 +MdtRawDataProvi... DEBUG word 77 = 308805f5 +MdtRawDataProvi... DEBUG word 78 = 3090061d +MdtRawDataProvi... DEBUG word 79 = 309805f1 +MdtRawDataProvi... DEBUG word 80 = 30a40587 +MdtRawDataProvi... DEBUG word 81 = 30ac0588 +MdtRawDataProvi... DEBUG word 82 = 30b40589 +MdtRawDataProvi... DEBUG word 83 = 30bc058d +MdtRawDataProvi... DEBUG word 84 = 30a005fc +MdtRawDataProvi... DEBUG word 85 = 30a805f2 +MdtRawDataProvi... DEBUG word 86 = 30b005e7 +MdtRawDataProvi... DEBUG word 87 = 30b805d8 +MdtRawDataProvi... DEBUG word 88 = b0994153 +MdtRawDataProvi... DEBUG word 89 = 306c0082 +MdtRawDataProvi... DEBUG word 90 = 3068012b +MdtRawDataProvi... DEBUG word 91 = 303c01ed +MdtRawDataProvi... DEBUG word 92 = 30380250 +MdtRawDataProvi... DEBUG word 93 = 306c0556 +MdtRawDataProvi... DEBUG word 94 = 306805a3 +MdtRawDataProvi... DEBUG word 95 = 20004000 +MdtRawDataProvi... DEBUG word 96 = b1994153 +MdtRawDataProvi... DEBUG word 97 = 20010000 +MdtRawDataProvi... DEBUG word 98 = 8a99402f +MdtRawDataProvi... DEBUG word 99 = f0000064 +MdtRawDataProvi... DEBUG Found the beginning of buffer +MdtRawDataProvi... DEBUG Level 1 Id : 256404 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 0 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 1 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 2 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 3 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 7 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 4 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 15 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 0 csmId : 5 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 15 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 16 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 17 +MdtRawDataProvi... DEBUG fillCollection: starting +MdtRawDataProvi... DEBUG **********Decoder dumping the words******** +MdtRawDataProvi... DEBUG The size of this ROD-read is +MdtRawDataProvi... DEBUG word 0 = 8003e994 +MdtRawDataProvi... DEBUG word 1 = 81040004 +MdtRawDataProvi... DEBUG word 2 = 18030210 +MdtRawDataProvi... DEBUG word 3 = 890003ff +MdtRawDataProvi... DEBUG word 4 = 8a994002 +MdtRawDataProvi... DEBUG word 5 = 81040014 +MdtRawDataProvi... DEBUG word 6 = 18030211 +MdtRawDataProvi... DEBUG word 7 = 89000fff +MdtRawDataProvi... DEBUG word 8 = a1994153 +MdtRawDataProvi... DEBUG word 9 = 20000500 +MdtRawDataProvi... DEBUG word 10 = a3994153 +MdtRawDataProvi... DEBUG word 11 = 20000028 +MdtRawDataProvi... DEBUG word 12 = aa994153 +MdtRawDataProvi... DEBUG word 13 = 303c0116 +MdtRawDataProvi... DEBUG word 14 = 3038016f +MdtRawDataProvi... DEBUG word 15 = 308c0202 +MdtRawDataProvi... DEBUG word 16 = 3088026b +MdtRawDataProvi... DEBUG word 17 = 20100000 +MdtRawDataProvi... DEBUG word 18 = ab994153 +MdtRawDataProvi... DEBUG word 19 = 3074012d +MdtRawDataProvi... DEBUG word 20 = 30700187 +MdtRawDataProvi... DEBUG word 21 = 3084015b +MdtRawDataProvi... DEBUG word 22 = 308001ca +MdtRawDataProvi... DEBUG word 23 = 20140150 +MdtRawDataProvi... DEBUG word 24 = 8a994012 +MdtRawDataProvi... DEBUG word 25 = 81040007 +MdtRawDataProvi... DEBUG word 26 = 18030212 +MdtRawDataProvi... DEBUG word 27 = 89003fff +MdtRawDataProvi... DEBUG word 28 = a3994153 +MdtRawDataProvi... DEBUG word 29 = 307c0071 +MdtRawDataProvi... DEBUG word 30 = 30780094 +MdtRawDataProvi... DEBUG word 31 = 8a994005 +MdtRawDataProvi... DEBUG word 32 = 81040014 +MdtRawDataProvi... DEBUG word 33 = 18030213 +MdtRawDataProvi... DEBUG word 34 = 89003fff +MdtRawDataProvi... DEBUG word 35 = a3994153 +MdtRawDataProvi... DEBUG word 36 = 30b401cb +MdtRawDataProvi... DEBUG word 37 = 30bc0213 +MdtRawDataProvi... DEBUG word 38 = 30b00256 +MdtRawDataProvi... DEBUG word 39 = 30b802c7 +MdtRawDataProvi... DEBUG word 40 = 307c032d +MdtRawDataProvi... DEBUG word 41 = 30840397 +MdtRawDataProvi... DEBUG word 42 = 307803e7 +MdtRawDataProvi... DEBUG word 43 = 308003f1 +MdtRawDataProvi... DEBUG word 44 = a6994153 +MdtRawDataProvi... DEBUG word 45 = 30b40533 +MdtRawDataProvi... DEBUG word 46 = 30740552 +MdtRawDataProvi... DEBUG word 47 = 30a40588 +MdtRawDataProvi... DEBUG word 48 = 307005cb +MdtRawDataProvi... DEBUG word 49 = 30a00611 +MdtRawDataProvi... DEBUG word 50 = 30b0063b +MdtRawDataProvi... DEBUG word 51 = 8a994012 +MdtRawDataProvi... DEBUG word 52 = 8104001c +MdtRawDataProvi... DEBUG word 53 = 18030214 +MdtRawDataProvi... DEBUG word 54 = 8903ffff +MdtRawDataProvi... DEBUG word 55 = a2994153 +MdtRawDataProvi... DEBUG word 56 = 30b0002f +MdtRawDataProvi... DEBUG word 57 = 3084019b +MdtRawDataProvi... DEBUG word 58 = 30800237 +MdtRawDataProvi... DEBUG word 59 = 20540100 +MdtRawDataProvi... DEBUG word 60 = a4994153 +MdtRawDataProvi... DEBUG word 61 = 306c019f +MdtRawDataProvi... DEBUG word 62 = 30680214 +MdtRawDataProvi... DEBUG word 63 = 30140429 +MdtRawDataProvi... DEBUG word 64 = 30100474 +MdtRawDataProvi... DEBUG word 65 = 20000ad4 +MdtRawDataProvi... DEBUG word 66 = a5994153 +MdtRawDataProvi... DEBUG word 67 = 30bc0362 +MdtRawDataProvi... DEBUG word 68 = 30b80481 +MdtRawDataProvi... DEBUG word 69 = a6994153 +MdtRawDataProvi... DEBUG word 70 = 20004000 +MdtRawDataProvi... DEBUG word 71 = a8994153 +MdtRawDataProvi... DEBUG word 72 = 20000820 +MdtRawDataProvi... DEBUG word 73 = aa994153 +MdtRawDataProvi... DEBUG word 74 = 20000002 +MdtRawDataProvi... DEBUG word 75 = ae994153 +MdtRawDataProvi... DEBUG word 76 = 20000080 +MdtRawDataProvi... DEBUG word 77 = b0994153 +MdtRawDataProvi... DEBUG word 78 = 20000200 +MdtRawDataProvi... DEBUG word 79 = 8a99401a +MdtRawDataProvi... DEBUG word 80 = 81040025 +MdtRawDataProvi... DEBUG word 81 = 18030215 +MdtRawDataProvi... DEBUG word 82 = 8903ffff +MdtRawDataProvi... DEBUG word 83 = a5994153 +MdtRawDataProvi... DEBUG word 84 = 304c054e +MdtRawDataProvi... DEBUG word 85 = 304805fd +MdtRawDataProvi... DEBUG word 86 = a6994153 +MdtRawDataProvi... DEBUG word 87 = 20000040 +MdtRawDataProvi... DEBUG word 88 = a8994153 +MdtRawDataProvi... DEBUG word 89 = 306c0098 +MdtRawDataProvi... DEBUG word 90 = 30bc0093 +MdtRawDataProvi... DEBUG word 91 = 308400fd +MdtRawDataProvi... DEBUG word 92 = 308c00fe +MdtRawDataProvi... DEBUG word 93 = 309400fb +MdtRawDataProvi... DEBUG word 94 = 309c00fd +MdtRawDataProvi... DEBUG word 95 = 30a400f9 +MdtRawDataProvi... DEBUG word 96 = 30ac00fc +MdtRawDataProvi... DEBUG word 97 = 30b400f9 +MdtRawDataProvi... DEBUG word 98 = 302c0185 +MdtRawDataProvi... DEBUG word 99 = 306801a0 +MdtRawDataProvi... DEBUG word 100 = 30800148 +MdtRawDataProvi... DEBUG word 101 = 30880147 +MdtRawDataProvi... DEBUG word 102 = 30900149 +MdtRawDataProvi... DEBUG word 103 = 30980168 +MdtRawDataProvi... DEBUG word 104 = 30a00169 +MdtRawDataProvi... DEBUG word 105 = 30a80163 +MdtRawDataProvi... DEBUG word 106 = 30b00161 +MdtRawDataProvi... DEBUG word 107 = 30b801a3 +MdtRawDataProvi... DEBUG word 108 = 30280271 +MdtRawDataProvi... DEBUG word 109 = a9994153 +MdtRawDataProvi... DEBUG word 110 = 301c00b6 +MdtRawDataProvi... DEBUG word 111 = 309c00d1 +MdtRawDataProvi... DEBUG word 112 = 301801bc +MdtRawDataProvi... DEBUG word 113 = 309801b9 +MdtRawDataProvi... DEBUG word 114 = 305c01f8 +MdtRawDataProvi... DEBUG word 115 = 305802ec +MdtRawDataProvi... DEBUG word 116 = 8a994023 +MdtRawDataProvi... DEBUG word 117 = f0000076 +MdtRawDataProvi... DEBUG Found the beginning of buffer +MdtRawDataProvi... DEBUG Level 1 Id : 256404 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 0 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 1 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 10 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 11 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 2 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 3 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 4 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 2 +MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 2 chan: 22 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 10 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 14 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 16 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 1 csmId : 5 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 2 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 6 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 +MdtRawDataProvi... DEBUG fillCollection: starting +MdtRawDataProvi... DEBUG **********Decoder dumping the words******** +MdtRawDataProvi... DEBUG The size of this ROD-read is +MdtRawDataProvi... DEBUG word 0 = 8003e994 +MdtRawDataProvi... DEBUG word 1 = 81040004 +MdtRawDataProvi... DEBUG word 2 = 180300d0 +MdtRawDataProvi... DEBUG word 3 = 890003ff +MdtRawDataProvi... DEBUG word 4 = 8a994002 +MdtRawDataProvi... DEBUG word 5 = 81040004 +MdtRawDataProvi... DEBUG word 6 = 180300d1 +MdtRawDataProvi... DEBUG word 7 = 89000fff +MdtRawDataProvi... DEBUG word 8 = 8a994002 +MdtRawDataProvi... DEBUG word 9 = 8104000e +MdtRawDataProvi... DEBUG word 10 = 180300d2 +MdtRawDataProvi... DEBUG word 11 = 89000fff +MdtRawDataProvi... DEBUG word 12 = a0994153 +MdtRawDataProvi... DEBUG word 13 = 30a00056 +MdtRawDataProvi... DEBUG word 14 = 20105050 +MdtRawDataProvi... DEBUG word 15 = a1994153 +MdtRawDataProvi... DEBUG word 16 = 30b40578 +MdtRawDataProvi... DEBUG word 17 = 30b0060a +MdtRawDataProvi... DEBUG word 18 = a8994153 +MdtRawDataProvi... DEBUG word 19 = 20000400 +MdtRawDataProvi... DEBUG word 20 = a9994153 +MdtRawDataProvi... DEBUG word 21 = 307c067b +MdtRawDataProvi... DEBUG word 22 = 8a99400c +MdtRawDataProvi... DEBUG word 23 = 81040011 +MdtRawDataProvi... DEBUG word 24 = 180300d3 +MdtRawDataProvi... DEBUG word 25 = 89003fff +MdtRawDataProvi... DEBUG word 26 = a5994153 +MdtRawDataProvi... DEBUG word 27 = 308c0359 +MdtRawDataProvi... DEBUG word 28 = 30880397 +MdtRawDataProvi... DEBUG word 29 = 20020000 +MdtRawDataProvi... DEBUG word 30 = a7994153 +MdtRawDataProvi... DEBUG word 31 = 30600040 +MdtRawDataProvi... DEBUG word 32 = 20001000 +MdtRawDataProvi... DEBUG word 33 = a8994153 +MdtRawDataProvi... DEBUG word 34 = 302403a8 +MdtRawDataProvi... DEBUG word 35 = 3020040f +MdtRawDataProvi... DEBUG word 36 = a9994153 +MdtRawDataProvi... DEBUG word 37 = 309c0635 +MdtRawDataProvi... DEBUG word 38 = 308c0671 +MdtRawDataProvi... DEBUG word 39 = 8a99400f +MdtRawDataProvi... DEBUG word 40 = 81040017 +MdtRawDataProvi... DEBUG word 41 = 180300d4 +MdtRawDataProvi... DEBUG word 42 = 8900ffff +MdtRawDataProvi... DEBUG word 43 = a1994153 +MdtRawDataProvi... DEBUG word 44 = 304c0488 +MdtRawDataProvi... DEBUG word 45 = 308c0498 +MdtRawDataProvi... DEBUG word 46 = 302c0500 +MdtRawDataProvi... DEBUG word 47 = 30280581 +MdtRawDataProvi... DEBUG word 48 = 3048052d +MdtRawDataProvi... DEBUG word 49 = 3088056a +MdtRawDataProvi... DEBUG word 50 = 301c05a2 +MdtRawDataProvi... DEBUG word 51 = 30180610 +MdtRawDataProvi... DEBUG word 52 = 309c0646 +MdtRawDataProvi... DEBUG word 53 = a4994153 +MdtRawDataProvi... DEBUG word 54 = 30640517 +MdtRawDataProvi... DEBUG word 55 = 306005a2 +MdtRawDataProvi... DEBUG word 56 = 302405e1 +MdtRawDataProvi... DEBUG word 57 = 30200624 +MdtRawDataProvi... DEBUG word 58 = a9994153 +MdtRawDataProvi... DEBUG word 59 = 200000a0 +MdtRawDataProvi... DEBUG word 60 = ab994153 +MdtRawDataProvi... DEBUG word 61 = 20041100 +MdtRawDataProvi... DEBUG word 62 = 8a994015 +MdtRawDataProvi... DEBUG word 63 = 8104001c +MdtRawDataProvi... DEBUG word 64 = 180300d5 +MdtRawDataProvi... DEBUG word 65 = 8903ffff +MdtRawDataProvi... DEBUG word 66 = a0994153 +MdtRawDataProvi... DEBUG word 67 = 3014000e +MdtRawDataProvi... DEBUG word 68 = 30100032 +MdtRawDataProvi... DEBUG word 69 = 30940069 +MdtRawDataProvi... DEBUG word 70 = 3090008d +MdtRawDataProvi... DEBUG word 71 = 20000400 +MdtRawDataProvi... DEBUG word 72 = a1994153 +MdtRawDataProvi... DEBUG word 73 = 3070001a +MdtRawDataProvi... DEBUG word 74 = 30040377 +MdtRawDataProvi... DEBUG word 75 = 30000398 +MdtRawDataProvi... DEBUG word 76 = 20014001 +MdtRawDataProvi... DEBUG word 77 = a2994153 +MdtRawDataProvi... DEBUG word 78 = 20000020 +MdtRawDataProvi... DEBUG word 79 = a3994153 +MdtRawDataProvi... DEBUG word 80 = 20000040 +MdtRawDataProvi... DEBUG word 81 = a9994153 +MdtRawDataProvi... DEBUG word 82 = 30a40400 +MdtRawDataProvi... DEBUG word 83 = 30a00424 +MdtRawDataProvi... DEBUG word 84 = aa994153 +MdtRawDataProvi... DEBUG word 85 = 20008000 +MdtRawDataProvi... DEBUG word 86 = ab994153 +MdtRawDataProvi... DEBUG word 87 = 20080000 +MdtRawDataProvi... DEBUG word 88 = b0994153 +MdtRawDataProvi... DEBUG word 89 = 20080000 +MdtRawDataProvi... DEBUG word 90 = 8a99401a +MdtRawDataProvi... DEBUG word 91 = f000005c +MdtRawDataProvi... DEBUG Found the beginning of buffer +MdtRawDataProvi... DEBUG Level 1 Id : 256404 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 0 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 3 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 1 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 0 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 3 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 2 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 0 +MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 0 chan: 20 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 3 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 2 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi... DEBUG Phi : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 5 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 7 +MdtRawDataProvi... DEBUG Error: corresponding leading edge not found for the trailing edge tdc: 7 chan: 12 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 8 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 4 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 1 +MdtRawDataProvi... DEBUG Phi : 3 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 1 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 4 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 9 +MdtRawDataProvi... DEBUG Decoding data from TDC number : 11 +MdtRawDataProvi... DEBUG Found the Beginnning of Link +MdtRawDataProvi... DEBUG subdetId : 97 mrodId : 2 csmId : 5 +MdtRawDataProvi... DEBUG getOfflineIdfromOnlineID result: +MdtRawDataProvi... DEBUG Name : 4 +MdtRawDataProvi... DEBUG Eta : 2 +MdtRawDataProvi...WARNING DEBUG message limit (500) reached for MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder. Suppressing further output. +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x80 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x80 24 8 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 8 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 112 +CscRawDataProvi... DEBUG RPU ID original = 5 +CscRawDataProvi... DEBUG RPU ID Updated = 5 +CscRawDataProvi... DEBUG RPU size = 112 +CscRawDataProvi... DEBUG SCA Address = 724315438 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 2 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 6 +CscRawDataProvi... DEBUG Cluster Data Words = 108 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 12 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 31725 6 51 :: measphi0 L2 strId 46 nStr 4 T0 nSampWords 8 [7.51.-1.1.1.2.2.0.46] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 31733 6 51 :: measphi0 L2 strId 54 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.2.0.54] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 31916 7 51 :: measphi0 L3 strId 45 nStr 5 T0 nSampWords 10 [7.51.-1.1.1.2.3.0.45] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 31927 7 51 :: measphi0 L3 strId 56 nStr 4 T0 nSampWords 8 [7.51.-1.1.1.2.3.0.56] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 32109 8 51 :: measphi0 L4 strId 46 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.4.0.46] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 32121 8 51 :: measphi0 L4 strId 58 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.4.0.58] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55491 9 51 :: measphi1 L1 strId 4 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.1.1.4] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55544 9 51 :: measphi1 L2 strId 9 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.2.1.9] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55566 9 51 :: measphi1 L2 strId 31 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.2.1.31] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55591 9 51 :: measphi1 L3 strId 8 nStr 5 T0 nSampWords 10 [7.51.-1.1.1.2.3.1.8] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55614 9 51 :: measphi1 L3 strId 31 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.3.1.31] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 8 55640 9 51 :: measphi1 L4 strId 9 nStr 3 T0 nSampWords 6 [7.51.-1.1.1.2.4.1.9] +CscRawDataProvi... DEBUG ****Total Cluster count = 12 for RPU ID 5 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x81 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x81 16 0 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 0 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 122 +CscRawDataProvi... DEBUG RPU ID original = 13 +CscRawDataProvi... DEBUG RPU ID Updated = 11 +CscRawDataProvi... DEBUG RPU size = 122 +CscRawDataProvi... DEBUG SCA Address = 2358087311 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 2 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 7 +CscRawDataProvi... DEBUG Cluster Data Words = 118 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 11 +CscRawDataProvi... DEBUG cluster location word 0x810 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 784 0 50 :: measphi0 L1 strId 17 nStr 4 T0 nSampWords 8 [7.50.-1.1.1.2.1.0.17] +CscRawDataProvi... DEBUG cluster location word 0x868 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 872 0 50 :: measphi0 L1 strId 105 nStr 7 T0 nSampWords 14 [7.50.-1.1.1.2.1.0.105] +CscRawDataProvi... DEBUG cluster location word 0xe11 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 1361 3 50 :: measphi0 L4 strId 18 nStr 10 T0 nSampWords 20 [7.50.-1.1.1.2.4.0.18] +CscRawDataProvi... DEBUG cluster location word 0xe41 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 1409 3 50 :: measphi0 L4 strId 66 nStr 4 T0 nSampWords 8 [7.50.-1.1.1.2.4.0.66] +CscRawDataProvi... DEBUG cluster location word 0x916 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24790 4 50 :: measphi1 L1 strId 23 nStr 5 T0 nSampWords 10 [7.50.-1.1.1.2.1.1.23] +CscRawDataProvi... DEBUG cluster location word 0xb16 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24838 4 50 :: measphi1 L2 strId 23 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.2.1.23] +CscRawDataProvi... DEBUG cluster location word 0xd03 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24867 4 50 :: measphi1 L3 strId 4 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.3.1.4] +CscRawDataProvi... DEBUG cluster location word 0xd15 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24885 4 50 :: measphi1 L3 strId 22 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.3.1.22] +CscRawDataProvi... DEBUG cluster location word 0xd2d +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24909 4 50 :: measphi1 L3 strId 46 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.3.1.46] +CscRawDataProvi... DEBUG cluster location word 0xf15 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24933 4 50 :: measphi1 L4 strId 22 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.4.1.22] +CscRawDataProvi... DEBUG cluster location word 0xf1e +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 0 24942 4 50 :: measphi1 L4 strId 31 nStr 3 T0 nSampWords 6 [7.50.-1.1.1.2.4.1.31] +CscRawDataProvi... DEBUG ****Total Cluster count = 11 for RPU ID 11 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x82 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x82 25 9 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 9 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 50 +CscRawDataProvi... DEBUG RPU ID original = 5 +CscRawDataProvi... DEBUG RPU ID Updated = 5 +CscRawDataProvi... DEBUG RPU size = 50 +CscRawDataProvi... DEBUG SCA Address = 269554195 +CscRawDataProvi... DEBUG Number of Precision Cluster word 0x102 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 2 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 2 +CscRawDataProvi... DEBUG Cluster Data Words = 46 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 5 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 9 33431 7 51 :: measphi0 L3 strId 24 nStr 5 T0 nSampWords 10 [7.51.-1.2.1.2.3.0.24] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 9 33622 8 51 :: measphi0 L4 strId 23 nStr 3 T0 nSampWords 6 [7.51.-1.2.1.2.4.0.23] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 9 33626 8 51 :: measphi0 L4 strId 27 nStr 3 T0 nSampWords 6 [7.51.-1.2.1.2.4.0.27] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 9 56004 9 51 :: measphi1 L3 strId 37 nStr 4 T0 nSampWords 8 [7.51.-1.2.1.2.3.1.37] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 9 56052 9 51 :: measphi1 L4 strId 37 nStr 3 T0 nSampWords 6 [7.51.-1.2.1.2.4.1.37] +CscRawDataProvi... DEBUG ****Total Cluster count = 5 for RPU ID 5 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x83 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x83 17 1 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 1 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 116 +CscRawDataProvi... DEBUG RPU ID original = 13 +CscRawDataProvi... DEBUG RPU ID Updated = 11 +CscRawDataProvi... DEBUG RPU size = 116 +CscRawDataProvi... DEBUG SCA Address = 1920169077 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 2 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 6 +CscRawDataProvi... DEBUG Cluster Data Words = 112 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 11 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 2328 0 50 :: measphi0 L1 strId 25 nStr 4 T0 nSampWords 8 [7.50.-1.2.1.2.1.0.25] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 2519 1 50 :: measphi0 L2 strId 24 nStr 6 T0 nSampWords 12 [7.50.-1.2.1.2.2.0.24] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 2711 2 50 :: measphi0 L3 strId 24 nStr 5 T0 nSampWords 10 [7.50.-1.2.1.2.3.0.24] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 2904 3 50 :: measphi0 L4 strId 25 nStr 4 T0 nSampWords 8 [7.50.-1.2.1.2.4.0.25] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 3068 3 50 :: measphi0 L4 strId 189 nStr 3 T0 nSampWords 6 [7.50.-1.2.1.2.4.0.189] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25161 4 50 :: measphi1 L1 strId 10 nStr 4 T0 nSampWords 8 [7.50.-1.2.1.2.1.1.10] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25209 4 50 :: measphi1 L2 strId 10 nStr 5 T0 nSampWords 10 [7.50.-1.2.1.2.2.1.10] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25257 4 50 :: measphi1 L3 strId 10 nStr 4 T0 nSampWords 8 [7.50.-1.2.1.2.3.1.10] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25270 4 50 :: measphi1 L3 strId 23 nStr 3 T0 nSampWords 6 [7.50.-1.2.1.2.3.1.23] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25305 4 50 :: measphi1 L4 strId 10 nStr 4 T0 nSampWords 8 [7.50.-1.2.1.2.4.1.10] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 1 25336 4 50 :: measphi1 L4 strId 41 nStr 3 T0 nSampWords 6 [7.50.-1.2.1.2.4.1.41] +CscRawDataProvi... DEBUG ****Total Cluster count = 11 for RPU ID 11 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x84 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x84 26 10 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 10 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 114 +CscRawDataProvi... DEBUG RPU ID original = 5 +CscRawDataProvi... DEBUG RPU ID Updated = 5 +CscRawDataProvi... DEBUG RPU size = 114 +CscRawDataProvi... DEBUG SCA Address = 1414878807 +CscRawDataProvi... DEBUG Number of Precision Cluster word 0x200 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 0 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 4 +CscRawDataProvi... DEBUG Cluster Data Words = 110 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 6 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 34947 7 51 :: measphi0 L3 strId 4 nStr 5 T0 nSampWords 10 [7.51.-1.3.1.2.3.0.4] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 35046 7 51 :: measphi0 L3 strId 103 nStr 19 T0 nSampWords 38 [7.51.-1.3.1.2.3.0.103] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 56283 9 51 :: measphi1 L1 strId 28 nStr 3 T0 nSampWords 6 [7.51.-1.3.1.2.1.1.28] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 56361 9 51 :: measphi1 L3 strId 10 nStr 6 T0 nSampWords 12 [7.51.-1.3.1.2.3.1.10] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 56383 9 51 :: measphi1 L3 strId 32 nStr 3 T0 nSampWords 6 [7.51.-1.3.1.2.3.1.32] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 10 56387 9 51 :: measphi1 L3 strId 36 nStr 13 T0 nSampWords 26 [7.51.-1.3.1.2.3.1.36] +CscRawDataProvi... DEBUG ****Total Cluster count = 6 for RPU ID 5 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x85 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x85 18 2 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 2 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 90 +CscRawDataProvi... DEBUG RPU ID original = 13 +CscRawDataProvi... DEBUG RPU ID Updated = 11 +CscRawDataProvi... DEBUG RPU size = 90 +CscRawDataProvi... DEBUG SCA Address = 1482250843 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 0 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 4 +CscRawDataProvi... DEBUG Cluster Data Words = 86 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 7 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 4056 1 50 :: measphi0 L2 strId 25 nStr 8 T0 nSampWords 16 [7.50.-1.3.1.2.2.0.25] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 4090 1 50 :: measphi0 L2 strId 59 nStr 4 T0 nSampWords 8 [7.50.-1.3.1.2.2.0.59] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 4250 2 50 :: measphi0 L3 strId 27 nStr 6 T0 nSampWords 12 [7.50.-1.3.1.2.3.0.27] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 25601 4 50 :: measphi1 L2 strId 18 nStr 3 T0 nSampWords 6 [7.50.-1.3.1.2.2.1.18] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 25608 4 50 :: measphi1 L2 strId 25 nStr 5 T0 nSampWords 10 [7.50.-1.3.1.2.2.1.25] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 25614 4 50 :: measphi1 L2 strId 31 nStr 5 T0 nSampWords 10 [7.50.-1.3.1.2.2.1.31] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 2 25652 4 50 :: measphi1 L3 strId 21 nStr 5 T0 nSampWords 10 [7.50.-1.3.1.2.3.1.21] +CscRawDataProvi... DEBUG ****Total Cluster count = 7 for RPU ID 11 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x86 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x86 27 11 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 11 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 58 +CscRawDataProvi... DEBUG RPU ID original = 5 +CscRawDataProvi... DEBUG RPU ID Updated = 5 +CscRawDataProvi... DEBUG RPU size = 58 +CscRawDataProvi... DEBUG SCA Address = 151653132 +CscRawDataProvi... DEBUG Number of Precision Cluster word 0x201 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 1 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 1 +CscRawDataProvi... DEBUG Cluster Data Words = 54 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 4 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 11 36527 7 51 :: measphi0 L3 strId 48 nStr 3 T0 nSampWords 6 [7.51.-1.4.1.2.3.0.48] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 11 36566 7 51 :: measphi0 L3 strId 87 nStr 8 T0 nSampWords 16 [7.51.-1.4.1.2.3.0.87] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 11 36759 8 51 :: measphi0 L4 strId 88 nStr 7 T0 nSampWords 14 [7.51.-1.4.1.2.4.0.88] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 11 56788 9 51 :: measphi1 L4 strId 5 nStr 5 T0 nSampWords 10 [7.51.-1.4.1.2.4.1.5] +CscRawDataProvi... DEBUG ****Total Cluster count = 4 for RPU ID 5 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x87 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x87 19 3 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 3 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 92 +CscRawDataProvi... DEBUG RPU ID original = 13 +CscRawDataProvi... DEBUG RPU ID Updated = 11 +CscRawDataProvi... DEBUG RPU size = 92 +CscRawDataProvi... DEBUG SCA Address = 404298267 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 1 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 1 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 6 +CscRawDataProvi... DEBUG Cluster Data Words = 88 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 10 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 5461 0 50 :: measphi0 L1 strId 86 nStr 4 T0 nSampWords 8 [7.50.-1.4.1.2.1.0.86] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 5692 1 50 :: measphi0 L2 strId 125 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.2.0.125] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 5879 2 50 :: measphi0 L3 strId 120 nStr 5 T0 nSampWords 10 [7.50.-1.4.1.2.3.0.120] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 6065 3 50 :: measphi0 L4 strId 114 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.4.0.114] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 25947 4 50 :: measphi1 L1 strId 28 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.1.1.28] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 25951 4 50 :: measphi1 L1 strId 32 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.1.1.32] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 25956 4 50 :: measphi1 L1 strId 37 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.1.1.37] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 25991 4 50 :: measphi1 L2 strId 24 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.2.1.24] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 26039 4 50 :: measphi1 L3 strId 24 nStr 4 T0 nSampWords 8 [7.50.-1.4.1.2.3.1.24] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 3 26106 4 50 :: measphi1 L4 strId 43 nStr 3 T0 nSampWords 6 [7.50.-1.4.1.2.4.1.43] +CscRawDataProvi... DEBUG ****Total Cluster count = 10 for RPU ID 11 +CscRawDataProvi... DEBUG end of CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() +CscRawDataProvi... DEBUG in CscROD_Decoder::fillCollection :ROD version 401 +CscRawDataProvi... DEBUG +CscRawDataProvi... DEBUG =================================================== +CscRawDataProvi... DEBUG in CscROD_Decode::fillCollection() - ROD version 2 +CscRawDataProvi... DEBUG Online ROD id is 0x88 +CscRawDataProvi... DEBUG Online ROD / ROD / collection / subDetector IDs are 0x88 28 12 106 +CscRawDataProvi... DEBUG CSC RDO collection does not exist - creating a new one with hash = 12 +CscRawDataProvi... DEBUG Event Type: 5407e04 +CscRawDataProvi... DEBUG Sampling Time: 50 Number of Samples: 4 +CscRawDataProvi... DEBUG Is Calibration Enabled?: 0 Calibration Amplitude: 5 +CscRawDataProvi... DEBUG Calibration Layer: 0 Latency: 126 +CscRawDataProvi... DEBUG Is neutron rejection ON?: 0 Is sparsified data?: 1 +CscRawDataProvi... DEBUG CscROD_Decoder Total words received = 74 +CscRawDataProvi... DEBUG RPU ID original = 5 +CscRawDataProvi... DEBUG RPU ID Updated = 5 +CscRawDataProvi... DEBUG RPU size = 74 +CscRawDataProvi... DEBUG SCA Address = 1499093852 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 0 Cluster Counts = 2 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 1 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 2 Cluster Counts = 0 +CscRawDataProvi... DEBUG Number of precision Cluster Counts - Layer Index = 3 Cluster Counts = 1 +CscRawDataProvi... DEBUG Summed Number of Clusters for non-precision layers 5 +CscRawDataProvi... DEBUG Cluster Data Words = 70 +CscRawDataProvi... DEBUG Total summed Cluster Count for precision and non-precision layers = 8 +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 37681 5 51 :: measphi0 L1 strId 50 nStr 3 T0 nSampWords 6 [7.51.-1.5.1.2.1.0.50] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 37803 5 51 :: measphi0 L1 strId 172 nStr 3 T0 nSampWords 6 [7.51.-1.5.1.2.1.0.172] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 38211 8 51 :: measphi0 L4 strId 4 nStr 5 T0 nSampWords 10 [7.51.-1.5.1.2.4.0.4] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 57032 9 51 :: measphi1 L1 strId 9 nStr 3 T0 nSampWords 6 [7.51.-1.5.1.2.1.1.9] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 57070 9 51 :: measphi1 L1 strId 47 nStr 2 T0 nSampWords 4 [7.51.-1.5.1.2.1.1.47] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 57072 9 51 :: measphi1 L2 strId 1 nStr 2 T0 nSampWords 4 [7.51.-1.5.1.2.2.1.1] +CscRawDataProvi... DEBUG idColl clusHashid spuID stationId :: 12 57133 9 51 :: measphi1 L3 strId 14 nStr 3 T0 nSampWords 6 [7.51.-1.5.1.2.3.1.14] +CscRawDataProvi...WARNING DEBUG message limit (500) reached for CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder. Suppressing further output. +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186525031, run #327265 1 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186524665, run #327265 1 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186524665, run #327265 2 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186542447, run #327265 2 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186542447, run #327265 3 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186543405, run #327265 3 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186543405, run #327265 4 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186548387, run #327265 4 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186548387, run #327265 5 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186515186, run #327265 5 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186515186, run #327265 6 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186556019, run #327265 6 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186556019, run #327265 7 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186542866, run #327265 7 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186542866, run #327265 8 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186537901, run #327265 8 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186537901, run #327265 9 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186517811, run #327265 9 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186517811, run #327265 10 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186534221, run #327265 10 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186534221, run #327265 11 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186540986, run #327265 11 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186540986, run #327265 12 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186535104, run #327265 12 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186535104, run #327265 13 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186539903, run #327265 13 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186539903, run #327265 14 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186552713, run #327265 14 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186552713, run #327265 15 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186524730, run #327265 15 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186524730, run #327265 16 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186547632, run #327265 16 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186547632, run #327265 17 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186555621, run #327265 17 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186555621, run #327265 18 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186568452, run #327265 18 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186568452, run #327265 19 events processed so far <<<=== +AthenaEventLoopMgr INFO ===>>> start processing event #186580451, run #327265 19 events processed so far <<<=== +MuonCacheCreator INFO Created cache container 'StoreGateSvc+MdtCsmCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+CscCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+RpcCache' +MuonCacheCreator INFO Created cache container 'StoreGateSvc+TgcCache' +MdtRawDataProvi...VERBOSE convert(): 264 ROBFragments. +MdtRawDataProvi... DEBUG Created container using cache for MdtCsmCache +MdtRawDataProvi... DEBUG After processing numColls=1136 +CscRawDataProvi...VERBOSE Number of ROB ids 32 +CscRawDataProvi...VERBOSE Number of ROB fragments 32 +CscRawDataProvi... DEBUG Created container using cache for CscCache +CscRawDataProvi... DEBUG Before processing numColls=0 +CscRawDataProvi... DEBUG vector of ROB ID to decode: size = 32 +CscRawDataProvi... DEBUG After processing numColls=32 +AthenaEventLoopMgr INFO ===>>> done processing event #186580451, run #327265 20 events processed so far <<<=== +Domain[ROOT_All] INFO > Deaccess DbDomain READ [ROOT_All] +ApplicationMgr INFO Application Manager Stopped successfully +CondInputLoader INFO Finalizing CondInputLoader... +AtlasFieldSvc INFO finalize() successful +EventInfoByteSt... INFO finalize +IdDictDetDescrCnv INFO in finalize +AthDictLoaderSvc INFO in finalize... +ToolSvc INFO Removing all tools created by ToolSvc +ToolSvc.ByteStr... INFO in finalize() +TgcRdoToTgcPrep... INFO finalize(): input RDOs->output PRDs [Hit: 6807->6807, Tracklet: 28->28, TrackletEIFI: 692->692, HiPt: 4031->4031, SL: 3->3] +RpcROD_Decoder:... INFO ============ FINAL RPC DATA FORMAT STAT. =========== +RpcROD_Decoder:... INFO RX Header Errors.............0 +RpcROD_Decoder:... INFO RX SubHeader Errors..........0 +RpcROD_Decoder:... INFO PAD Header Errors............0 +RpcROD_Decoder:... INFO PAD/SL SubHeader Errors......0 +RpcROD_Decoder:... INFO CM Header Errors.............0 +RpcROD_Decoder:... INFO CM SubHeader Errors..........0 +RpcROD_Decoder:... INFO CM Footer Errors.............0 +RpcROD_Decoder:... INFO PAD PreFooter Errors.........0 +RpcROD_Decoder:... INFO PAD Footer Errors............0 +RpcROD_Decoder:... INFO SL Header Errors.............0 +RpcROD_Decoder:... INFO SL Footer Errors.............0 +RpcROD_Decoder:... INFO RX Footer Errors.............0 +RpcROD_Decoder:... INFO CRC8 check Failures..........0 +RpcROD_Decoder:... INFO ==================================================== +ToolSvc.TGCCabl... INFO finalize +*****Chrono***** INFO **************************************************************************************************** +*****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) +*****Chrono***** INFO **************************************************************************************************** +*****Chrono***** INFO **************************************************************************************************** +ChronoStatSvc.f... INFO Service finalized successfully +ApplicationMgr INFO Application Manager Finalized successfully +ApplicationMgr INFO Application Manager Terminated successfully +Listing sources of suppressed message: + Message Source | Level | Count + CscRawDataProvider.CSC_RawDataProviderTool.CscROD_Decoder| DEBUG | 35169 + MdtRawDataProvider.MDT_RawDataProviderTool.MdtROD_Decoder| DEBUG | 854603 +Py:Athena INFO leaving with code 0: "successful run" -- GitLab From b5e91a5035aa69fc0dca8ce2caf89a287554f306 Mon Sep 17 00:00:00 2001 From: Yohei Noguchi <yohei.noguchi@cern.ch> Date: Mon, 15 Oct 2018 22:33:47 +0200 Subject: [PATCH 035/192] Changed to monitor HLT_mu8, HLT_mu3 and HLT_mu4 in HI runs --- .../TrigMuonMonitoring/python/TrigMuonMonitCategory.py | 6 +++--- .../TrigMuonMonitoring/src/HLTMuonMonTool.cxx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py index 02ccbf29dbcb..4704effcaaa2 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py @@ -1,7 +1,7 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration monitoring_muonNonIso = ['HLT_mu50'] -monitoring_muonNonIso_HI = ['HLT_mu15_L1MU10','HLT_mu14']#8TeV +monitoring_muonNonIso_HI = ['HLT_mu8','HLT_mu3', 'HLT_mu4']#8TeV #monitoring_muonNonIso_HI = ['HLT_mu10','HLT_mu14'] monitoring_muonNonIso_pp = ['HLT_mu50'] @@ -31,7 +31,7 @@ monitoring_muonLowpt = ["HLT_mu14"] ### TE name of the hypos for the L2 #L2 standalone monitoring_muonNonIso_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] -monitoring_muonNonIso_HI_L2SAHypo = ['HLT_mu15_L1MU10','L2_mu_SAhyp_Muon6GeV_v15a_MU10']#8TeV +monitoring_muonNonIso_HI_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU6','L2_mu_SAhyp_Muon4GeV_v15a_MU4','L2_mu_SAhyp_Muon4GeV_v15a_MU4']#8TeV monitoring_muonNonIso_pp_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] monitoring_muonIso_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] @@ -56,7 +56,7 @@ monitoring_muonLowpt_pp_L2SAHypo = ["L2_mu_SAhyp_Muon6GeV_v15a_MU10"] #L2 combined monitoring_muonNonIso_L2CBHypo = ['L2_mucombhyp_mu22_MU20'] -monitoring_muonNonIso_HI_L2CBHypo = ['HLT_mu15_L1MU10','L2_mucombhyp_mu14_MU10']#8TeV +monitoring_muonNonIso_HI_L2CBHypo = ['L2_mucombhyp_mu8_MU6', 'L2_mucombhyp_mu3_MU4', 'L2_mucombhyp_mu4_MU4']#8TeV monitoring_muonNonIso_pp_L2CBHypo = ['L2_mucombhyp_mu22_MU20'] monitoring_muonIso_L2CBHypo = ['L2_mucombhyp_mu22_MU20'] diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx index 3e4e2bd1d754..be4eb774b659 100755 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx @@ -1057,7 +1057,7 @@ const HLT::TriggerElement* HLTMuonMonTool :: getDirectSuccessorHypoTEForL2(const const HLT::TriggerElement *hypote = NULL; std::vector<HLT::TriggerElement*> TEsuccessors = m_ExpertMethods->getNavigation()->getDirectSuccessors(te); for(auto te2 : TEsuccessors){ - //ATH_MSG_DEBUG("[" << chainname <<"] ::TE2: " << te2->getId() << " " << Trig::getTEName(*te2) ); + ATH_MSG_VERBOSE("[" << chainname <<"] ::TE2: " << te2->getId() << " " << Trig::getTEName(*te2) ); if(Trig::getTEName(*te2)==hyponame){ ATH_MSG_DEBUG("[" << chainname<< "] selected HypoTE: " << te2->getId() << " " << Trig::getTEName(*te2) << " isPassed=" << te2->getActiveState() ); hypote = te2; -- GitLab From 5c720a1653aec017e2ad2b85af7992612ffb0d33 Mon Sep 17 00:00:00 2001 From: Yohei Noguchi <yohei.noguchi@cern.ch> Date: Sat, 20 Oct 2018 20:40:30 +0200 Subject: [PATCH 036/192] Changed in hypo TE names for HLT_mu3. Changed pretriggers for EFFS histograms --- .../python/TrigMuonMonitCategory.py | 4 ++-- .../TrigMuonMonitoring/src/CommonMon.cxx | 8 ++------ .../TrigMuonMonitoring/src/HLTMuonMonTool.cxx | 12 +++++++++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py index 4704effcaaa2..292685694b0c 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/python/TrigMuonMonitCategory.py @@ -31,7 +31,7 @@ monitoring_muonLowpt = ["HLT_mu14"] ### TE name of the hypos for the L2 #L2 standalone monitoring_muonNonIso_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] -monitoring_muonNonIso_HI_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU6','L2_mu_SAhyp_Muon4GeV_v15a_MU4','L2_mu_SAhyp_Muon4GeV_v15a_MU4']#8TeV +monitoring_muonNonIso_HI_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU6','L2_mu_SAhyp_Muon3GeV_v15a_MU4','L2_mu_SAhyp_Muon4GeV_v15a_MU4']#8TeV monitoring_muonNonIso_pp_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] monitoring_muonIso_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] @@ -39,7 +39,7 @@ monitoring_muonIso_HI_L2SAHypo = [''] monitoring_muonIso_pp_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] monitoring_MSonly_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] -monitoring_MSonly_HI_L2SAHypo = ['HLT_mu15_msonly'] +monitoring_MSonly_HI_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU11'] monitoring_MSonly_pp_L2SAHypo = ['L2_mu_SAhyp_Muon6GeV_v15a_MU20'] monitoring_muonEFFS_L2SAHypo = [''] diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx index 371a504575c0..a618cb6bd6da 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx @@ -1404,17 +1404,13 @@ StatusCode HLTMuonMonTool::fillCommonDQA() // updated for real config: 15.02.11 std::vector<std::string> vs_ESstd; if( !m_HI_pp_mode ){ - vs_ESstd.push_back("HLT_noalg_L1MU4"); - vs_ESstd.push_back("HLT_noalg_L1MU6"); - vs_ESstd.push_back("HLT_noalg_L1MU10"); - //vs_ESstd.push_back("HLT_noalg_L1MU11"); + vs_ESstd.push_back("HLT_mu8"); // increasing stat for muZTP, which requests now ES bits }else{ vs_ESstd.push_back("HLT_mu26_ivarmedium"); // increasing stat for muZTP, which requests now ES bits } - // vs_ESstd.push_back("HLT_mu18i4_tight"); // for test - // vs_ESstd.push_back("HLT_mu22_medium"); // for test std::vector<std::string> vs_ESnoniso; + vs_ESnoniso.push_back("HLT_mu8"); // for HI, but HI does not use iso vs_ESnoniso.push_back("HLT_mu14"); // for EnhancedBias vs_ESnoniso.push_back("HLT_mu26"); vs_ESnoniso.push_back("HLT_mu24"); diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx index be4eb774b659..6439e72ff1bf 100755 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/HLTMuonMonTool.cxx @@ -159,6 +159,7 @@ StatusCode HLTMuonMonTool::init() //(*m_log).setLevel(MSG::DEBUG); // YY: not yet used // this->msg().setLevel(MSG::DEBUG); // YY tried this, worked fine ATH_MSG_DEBUG("init being called"); + ATH_MSG_DEBUG("HI_pp_mode:" << m_HI_pp_mode); // some switches and flags m_requestESchains = true; //initialization for common tools @@ -255,13 +256,15 @@ StatusCode HLTMuonMonTool::init() // v5 primary //m_histChainEFFS.push_back("muChainEFFS"); //m_chainsEFFS.push_back("mu18_mu8noL1"); + if(!m_HI_pp_mode){ m_FS_pre_trigger = "HLT_mu4"; - m_FS_pre_trigger = "HLT_mu10"; + m_FS_pre_trigger_second = "HLT_mu8"; }else{ m_FS_pre_trigger = "HLT_mu24_ivarmedium"; + m_FS_pre_trigger_second = "HLT_mu26_ivarmedium"; } - m_FS_pre_trigger_second = "HLT_mu26_ivarmedium"; + for(unsigned int ich = 0; ich < m_chainsEFFS.size(); ich++){ if(ich > 0) continue; m_histChainEFFS.push_back("muChainEFFS"); @@ -1063,7 +1066,10 @@ const HLT::TriggerElement* HLTMuonMonTool :: getDirectSuccessorHypoTEForL2(const hypote = te2; } } - + if(!hypote){ + ATH_MSG_DEBUG("[" << chainname<< "] HypoTE not found. Assigning alg TE."); + hypote = te; + } return hypote; } -- GitLab From 0b702a203f06df508188310b922cb68989bf67c8 Mon Sep 17 00:00:00 2001 From: Yohei Noguchi <yohei.noguchi@cern.ch> Date: Sat, 20 Oct 2018 20:42:18 +0200 Subject: [PATCH 037/192] Updated han-configs for 2018 heavy ion runs Automatic checks were optimized for HLT_mu8, HLT_mu3 and HLT_mu4_mu4noL1 --- .../config/HLT/HLTmuon/heavyions_run.config | 125 +++++++++++++----- 1 file changed, 94 insertions(+), 31 deletions(-) diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config index 4c275cf3285d..55fcd7f7dcd9 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config @@ -476,13 +476,14 @@ dir HLT { hist muChain1_highpt_effsummary_by_ESid { output = HLT/TRMUO/Expert/ES_muChain1 algorithm = TRMUO_GatherDataNoRef + description = muChain1 corresponds to chain HLT_mu8. ##description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } hist muChain1_highpt_effsummary_by_ESid@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = effalgmin_3bins - description = muChain1 corresponds to chain HLT_mu15_L1MU10. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain1 corresponds to chain HLT_mu8. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. #description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=BinContentDump%7CEF+algorithmError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=BinContentDump%7CMuCombError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=BinContentDump%7CL2MuonSAError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } @@ -491,51 +492,63 @@ dir HLT { hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } # ESid/wrtOffline hist muChain1_ESid_L1_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L1_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_barrel_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L1_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_endcap_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } ### mu10 (all ES and bulk) @@ -543,27 +556,28 @@ dir HLT { hist muChain1_highptL1plateau_wrtOffline { output = HLT/TRMUO/Expert/muChain1 algorithm = TRMUO_GatherDataNoRef - description = the L1 item for muChain1 (HLT_mu15_L1MU10) is L1MU10. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = the L1 item for muChain1 (HLT_mu8) is L1MU6. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Endcap 30-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Endcap 30-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highptL1plateau_wrtOffline@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_3bins - description = the L1 item for muChain1 (HLT_mu15_L1MU10) is L1MU10. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = the L1 item for muChain1 (HLT_mu8) is L1MU6. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=BinContentDump%7CBarrel+30-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.55&high_y=1.01&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=BinContentDump%7CEndcap+30-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=1.01&outputtype=png">Endcap 30-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=BinContentDump%7CBarrel+30-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.55&high_y=0.80&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=BinContentDump%7CEndcap+30-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.95&outputtype=png">Endcap 30-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highpt3bins_effwrtL1 { output = HLT/TRMUO/Expert/muChain1 algorithm = TRMUO_GatherDataNoRef - description = muChain1 corresponds to chain HLT_mu15_L1MU10. For express stream, efficiencies measured with Z T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain1 corresponds to chain HLT_mu8. For express stream, efficiencies measured with Z T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highpt3bins_effwrtL1@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_2bins + description = muChain1 corresponds to chain HLT_mu8. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> ## need to put reference and compare! } @@ -576,38 +590,47 @@ dir HLT { hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } # wrtUpstream/TakenByMSonly hist muChain1_MSb_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { @@ -651,38 +674,47 @@ dir HLT { hist muChain1_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } # wrtOffline/TakenByMSonly hist muChain1_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { @@ -731,14 +763,14 @@ dir HLT { hist muChain2_highpt_effsummary_by_ESid { output = HLT/TRMUO/Expert/ES_muChain2 algorithm = TRMUO_GatherDataNoRef - description = muChain2 corresponds to chain HLT_mu14. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain2 corresponds to chain HLT_mu3. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. #description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } hist muChain2_highpt_effsummary_by_ESid@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = effalgmin_3bins - description = muChain2 corresponds to chain HLT_mu14. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain2 corresponds to chain HLT_mu3. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. # description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=BinContentDump%7CEF+algorithmError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=BinContentDump%7CMuCombError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=BinContentDump%7CL2MuonSAError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } @@ -747,51 +779,63 @@ dir HLT { hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } # ESid/wrtOffline hist muChain2_ESid_L1_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L1_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_barrel_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L1_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_endcap_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } ### mu14 (all ES and bulk) @@ -799,19 +843,20 @@ dir HLT { hist muChain2_highptL1plateau_wrtOffline { output = HLT/TRMUO/Expert/muChain2 algorithm = TRMUO_GatherDataNoRef + description = muChain2 corresponds to chain HLT_mu3. ## need to put reference and compare! } hist muChain2_highpt3bins_effwrtL1 { output = HLT/TRMUO/Expert/muChain2 algorithm = TRMUO_GatherDataNoRef - description = muChain2 corresponds to chain HLT_mu14. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain2 corresponds to chain HLT_mu3. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> ## need to put reference and compare! } hist muChain2_highpt3bins_effwrtL1@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_2bins - description = muChain2 corresponds to chain HLT_mu14. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain2 corresponds to chain HLT_mu3. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.90&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=BinContentDump%7C100-300+GeV+MSonly_barrel-taggedError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.90&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=BinContentDump%7C100-300+GeV+MSonly_barrel-taggedError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> ## need to put reference and compare! } @@ -824,38 +869,47 @@ dir HLT { hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } # wrtUpstream/TakenByMSonly hist muChain2_MSb_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { @@ -899,38 +953,47 @@ dir HLT { hist muChain2_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } # wrtOffline/TakenByMSonly hist muChain2_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { @@ -3415,16 +3478,16 @@ thresholds th_TRMUO_fermi_fit_mu15_MSonly_EStag_MuonEFSA_upstream { thresholds th_TRMUO_fermi_fit_mu10_ESid_L2MuonSA_upstream { limits Plateau { - warning = 0.93 - error = 0.929 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 10.0 - error = 11.0 + warning = 8.0 + error = 10.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } @@ -3463,16 +3526,16 @@ thresholds th_TRMUO_fermi_fit_mu10_ESid_MuonEFCB_upstream { #for Shift mu14 thresholds th_TRMUO_fermi_fit_mu14_ESid_L2MuonSA_upstream { limits Plateau { - warning = 0.70 - error = 0.699 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } @@ -3481,11 +3544,11 @@ thresholds th_TRMUO_fermi_fit_mu14_ESid_muComb_upstream { # warning = 0.98 # 120830 # warning = 0.97 # 110909 warning = 0.95 - error = 0.949 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { warning = 1.0 @@ -3496,16 +3559,16 @@ thresholds th_TRMUO_fermi_fit_mu14_ESid_muComb_upstream { thresholds th_TRMUO_fermi_fit_mu14_ESid_MuonEFCB_upstream { limits Plateau { - warning = 0.98 - error = 0.979 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { - warning = 0.5 - error = 1.0 + warning = 1.0 + error = 2.0 } } @@ -3683,8 +3746,8 @@ thresholds th_TRMUO_fermi_fit_mu10_L2MuonSA_upstream { error = 11.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } -- GitLab From b51fdfb392d64af4e39ca04781f26c931427bf19 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Mon, 21 Jan 2019 13:31:33 -0600 Subject: [PATCH 038/192] resolve MR comments 1. Cleanup boilerplate code 2. Change property declaration to new method 3. Change function names in AthMonitorCfgHelper 4. Add AOD to TestDefaults.py 5. Add override keyword to functions --- .../AthenaMonitoring/AthMonitorAlgorithm.h | 39 +++++++------- .../ExampleMonitorAlgorithm.h | 2 +- .../python/AthMonitorCfgHelper.py | 4 +- .../ExampleMonitorAlgorithm.py | 36 +++++++------ Control/AthenaMonitoring/python/__init__.py | 3 +- .../src/AthMonitorAlgorithm.cxx | 53 +++---------------- .../src/ExampleMonitorAlgorithm.cxx | 4 +- 7 files changed, 51 insertions(+), 90 deletions(-) rename Control/AthenaMonitoring/{share => python}/ExampleMonitorAlgorithm.py (82%) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h index 11c0542fb48c..cdb1d6b12cdf 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -52,7 +52,7 @@ public: * * @return StatusCode */ - virtual StatusCode initialize(); + virtual StatusCode initialize() override; /** @@ -61,7 +61,7 @@ public: * @param ctx event context for reentrant Athena call * @return StatusCode */ - virtual StatusCode execute(const EventContext& ctx) const; + virtual StatusCode execute(const EventContext& ctx) const override; /** @@ -125,7 +125,7 @@ public: * * @return a value in the Environment_t enumeration which matches the input string. */ - Environment_t envStringToEnum( const std::string& str ); + Environment_t envStringToEnum( const std::string& str ) const; /** @@ -141,7 +141,7 @@ public: * * @return a value in the DataType_t enumeration which matches the input string. */ - DataType_t dataTypeStringToEnum( const std::string& str ); + DataType_t dataTypeStringToEnum( const std::string& str ) const; /** @@ -261,27 +261,30 @@ public: protected: - ToolHandleArray<GenericMonitoringTool> m_tools; ///< Array of Generic Monitoring Tools - ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool; ///< Tool to tell whether a specific trigger is passed - ToolHandle<ITriggerTranslatorTool> m_trigTranslator; ///< Tool to unpack trigger categories into a trigger list - ToolHandleArray<IDQFilterTool> m_DQFilterTools; ///< Array of Data Quality filter tools - ToolHandle<ILuminosityTool> m_lumiTool; ///< Tool for calculating various luminosity quantities - ToolHandle<ITrigLivefractionTool> m_liveTool; ///< Tool for calculating various live luminosity quantities + // Using the new way to declare JO properties: Gaudi::Property<int> m_myProperty {this,"MyProperty",0}; + + ToolHandleArray<GenericMonitoringTool> m_tools {this,"GMTools",{}}; ///< Array of Generic Monitoring Tools + ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool {this,"TrigDecisionTool",""}; ///< Tool to tell whether a specific trigger is passed + ToolHandle<ITriggerTranslatorTool> m_trigTranslator {this,"TriggerTranslatorTool",""}; ///< Tool to unpack trigger categories into a trigger list + ToolHandleArray<IDQFilterTool> m_DQFilterTools {this,"FilterTools",{}}; ///< Array of Data Quality filter tools + + ToolHandle<ILuminosityTool> m_lumiTool {this,"lumiTool","LuminosityTool"}; ///< Tool for calculating various luminosity quantities + ToolHandle<ITrigLivefractionTool> m_liveTool {this,"liveTool","TrigLivefractionTool"}; ///< Tool for calculating various live luminosity quantities AthMonitorAlgorithm::Environment_t m_environment; ///< Instance of the Environment_t enum AthMonitorAlgorithm::DataType_t m_dataType; ///< Instance of the DataType_t enum - std::string m_environmentStr; ///< Environment string pulled from the job option and converted to enum - std::string m_dataTypeStr; ///< DataType string pulled from the job option and converted to enum + Gaudi::Property<std::string> m_environmentStr {this,"Environment","user"}; ///< Environment string pulled from the job option and converted to enum + Gaudi::Property<std::string> m_dataTypeStr {this,"DataType","userDefined"}; ///< DataType string pulled from the job option and converted to enum - std::string m_triggerChainString; ///< Trigger chain string pulled from the job option and parsed into a vector + Gaudi::Property<std::string> m_triggerChainString {this,"TriggerChain",""}; ///< Trigger chain string pulled from the job option and parsed into a vector std::vector<std::string> m_vTrigChainNames; ///< Vector of trigger chain names parsed from trigger chain string - std::string m_fileKey; + Gaudi::Property<std::string> m_fileKey {this,"FileKey",""}; ///< Internal Athena name for file bool m_hasRetrievedLumiTool; ///< Allows use of various luminosity functions - bool m_useLumi; ///< Allows use of various luminosity functions - float m_defaultLBDuration; ///< Default duration of one lumi block - int m_detailLevel; ///< Sets the level of detail used in the monitoring - SG::ReadHandleKey<xAOD::EventInfo> m_EventInfoKey; // key for retrieving EventInfo from StoreGate + Gaudi::Property<bool> m_useLumi {this,"EnableLumi",false}; ///< Allows use of various luminosity functions + Gaudi::Property<float> m_defaultLBDuration {this,"DefaultLBDuration",60.}; ///< Default duration of one lumi block + Gaudi::Property<int> m_detailLevel {this,"DetailLevel",0}; ///< Sets the level of detail used in the monitoring + SG::ReadHandleKey<xAOD::EventInfo> m_EventInfoKey {this,"EventInfoKey","EventInfo"}; ///< Key for retrieving EventInfo from StoreGate }; #endif diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h index 0c6f77662709..0d959860d56a 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h @@ -20,6 +20,6 @@ public: StatusCode initialize(); virtual StatusCode fillHistograms( const EventContext& ctx ) const override; private: - bool m_doRandom; + Gaudi::Property<bool> m_doRandom {this,"RandomHist",false}; }; #endif \ No newline at end of file diff --git a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py index 16a4ea893376..9c8cccce5ca6 100644 --- a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py +++ b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py @@ -11,7 +11,7 @@ class AthMonitorCfgHelper(object): self.monSeq = AthSequencer('AthMonSeq_' + monName) self.resobj = ComponentAccumulator() - def AddAlgorithm(self,algClassOrObj, *args, **kwargs): + def addAlgorithm(self,algClassOrObj, *args, **kwargs): from AthenaCommon.Configurable import Configurable if issubclass(algClassOrObj, Configurable): algObj = algClassOrObj(*args, **kwargs) @@ -25,7 +25,7 @@ class AthMonitorCfgHelper(object): self.monSeq += algObj return algObj - def AddGroup(self, alg, name, topPath=''): + def addGroup(self, alg, name, topPath=''): from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool tool = GenericMonitoringTool(name) acc, histsvc = GetDQTHistSvc(self.inputFlags) diff --git a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py b/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py similarity index 82% rename from Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py rename to Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py index bc4d49131617..88b8fffe90ee 100644 --- a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm.py +++ b/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py @@ -21,7 +21,7 @@ def ExampleMonitoringConfig(inputFlags): # The following class will make a sequence, configure algorithms, and link # them to GenericMonitoringTools from AthenaMonitoring import AthMonitorCfgHelper - helper = AthMonitorCfgHelper(inputFlags,"ExampleMonitor") + helper = AthMonitorCfgHelper(inputFlags,'ExampleAthMonitorCfg') ### STEP 2 ### @@ -31,11 +31,11 @@ def ExampleMonitoringConfig(inputFlags): # base class configuration following the inputFlags. The returned object # is the algorithm. from AthenaMonitoring.AthenaMonitoringConf import ExampleMonitorAlgorithm - exampleMonAlg = helper.AddAlgorithm(ExampleMonitorAlgorithm) + exampleMonAlg = helper.addAlgorithm(ExampleMonitorAlgorithm,'ExampleMonAlg') # You can actually make multiple instances of the same algorithm and give # them different configurations - anotherExampleMonAlg = helper.AddAlgorithm(ExampleMonitorAlgorithm) + anotherExampleMonAlg = helper.addAlgorithm(ExampleMonitorAlgorithm,'AnotherExampleMonAlg') # # If for some really obscure reason you need to instantiate an algorithm # # yourself, the AddAlgorithm method will still configure the base @@ -44,14 +44,8 @@ def ExampleMonitoringConfig(inputFlags): ### STEP 3 ### - # Edit properties of a algorithm, using inputFlags. - exampleMonAlg.FileKey = inputFlags.DQ.FileKey - exampleMonAlg.Environment = inputFlags.DQ.Environment - exampleMonAlg.DataType = inputFlags.DQ.DataType - + # Edit properties of a algorithm exampleMonAlg.TriggerChain = '' - exampleMonAlg.EnableLumi = True - ### STEP 4 ### # Add some tools. N.B. Do not use your own trigger decion tool. Use the @@ -72,21 +66,29 @@ def ExampleMonitoringConfig(inputFlags): # Add a generic monitoring tool (a "group" in old language). The returned # object here is the standard GenericMonitoringTool. - myGroup = helper.AddGroup( + myGroup = helper.addGroup( exampleMonAlg, - "ExampleMonitor", - "OneRing/" + 'ExampleMonitor', + 'OneRing/' ) + # Add a GMT for the other example monitor algorithm + anotherGroup = helper.addGroup(anotherExampleMonAlg,'ExampleMonitor') + ### STEP 5 ### # Configure histograms - myGroup.defineHistogram("lumiPerBCID;lumiPerBCID", title="Luminosity;L/BCID;Events", + myGroup.defineHistogram('lumiPerBCID;lumiPerBCID', title='Luminosity;L/BCID;Events', path='ToRuleThemAll',xbins=10,xmin=0.0,xmax=10.0) - myGroup.defineHistogram("lb;lb", title="Luminosity Block;lb;Events", + myGroup.defineHistogram('lb;lb', title='Luminosity Block;lb;Events', path='ToFindThem',xbins=1000,xmin=-0.5,xmax=999.5) - myGroup.defineHistogram("random;random", title="LB;x;Events", + myGroup.defineHistogram('random;random', title='LB;x;Events', path='ToBringThemAll',xbins=30,xmin=0,xmax=1) + + anotherGroup.defineHistogram('lbWithFilter;lbWithFilter',title='Lumi;lb;Events', + path='top',xbins=1000,xmin=-0.5,xmax=999.5) + + ### STEP 6 ### # Finalize. The return value should be a tuple of the ComponentAccumulator # and the sequence containing the created algorithms. If we haven't called @@ -116,7 +118,7 @@ if __name__=='__main__': file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1' ConfigFlags.Input.Files = [nightly+file] ConfigFlags.Input.isMC = False - ConfigFlags.Output.HISTFileName = 'ExampleMonitor.root' + ConfigFlags.Output.HISTFileName = 'ExampleMonitorOutput.root' ConfigFlags.lock() # Initialize configuration object, add accumulator, merge, and run. diff --git a/Control/AthenaMonitoring/python/__init__.py b/Control/AthenaMonitoring/python/__init__.py index a97b74013952..d95762383ed5 100644 --- a/Control/AthenaMonitoring/python/__init__.py +++ b/Control/AthenaMonitoring/python/__init__.py @@ -3,5 +3,4 @@ # from AthMonitorCfgHelper import AthMonitorCfgHelper -from AtlasReadyFilterTool import GetAtlasReadyFilterTool -import DQConfigFlags +from AtlasReadyFilterTool import GetAtlasReadyFilterTool \ No newline at end of file diff --git a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx index a6b28b2f1312..044cf89f2205 100644 --- a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx @@ -6,41 +6,11 @@ AthMonitorAlgorithm::AthMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) :AthReentrantAlgorithm(name,pSvcLocator) -,m_tools(this) -,m_trigDecTool("") -,m_trigTranslator("") -,m_DQFilterTools(this) -,m_lumiTool("LuminosityTool") -,m_liveTool("TrigLivefractionTool") ,m_environment(Environment_t::user) ,m_dataType(DataType_t::userDefined) -,m_environmentStr("user") -,m_dataTypeStr("userDefined") -,m_triggerChainString("") ,m_vTrigChainNames({}) -,m_fileKey("") ,m_hasRetrievedLumiTool(false) -,m_useLumi(false) -,m_defaultLBDuration(60.) -,m_detailLevel(1) -,m_EventInfoKey("EventInfo") -{ - // The following properties are set in the python configuration and - // picked up here to be converted into the method variables. For an - // explanation of each variable, see the header. - declareProperty("GMTools",m_tools); - declareProperty("TrigDecisionTool",m_trigDecTool); - declareProperty("TriggerTranslatorTool",m_trigTranslator); - declareProperty("FilterTools",m_DQFilterTools); - declareProperty("Environment",m_environmentStr); - declareProperty("DataType",m_dataTypeStr); - declareProperty("TriggerChain",m_triggerChainString); - declareProperty("FileKey",m_fileKey); - declareProperty("EnableLumi",m_useLumi); - declareProperty("DefaultLBDuration",m_defaultLBDuration); - declareProperty("DetailLevel",m_detailLevel); - declareProperty("EventInfoKey",m_EventInfoKey); -} +{} AthMonitorAlgorithm::~AthMonitorAlgorithm() {} @@ -51,19 +21,12 @@ StatusCode AthMonitorAlgorithm::initialize() { // Retrieve the generic monitoring tools (a ToolHandleArray) if ( !m_tools.empty() ) { - sc = m_tools.retrieve(); - if ( !sc.isSuccess() ) { - ATH_MSG_ERROR("Unable to retrieve the generic monitoring tools." << endmsg); - } + ATH_CHECK( m_tools.retrieve() ); } // Retrieve the trigger decision tool if requested if ( !m_trigDecTool.empty() ) { - sc = m_trigDecTool.retrieve(); - if( !sc.isSuccess() ) { - ATH_MSG_ERROR("Unable to retrieve the TrigDecisionTool." << endmsg); - return sc; - } + ATH_CHECK( m_trigDecTool.retrieve() ); // If the trigger chain is specified, parse it into a list. if ( m_triggerChainString!="" ) { @@ -76,11 +39,7 @@ StatusCode AthMonitorAlgorithm::initialize() { // Then, retrieve the trigger translator if requested. Finally, convert // into a usable format using the unpackTriggerCategories function. if (!m_trigTranslator.empty()) { - sc = m_trigTranslator.retrieve(); - if ( !sc.isSuccess() ) { - ATH_MSG_ERROR("Unable to retrieve the TrigTranslatorTool." << endmsg); - return sc; - } + ATH_CHECK( m_trigTranslator.retrieve() ); unpackTriggerCategories(m_vTrigChainNames); } } @@ -144,7 +103,7 @@ AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::environment() const { } -AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::envStringToEnum( const std::string& str ) { +AthMonitorAlgorithm::Environment_t AthMonitorAlgorithm::envStringToEnum( const std::string& str ) const { // convert the string to all lowercase std::string lowerCaseStr = str; std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower); @@ -177,7 +136,7 @@ AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataType() const { } -AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataTypeStringToEnum( const std::string& str ) { +AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataTypeStringToEnum( const std::string& str ) const { // convert the string to all lowercase std::string lowerCaseStr = str; std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower); diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index 58b7784ee03e..bc0167f758a5 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -7,9 +7,7 @@ ExampleMonitorAlgorithm::ExampleMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) :AthMonitorAlgorithm(name,pSvcLocator) ,m_doRandom(false) -{ - declareProperty("RandomHist",m_doRandom); -} +{} ExampleMonitorAlgorithm::~ExampleMonitorAlgorithm() {} -- GitLab From 3ade3f3af2632e79c95d649eb95da7f6af0220e8 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Mon, 21 Jan 2019 14:25:25 -0600 Subject: [PATCH 039/192] add test defaults file --- Control/AthenaConfiguration/python/TestDefaults.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/AthenaConfiguration/python/TestDefaults.py b/Control/AthenaConfiguration/python/TestDefaults.py index d1c17095f61f..0a984d5f1ed4 100644 --- a/Control/AthenaConfiguration/python/TestDefaults.py +++ b/Control/AthenaConfiguration/python/TestDefaults.py @@ -6,5 +6,5 @@ class defaultTestFiles(): '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art') RAW = [d + "/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1"] RDO = ["myRDO.pool.root"]#needs a test RDO - AOD = ["myAOD.pool.root"]#needs a test AOD + AOD = [d + '/CommonInputs/data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1'] ESD = ["myESD.pool.root"]#needs a test ESD -- GitLab From f29840d0f4dc7380b483101929d41be9025a9ab1 Mon Sep 17 00:00:00 2001 From: Krzysztof Jamrog <krzysztof.piotr.jamrog@cern.ch> Date: Mon, 21 Jan 2019 21:31:48 +0100 Subject: [PATCH 040/192] Removing unnecessary comment --- Control/AthenaConfiguration/python/ComponentAccumulator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py index 4bad9da69a7b..f433b4fa8f52 100644 --- a/Control/AthenaConfiguration/python/ComponentAccumulator.py +++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py @@ -437,7 +437,7 @@ class ComponentAccumulator(object): else: # an algorithm existingAlg = findAlgorithm( dest, c.name(), depth=1 ) if existingAlg: - if existingAlg != c: # if it is the same we can just skip it, else this indicates an error + if existingAlg != c: self._deduplicate(c, existingAlg) else: # absent, adding self._msg.debug(" Merging algorithm %s to a sequence %s", c.name(), dest.name() ) -- GitLab From faf4c3068c76a8fd35bc592af4b511a5e564955d Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Tue, 22 Jan 2019 08:13:30 +0100 Subject: [PATCH 041/192] Use EventContext instead of EventInfo in CondWriterExtAlg --- .../src/CondWriterExtAlg.cxx | 16 +++++----------- .../src/CondWriterExtAlg.h | 4 ---- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.cxx index 3b79e7f283d7..50ff261f7b2f 100644 --- a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.cxx +++ b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.cxx @@ -4,8 +4,6 @@ #include "CondWriterExtAlg.h" -#include "EventInfo/EventID.h" -#include "EventInfo/EventIncident.h" #include "StoreGate/ReadHandle.h" #include "AthenaKernel/IOVTime.h" #include "AthenaKernel/IOVRange.h" @@ -17,30 +15,26 @@ namespace DMTest { CondWriterExtAlg::CondWriterExtAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), m_iovSvc("IOVSvc", name), - m_iovDbSvc("IOVDbSvc", name), - m_incidentSvc("IncidentSvc", name) + m_iovDbSvc("IOVDbSvc", name) { } StatusCode CondWriterExtAlg::initialize() { - ATH_CHECK( m_eventInfoKey.initialize() ); ATH_CHECK( m_iovSvc.retrieve() ); ATH_CHECK( m_iovDbSvc.retrieve() ); - ATH_CHECK( m_incidentSvc.retrieve() ); return StatusCode::SUCCESS; } StatusCode CondWriterExtAlg::execute() { - SG::ReadHandle<EventInfo> eventInfo (m_eventInfoKey); - - ATH_MSG_INFO ("Event " << eventInfo->event_ID()->event_number() << - " LBN " << eventInfo->event_ID()->lumi_block()); + const EventContext& context = getContext(); + ATH_MSG_INFO ("Event " << context.eventID().event_number() << + " LBN " << context.eventID().lumi_block()); // Check if we need to execute a command - auto it = m_cmd.find(eventInfo->event_ID()->lumi_block()); + auto it = m_cmd.find(context.eventID().lumi_block()); if (it != m_cmd.end()) { ATH_MSG_INFO("Executing: " << it->second); if ( system(it->second.c_str()) != 0 ) { diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.h b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.h index f0049c83397d..2534c615e313 100644 --- a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.h +++ b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterExtAlg.h @@ -7,8 +7,6 @@ #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/IIncidentSvc.h" -#include "EventInfo/EventInfo.h" #include "StoreGate/ReadHandleKey.h" #include "AthenaKernel/IIOVDbSvc.h" #include "AthenaKernel/IIOVSvc.h" @@ -30,13 +28,11 @@ public: virtual StatusCode execute() override; private: - SG::ReadHandleKey<EventInfo> m_eventInfoKey{this, "EventInfoKey", "McEventInfo"}; Gaudi::Property<std::string> m_attrListKey{this, "AttrListKey", "/DMTest/TestAttrList"}; Gaudi::Property<std::map<int,std::string>> m_cmd{this, "Commands", {}, "Commands to be executed on LB change"}; ServiceHandle<IIOVSvc> m_iovSvc; ServiceHandle<IIOVDbSvc> m_iovDbSvc; - ServiceHandle<IIncidentSvc> m_incidentSvc; }; } // namespace DMTest -- GitLab From 2da5266fb2689f9063cdaf9f34ed5aa90d6d45ae Mon Sep 17 00:00:00 2001 From: Mark Hodgkinson <m.hodgkinson@sheffield.ac.uk> Date: Tue, 22 Jan 2019 10:47:56 +0000 Subject: [PATCH 042/192] Bug fix such that isMuon checks all muons, not just the first one. --- Reconstruction/eflowRec/src/PFTrackSelector.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Reconstruction/eflowRec/src/PFTrackSelector.cxx b/Reconstruction/eflowRec/src/PFTrackSelector.cxx index ac7999c93e9c..41af12815ed0 100644 --- a/Reconstruction/eflowRec/src/PFTrackSelector.cxx +++ b/Reconstruction/eflowRec/src/PFTrackSelector.cxx @@ -143,7 +143,6 @@ bool PFTrackSelector::isMuon(const xAOD::TrackParticle* track){ const xAOD::TrackParticle* ID_track = *theLink; if (ID_track){ if (track == ID_track) return true; - return false; } else ATH_MSG_WARNING("This muon has a NULL pointer to the track"); } -- GitLab From 23ad7b2f055e546494c443062882e20659aab529 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Tue, 22 Jan 2019 14:14:55 +0100 Subject: [PATCH 043/192] Add support for using the MixMax random number generator. --- Control/RngComps/src/AthRNGSvc.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Control/RngComps/src/AthRNGSvc.cxx b/Control/RngComps/src/AthRNGSvc.cxx index b3cff3107299..1b26f5e4497c 100644 --- a/Control/RngComps/src/AthRNGSvc.cxx +++ b/Control/RngComps/src/AthRNGSvc.cxx @@ -7,6 +7,7 @@ #include "AthenaKernel/SlotSpecificObj.h" #include "AtlasCLHEP_RandomGenerators/dSFMTEngine.h" +#include "CLHEP/Random/MixMaxRng.h" #include "CLHEP/Random/Ranlux64Engine.h" #include "CLHEP/Random/RanecuEngine.h" @@ -32,8 +33,12 @@ StatusCode AthRNGSvc::initialize() m_fact = [](void)->CLHEP::HepRandomEngine*{ return new CLHEP::RanecuEngine(); }; + } else if(m_rngType == "MixMax") { + m_fact = [](void)->CLHEP::HepRandomEngine*{ + return new CLHEP::MixMaxRng(); + }; } else { - ATH_MSG_WARNING("Supported Generator types are 'dSFMT', 'Ranlux64', 'Ranecu'"); + ATH_MSG_WARNING("Supported Generator types are 'dSFMT', 'Ranlux64', 'Ranecu', 'MixMax'"); ATH_MSG_FATAL("Generator type \"" << m_rngType << "\" is not known. Check Joboptions"); return StatusCode::FAILURE; } -- GitLab From b82c4f6258c69e62f1ac17585e19b1709155c25d Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Tue, 22 Jan 2019 16:07:21 +0000 Subject: [PATCH 044/192] Fixing conflict --- MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h index b6b8298b362c..c19c9a388e59 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MuonCacheCreator.h @@ -47,8 +47,6 @@ protected: const CscIdHelper* m_cscIdHelper = 0; const RpcIdHelper* m_rpcIdHelper = 0; const TgcIdHelper* m_tgcIdHelper = 0; - bool m_disableWarning = false; - mutable bool m_disableWarning = false; bool isInsideView(const EventContext&) const; -- GitLab From 55684f4250205adfbc4fa6e3d21c1615d8595601 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 22 Jan 2019 17:32:39 +0100 Subject: [PATCH 045/192] Updated the Athena project to atlasexternals-2.0.21. This required updating all <FOO>_ROOT variable definitions to the new naming scheme(s) used by AtlasCMake and AtlasLCG. --- External/Pythia8/CMakeLists.txt | 3 +- Projects/Athena/CMakeLists.txt | 39 +++++++++++++------- Projects/Athena/externals.txt | 2 +- Projects/Athena/externals/Crmc.cmake | 6 +-- Projects/Athena/externals/EvtGen.cmake | 6 +-- Projects/Athena/externals/HEPUtils.cmake | 6 +-- Projects/Athena/externals/Herwig.cmake | 6 +-- Projects/Athena/externals/Herwig3.cmake | 6 +-- Projects/Athena/externals/Hydjet.cmake | 6 +-- Projects/Athena/externals/Lhapdf.cmake | 6 +-- Projects/Athena/externals/MCUtils.cmake | 6 +-- Projects/Athena/externals/MadGraph5Amc.cmake | 6 +-- Projects/Athena/externals/Photospp.cmake | 6 +-- Projects/Athena/externals/Pythia6.cmake | 6 +-- Projects/Athena/externals/Pythia8.cmake | 7 ++-- Projects/Athena/externals/Rivet.cmake | 6 +-- Projects/Athena/externals/Sherpa.cmake | 6 +-- Projects/Athena/externals/Starlight.cmake | 6 +-- Projects/Athena/externals/Tauolapp.cmake | 6 +-- Projects/Athena/externals/ThePEG.cmake | 6 +-- Projects/Athena/externals/YODA.cmake | 6 +-- 21 files changed, 81 insertions(+), 72 deletions(-) diff --git a/External/Pythia8/CMakeLists.txt b/External/Pythia8/CMakeLists.txt index 169ef610a28b..1b98a23260be 100644 --- a/External/Pythia8/CMakeLists.txt +++ b/External/Pythia8/CMakeLists.txt @@ -1,4 +1,3 @@ -# $Id: CMakeLists.txt 728071 2016-03-07 10:51:32Z krasznaa $ # # Package setting up Pythia8 to be used in the ATLAS offline software. # @@ -21,7 +20,7 @@ if( NOT PYTHIA8_FOUND ) endif() # Install the files from the xmldoc directory into the offline release. -set( xmldoc_dir "${PYTHIA8_ROOT}/share/Pythia8/xmldoc" ) +set( xmldoc_dir "${PYTHIA8_LCGROOT}/share/Pythia8/xmldoc" ) if( NOT IS_DIRECTORY ${xmldoc_dir} ) message( WARNING "Can't access ${xmldoc_dir}" ) return() diff --git a/Projects/Athena/CMakeLists.txt b/Projects/Athena/CMakeLists.txt index f92e3b2516b8..299132047c75 100644 --- a/Projects/Athena/CMakeLists.txt +++ b/Projects/Athena/CMakeLists.txt @@ -16,26 +16,37 @@ if( NOT LCG_NIGHTLY ) message( STATUS "Using LCG_NIGHTLY: ${LCG_NIGHTLY}" ) endif() endif() - + # Set the versions of the TDAQ externals to pick up for the build: if( LCG_NIGHTLY ) # TDAQ_RELEASE_BASE should be set to a NIGHTLY TDAQ build! - set( TDAQ-COMMON_VERSION "99-00-00" ) - set( DQM-COMMON_VERSION "99-00-00" ) - set( TDAQ_VERSION "99-00-00" ) + set( TDAQ-COMMON_VERSION "99-00-00" CACHE STRING + "The version of tdaq-common to use for the build" ) + set( DQM-COMMON_VERSION "99-00-00" CACHE STRING + "The version of dqm-common to use for the build" ) + set( TDAQ_VERSION "99-00-00" CACHE STRING + "The version of tdaq to use for the build" ) else() - set( TDAQ-COMMON_VERSION "02-09-00" ) - set( DQM-COMMON_VERSION "01-09-00" ) - set( TDAQ_VERSION "08-01-01" ) + set( TDAQ-COMMON_VERSION "02-09-00" CACHE STRING + "The version of tdaq-common to use for the build" ) + set( DQM-COMMON_VERSION "01-09-00" CACHE STRING + "The version of dqm-common to use for the build" ) + set( TDAQ_VERSION "08-01-01" CACHE STRING + "The version of tdaq to use for the build" ) endif() -set( TDAQ-COMMON_ROOT - "$ENV{TDAQ_RELEASE_BASE}/tdaq-common/tdaq-common-${TDAQ-COMMON_VERSION}" ) -set( DQM-COMMON_ROOT - "$ENV{TDAQ_RELEASE_BASE}/dqm-common/dqm-common-${DQM-COMMON_VERSION}" ) -set( TDAQ_PROJECT_NAME "tdaq") -set( TDAQ_ROOT - "$ENV{TDAQ_RELEASE_BASE}/${TDAQ_PROJECT_NAME}/${TDAQ_PROJECT_NAME}-${TDAQ_VERSION}" ) +set( TDAQ-COMMON_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/tdaq-common/tdaq-common-${TDAQ-COMMON_VERSION}" + CACHE PATH "The directory to pick up tdaq-common from" ) +set( DQM-COMMON_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/dqm-common/dqm-common-${DQM-COMMON_VERSION}" + CACHE PATH "The directory to pick up dqm-common from" ) +set( TDAQ_PROJECT_NAME "tdaq" CACHE STRING "The name of the tdaq project" ) +set( TDAQ_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/${TDAQ_PROJECT_NAME}/${TDAQ_PROJECT_NAME}-${TDAQ_VERSION}" + CACHE PATH "The directory to pick up tdaq from" ) +mark_as_advanced( TDAQ-COMMON_ATROOT DQM-COMMON_ATROOT TDAQ_PROJECT_NAME + TDAQ_ATROOT ) # Find the ATLAS CMake code: find_package( AtlasCMake QUIET ) diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt index b2ff34243dff..389ed070ccb1 100644 --- a/Projects/Athena/externals.txt +++ b/Projects/Athena/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthenaExternalsVersion = 2.0.20 +AthenaExternalsVersion = 2.0.21 # The version of atlas/Gaudi to use: GaudiVersion = v31r0.001 diff --git a/Projects/Athena/externals/Crmc.cmake b/Projects/Athena/externals/Crmc.cmake index 25c348f2ac3f..a7d9d68fe02d 100644 --- a/Projects/Athena/externals/Crmc.cmake +++ b/Projects/Athena/externals/Crmc.cmake @@ -2,6 +2,6 @@ # File specifying the location of Crmc to use. # -set( CRMC_VERSION 1.5.4 ) -set( CRMC_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/crmc/${CRMC_VERSION}/${LCG_PLATFORM} ) +set( CRMC_LCGVERSION 1.5.4 ) +set( CRMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/crmc/${CRMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/EvtGen.cmake b/Projects/Athena/externals/EvtGen.cmake index 5e867d801b1e..b6b2c0a3ec1c 100644 --- a/Projects/Athena/externals/EvtGen.cmake +++ b/Projects/Athena/externals/EvtGen.cmake @@ -2,6 +2,6 @@ # File specifying the location of EvtGen to use. # -set( EVTGEN_VERSION 1.6.0 ) -set( EVTGEN_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/evtgen/${EVTGEN_VERSION}/${LCG_PLATFORM} ) +set( EVTGEN_LCGVERSION 1.6.0 ) +set( EVTGEN_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/evtgen/${EVTGEN_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/HEPUtils.cmake b/Projects/Athena/externals/HEPUtils.cmake index f16c2e48e92c..27acb546c018 100644 --- a/Projects/Athena/externals/HEPUtils.cmake +++ b/Projects/Athena/externals/HEPUtils.cmake @@ -2,6 +2,6 @@ # File specifying the location of HEPUtils to use. # -set( HEPUTILS_VERSION 1.1.0 ) -set( HEPUTILS_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_VERSION}/${LCG_PLATFORM} ) +set( HEPUTILS_LCGVERSION 1.1.0 ) +set( HEPUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Herwig.cmake b/Projects/Athena/externals/Herwig.cmake index 6edc8f04a192..5b0f25a9dd99 100644 --- a/Projects/Athena/externals/Herwig.cmake +++ b/Projects/Athena/externals/Herwig.cmake @@ -2,6 +2,6 @@ # File specifying the location of Herwig to use. # -set( HERWIG_VERSION 6.520.2 ) -set( HERWIG_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/herwig/${HERWIG_VERSION}/${LCG_PLATFORM} ) +set( HERWIG_LCGVERSION 6.520.2 ) +set( HERWIG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig/${HERWIG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Herwig3.cmake b/Projects/Athena/externals/Herwig3.cmake index b110df59c09f..85b274e718d8 100644 --- a/Projects/Athena/externals/Herwig3.cmake +++ b/Projects/Athena/externals/Herwig3.cmake @@ -2,6 +2,6 @@ # File specifying the location of Herwig3 to use. # -set( HERWIG3_VERSION 7.0.4 ) -set( HERWIG3_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/herwig++/${HERWIG3_VERSION}/${LCG_PLATFORM} ) +set( HERWIG3_LCGVERSION 7.0.4 ) +set( HERWIG3_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig++/${HERWIG3_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Hydjet.cmake b/Projects/Athena/externals/Hydjet.cmake index a0ff58d0dfdf..637f1ac350e4 100644 --- a/Projects/Athena/externals/Hydjet.cmake +++ b/Projects/Athena/externals/Hydjet.cmake @@ -2,6 +2,6 @@ # File specifying the location of Hydjet to use. # -set( HYDJET_VERSION 1.6 ) -set( HYDJET_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/hydjet/${HYDJET_VERSION}/${LCG_PLATFORM} ) +set( HYDJET_LCGVERSION 1.6 ) +set( HYDJET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/hydjet/${HYDJET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Lhapdf.cmake b/Projects/Athena/externals/Lhapdf.cmake index 3eb6fa66064b..11910812fa83 100644 --- a/Projects/Athena/externals/Lhapdf.cmake +++ b/Projects/Athena/externals/Lhapdf.cmake @@ -2,6 +2,6 @@ # File specifying the location of Lhapdf to use. # -set( LHAPDF_VERSION 6.2.1 ) -set( LHAPDF_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/lhapdf/${LHAPDF_VERSION}/${LCG_PLATFORM} ) +set( LHAPDF_LCGVERSION 6.2.1 ) +set( LHAPDF_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/lhapdf/${LHAPDF_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/MCUtils.cmake b/Projects/Athena/externals/MCUtils.cmake index 86c3b4c6653d..f9b41cbffd2e 100644 --- a/Projects/Athena/externals/MCUtils.cmake +++ b/Projects/Athena/externals/MCUtils.cmake @@ -2,6 +2,6 @@ # File specifying the location of MCUtils to use. # -set( MCUTILS_VERSION 1.3.2 ) -set( MCUTILS_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_VERSION}/${LCG_PLATFORM} ) +set( MCUTILS_LCGVERSION 1.3.2 ) +set( MCUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/MadGraph5Amc.cmake b/Projects/Athena/externals/MadGraph5Amc.cmake index a410e52e444b..b21334f72a78 100644 --- a/Projects/Athena/externals/MadGraph5Amc.cmake +++ b/Projects/Athena/externals/MadGraph5Amc.cmake @@ -2,6 +2,6 @@ # File specifying the location of MadGraph to use. # -set( MADGRAPH5AMC_VERSION 2.6.1.atlas ) -set( MADGRAPH5AMC_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/madgraph5amc/${MADGRAPH5AMC_VERSION}/${LCG_PLATFORM} ) +set( MADGRAPH5AMC_LCGVERSION 2.6.1.atlas ) +set( MADGRAPH5AMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/madgraph5amc/${MADGRAPH5AMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Photospp.cmake b/Projects/Athena/externals/Photospp.cmake index 3e6761fdf161..8e0b8c2deae5 100644 --- a/Projects/Athena/externals/Photospp.cmake +++ b/Projects/Athena/externals/Photospp.cmake @@ -2,6 +2,6 @@ # File specifying the location of Photos++ to use. # -set( PHOTOSPP_VERSION 3.61 ) -set( PHOTOSPP_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/photos++/${PHOTOSPP_VERSION}/${LCG_PLATFORM} ) +set( PHOTOSPP_LCGVERSION 3.61 ) +set( PHOTOSPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/photos++/${PHOTOSPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Pythia6.cmake b/Projects/Athena/externals/Pythia6.cmake index bc6307fb19db..0531af48046a 100644 --- a/Projects/Athena/externals/Pythia6.cmake +++ b/Projects/Athena/externals/Pythia6.cmake @@ -2,6 +2,6 @@ # File specifying the location of Pythia 6 to use. # -set( PYTHIA6_VERSION 428.2 ) -set( PYTHIA6_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/pythia6/${PYTHIA6_VERSION}/${LCG_PLATFORM} ) +set( PYTHIA6_LCGVERSION 428.2 ) +set( PYTHIA6_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia6/${PYTHIA6_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Pythia8.cmake b/Projects/Athena/externals/Pythia8.cmake index c4482eec04f8..1e58aa7b7c47 100644 --- a/Projects/Athena/externals/Pythia8.cmake +++ b/Projects/Athena/externals/Pythia8.cmake @@ -2,7 +2,6 @@ # File specifying the location of Pythia 8 to use. # -set( PYTHIA8_VERSION 219.pdf6plugin ) - -set( PYTHIA8_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/pythia8/${PYTHIA8_VERSION}/${LCG_PLATFORM} ) +set( PYTHIA8_LCGVERSION 219.pdf6plugin ) +set( PYTHIA8_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia8/${PYTHIA8_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Rivet.cmake b/Projects/Athena/externals/Rivet.cmake index 6ef04ba05c8d..b42b8058bd6e 100644 --- a/Projects/Athena/externals/Rivet.cmake +++ b/Projects/Athena/externals/Rivet.cmake @@ -2,6 +2,6 @@ # File specifying the location of Rivet to use. # -set( RIVET_VERSION 2.6.0 ) -set( RIVET_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/rivet/${RIVET_VERSION}/${LCG_PLATFORM} ) +set( RIVET_LCGVERSION 2.6.0 ) +set( RIVET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/rivet/${RIVET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Sherpa.cmake b/Projects/Athena/externals/Sherpa.cmake index 1a89135be3b9..3ea89cce7b1d 100644 --- a/Projects/Athena/externals/Sherpa.cmake +++ b/Projects/Athena/externals/Sherpa.cmake @@ -2,6 +2,6 @@ # File specifying the location of Sherpa to use. # -set( SHERPA_VERSION 2.2.5 ) -set( SHERPA_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/sherpa/${SHERPA_VERSION}/${LCG_PLATFORM} ) +set( SHERPA_LCGVERSION 2.2.5 ) +set( SHERPA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/sherpa/${SHERPA_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Starlight.cmake b/Projects/Athena/externals/Starlight.cmake index 4ac46cb1bd74..614bc44908da 100644 --- a/Projects/Athena/externals/Starlight.cmake +++ b/Projects/Athena/externals/Starlight.cmake @@ -2,6 +2,6 @@ # File specifying the location of Starlight to use. # -set( STARLIGHT_VERSION r193 ) -set( STARLIGHT_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/starlight/${STARLIGHT_VERSION}/${LCG_PLATFORM} ) +set( STARLIGHT_LCGVERSION r193 ) +set( STARLIGHT_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/starlight/${STARLIGHT_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/Tauolapp.cmake b/Projects/Athena/externals/Tauolapp.cmake index f7ccd72db65f..375c6944f2a5 100644 --- a/Projects/Athena/externals/Tauolapp.cmake +++ b/Projects/Athena/externals/Tauolapp.cmake @@ -2,6 +2,6 @@ # File specifying the location of Tauola++ to use. # -set( TAUOLAPP_VERSION 1.1.6 ) -set( TAUOLAPP_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/tauola++/${TAUOLAPP_VERSION}/${LCG_PLATFORM} ) +set( TAUOLAPP_LCGVERSION 1.1.6 ) +set( TAUOLAPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/tauola++/${TAUOLAPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/ThePEG.cmake b/Projects/Athena/externals/ThePEG.cmake index 08e607dcb69f..d4739d0012fe 100644 --- a/Projects/Athena/externals/ThePEG.cmake +++ b/Projects/Athena/externals/ThePEG.cmake @@ -2,6 +2,6 @@ # File specifying the location of ThePEG to use. # -set( THEPEG_VERSION 2.0.4 ) -set( THEPEG_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/thepeg/${THEPEG_VERSION}/${LCG_PLATFORM} ) +set( THEPEG_LCGVERSION 2.0.4 ) +set( THEPEG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/thepeg/${THEPEG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/Athena/externals/YODA.cmake b/Projects/Athena/externals/YODA.cmake index 5c4f7b407c39..bc0106b3654d 100644 --- a/Projects/Athena/externals/YODA.cmake +++ b/Projects/Athena/externals/YODA.cmake @@ -2,6 +2,6 @@ # File specifying the location of YODA to use. # -set( YODA_VERSION 1.7.0 ) -set( YODA_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_VERSION}/${LCG_PLATFORM} ) +set( YODA_LCGVERSION 1.7.0 ) +set( YODA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_LCGVERSION}/${LCG_PLATFORM} ) -- GitLab From 4ee16bba3f8285d84cdf6fa240b6d227159e8e0f Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 22 Jan 2019 17:35:35 +0100 Subject: [PATCH 046/192] Updated the README file under Athena/externals. So that it would be in sync with the implementation of the files in the directory. --- Projects/Athena/externals/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Projects/Athena/externals/README.md b/Projects/Athena/externals/README.md index fefec01c5dd6..410c717ff112 100644 --- a/Projects/Athena/externals/README.md +++ b/Projects/Athena/externals/README.md @@ -12,9 +12,9 @@ the external in question. The files should define all the variables expected by the Find<Bla> modules, which normally boil down to variables: -`EXTNAME_ROOT` -`EXTNAME_VERSION` + - `EXTNAME_LCGROOT` + - `EXTNAME_LCGVERSION` -But some modules may require other variables. In which case the `_ROOT` +But some modules may require other variables. In which case the `_LCGROOT` variable should still be set, to get a nice printout from the Athena project during the build about the location of the used external. -- GitLab From fe3e654cdc43278a5adb095e691f2ef0ce745052 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 22 Jan 2019 17:38:16 +0100 Subject: [PATCH 047/192] Updated the AthSimulation project to atlasexternals-2.0.21. Just like for Athena, this meant updating all <FOO>_ROOT settings to use <FOO>_LCGROOT instead. --- Projects/AthSimulation/externals.txt | 2 +- Projects/AthSimulation/externals/HEPUtils.cmake | 6 +++--- Projects/AthSimulation/externals/MCUtils.cmake | 6 +++--- Projects/AthSimulation/externals/README.md | 6 +++--- Projects/AthSimulation/externals/YODA.cmake | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt index a0bf3b54617b..18c99554427f 100644 --- a/Projects/AthSimulation/externals.txt +++ b/Projects/AthSimulation/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthSimulationExternalsVersion = 2.0.20 +AthSimulationExternalsVersion = 2.0.21 # The version of atlas/Gaudi to use: GaudiVersion = v31r0.001 diff --git a/Projects/AthSimulation/externals/HEPUtils.cmake b/Projects/AthSimulation/externals/HEPUtils.cmake index f16c2e48e92c..27acb546c018 100644 --- a/Projects/AthSimulation/externals/HEPUtils.cmake +++ b/Projects/AthSimulation/externals/HEPUtils.cmake @@ -2,6 +2,6 @@ # File specifying the location of HEPUtils to use. # -set( HEPUTILS_VERSION 1.1.0 ) -set( HEPUTILS_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_VERSION}/${LCG_PLATFORM} ) +set( HEPUTILS_LCGVERSION 1.1.0 ) +set( HEPUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthSimulation/externals/MCUtils.cmake b/Projects/AthSimulation/externals/MCUtils.cmake index 86c3b4c6653d..f9b41cbffd2e 100644 --- a/Projects/AthSimulation/externals/MCUtils.cmake +++ b/Projects/AthSimulation/externals/MCUtils.cmake @@ -2,6 +2,6 @@ # File specifying the location of MCUtils to use. # -set( MCUTILS_VERSION 1.3.2 ) -set( MCUTILS_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_VERSION}/${LCG_PLATFORM} ) +set( MCUTILS_LCGVERSION 1.3.2 ) +set( MCUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthSimulation/externals/README.md b/Projects/AthSimulation/externals/README.md index fefec01c5dd6..410c717ff112 100644 --- a/Projects/AthSimulation/externals/README.md +++ b/Projects/AthSimulation/externals/README.md @@ -12,9 +12,9 @@ the external in question. The files should define all the variables expected by the Find<Bla> modules, which normally boil down to variables: -`EXTNAME_ROOT` -`EXTNAME_VERSION` + - `EXTNAME_LCGROOT` + - `EXTNAME_LCGVERSION` -But some modules may require other variables. In which case the `_ROOT` +But some modules may require other variables. In which case the `_LCGROOT` variable should still be set, to get a nice printout from the Athena project during the build about the location of the used external. diff --git a/Projects/AthSimulation/externals/YODA.cmake b/Projects/AthSimulation/externals/YODA.cmake index 9d7213d9cd01..9aae31a0fe16 100644 --- a/Projects/AthSimulation/externals/YODA.cmake +++ b/Projects/AthSimulation/externals/YODA.cmake @@ -2,6 +2,6 @@ # File specifying the location of YODA to use. # -set( YODA_VERSION 1.6.6 ) -set( YODA_ROOT - ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_VERSION}/${LCG_PLATFORM} ) +set( YODA_LCGVERSION 1.6.6 ) +set( YODA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_LCGVERSION}/${LCG_PLATFORM} ) -- GitLab From cecf78db91cb1f364aa5b83b0491fc6b4b0c0348 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 22 Jan 2019 17:39:06 +0100 Subject: [PATCH 048/192] Updated AnalysisBase, AnalysisTop and AthDataQuality to atlasexternals-2.0.21. Since these didn't need any additional care, they could just be updated by modifying their externals.txt files. --- Projects/AnalysisBase/externals.txt | 2 +- Projects/AnalysisTop/externals.txt | 2 +- Projects/AthDataQuality/externals.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Projects/AnalysisBase/externals.txt b/Projects/AnalysisBase/externals.txt index 9a2a23b5125f..624cd41a081c 100644 --- a/Projects/AnalysisBase/externals.txt +++ b/Projects/AnalysisBase/externals.txt @@ -6,4 +6,4 @@ # forbidden. # The version of atlas/atlasexternals to use: -AnalysisBaseExternalsVersion = 2.0.20 +AnalysisBaseExternalsVersion = 2.0.21 diff --git a/Projects/AnalysisTop/externals.txt b/Projects/AnalysisTop/externals.txt index b05c766d18f8..86228c86567d 100644 --- a/Projects/AnalysisTop/externals.txt +++ b/Projects/AnalysisTop/externals.txt @@ -1,4 +1,4 @@ # Versions of the various externals to build before starting the build of # this project, when doing a full stack nightly build. -AnalysisBaseExternalsVersion = 2.0.20 +AnalysisBaseExternalsVersion = 2.0.21 diff --git a/Projects/AthDataQuality/externals.txt b/Projects/AthDataQuality/externals.txt index 905a85343618..f7c7926e3e79 100644 --- a/Projects/AthDataQuality/externals.txt +++ b/Projects/AthDataQuality/externals.txt @@ -5,4 +5,4 @@ # an "origin/" prefix before it. For tags however this is explicitly # forbidden. -AtlasExternalsVersion = 2.0.20 +AtlasExternalsVersion = 2.0.21 -- GitLab From ec5d425c95481d993ef02429aadc672439e7fdbe Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Mon, 21 Jan 2019 20:49:46 +0100 Subject: [PATCH 049/192] StoreGate: Add initialize(SG::AllowEmpty) to VarHandleKey. Add a variant of VarHandleKey::initialize that allows the key to be empty. Also add an empty() method. --- Control/StoreGate/StoreGate/VarHandleKey.h | 26 ++++++++++++++++- Control/StoreGate/src/VarHandleKey.cxx | 30 +++++++++++++++++++- Control/StoreGate/test/VarHandleKey_test.cxx | 5 +++- 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/Control/StoreGate/StoreGate/VarHandleKey.h b/Control/StoreGate/StoreGate/VarHandleKey.h index cebaf602a17b..eaae6c24807a 100644 --- a/Control/StoreGate/StoreGate/VarHandleKey.h +++ b/Control/StoreGate/StoreGate/VarHandleKey.h @@ -1,7 +1,7 @@ // This file's extension implies that it's C, but it's really -*- C++ -*-. /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -26,6 +26,11 @@ namespace SG { +enum AllowEmptyEnum { + AllowEmpty = 1 +}; + + class VarHandleBase; @@ -120,6 +125,18 @@ public: StatusCode initialize (bool used = true); + /** + * @brief If this object is used as a property, then this should be called + * during the initialize phase. This variant will allow the key + * to be blank. + * @param Flag to select this variant. Call like + *@code + * ATH_CHECK( key.initialize (SG::AllowEmpty) ); + @endcode + */ + StatusCode initialize (AllowEmptyEnum); + + /** * @brief Return the class ID for the referenced object. */ @@ -131,6 +148,13 @@ public: */ const std::string& key() const; + + /** + * @brief Test if the key is blank. + */ + bool empty() const; + + /** * @brief Return handle to the referenced store. */ diff --git a/Control/StoreGate/src/VarHandleKey.cxx b/Control/StoreGate/src/VarHandleKey.cxx index cb725f3af91a..3ff38a2080ac 100644 --- a/Control/StoreGate/src/VarHandleKey.cxx +++ b/Control/StoreGate/src/VarHandleKey.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -134,6 +134,24 @@ StatusCode VarHandleKey::initialize (bool used /*= true*/) } +/** + * @brief If this object is used as a property, then this should be called + * during the initialize phase. This variant will allow the key + * to be blank. + * @param Flag to select this variant. Call like + *@code + * ATH_CHECK( key.initialize (SG::AllowEmpty) ); + @endcode +*/ +StatusCode VarHandleKey::initialize (AllowEmptyEnum) +{ + if (key().empty()) { + return StatusCode::SUCCESS; + } + return initialize (true); +} + + /** * @brief Return the class ID for the referenced object. */ @@ -151,6 +169,16 @@ const std::string& VarHandleKey::key() const return m_sgKey; } + +/** + * @brief Test if the key is blank. + */ +bool VarHandleKey::empty() const +{ + return m_sgKey.empty(); +} + + /** * @brief Prevent this method from being called. */ diff --git a/Control/StoreGate/test/VarHandleKey_test.cxx b/Control/StoreGate/test/VarHandleKey_test.cxx index aeeb3a42a3ef..ecdc129c79b5 100644 --- a/Control/StoreGate/test/VarHandleKey_test.cxx +++ b/Control/StoreGate/test/VarHandleKey_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id$ @@ -44,6 +44,7 @@ void test1() assert (k1.storeHandle().isSet()); assert (k1.start().isSuccess()); assert (!k1.isCondition()); + assert (!k1.empty()); k1 = "aab"; assert (k1.clid() == 1234); @@ -95,6 +96,8 @@ void test1() assert (!k4.storeHandle().isSet()); assert (k4.initialize().isFailure()); assert (k4.initialize(false).isSuccess()); + assert (k4.initialize(SG::AllowEmpty).isSuccess()); + assert (k4.empty()); EXPECT_EXCEPTION (SG::ExcBadHandleKey, SG::VarHandleKey (1237, "a/b/c", Gaudi::DataHandle::Updater)); -- GitLab From 19124ffd5301a112a48ce839ec2d42f28993a81c Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Mon, 21 Jan 2019 08:50:05 +0100 Subject: [PATCH 050/192] Migrated PixelGeoModel from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram and ::g, which are different from Gaudi::Units::gram/g --- .../PixelGeoModel/src/DBM_Det.cxx | 15 +- .../PixelGeoModel/src/DBM_Module.cxx | 16 +- .../PixelGeoModel/src/DBM_ModuleCage.cxx | 3 +- .../PixelGeoModel/src/DBM_Telescope.cxx | 19 +- .../PixelGeoModel/src/GeoPixelCable.cxx | 2 +- .../src/GeoPixelDetailedStaveSupport.cxx | 31 +- .../PixelGeoModel/src/GeoPixelDisk.cxx | 17 +- .../PixelGeoModel/src/GeoPixelEnvelope.cxx | 9 +- .../PixelGeoModel/src/GeoPixelFrame.cxx | 14 +- .../src/GeoPixelIBLFwdSvcCADModel.cxx | 13 +- .../src/GeoPixelIBLFwdSvcModel1.cxx | 13 +- .../src/GeoPixelIFlexServices.cxx | 17 +- .../PixelGeoModel/src/GeoPixelLadder.cxx | 12 +- .../src/GeoPixelLadderServices.cxx | 67 +-- .../PixelGeoModel/src/GeoPixelLayer.cxx | 7 +- .../PixelGeoModel/src/GeoPixelModule.cxx | 9 +- .../PixelGeoModel/src/GeoPixelOldFrame.cxx | 5 +- .../PixelGeoModel/src/GeoPixelRingSLHC.cxx | 11 +- .../PixelGeoModel/src/GeoPixelServices.cxx | 24 +- .../PixelGeoModel/src/GeoPixelSiCrystal.cxx | 13 +- .../PixelGeoModel/src/GeoPixelStaveRing.cxx | 4 +- .../src/GeoPixelStaveRingServices.cxx | 11 +- .../PixelGeoModel/src/GeoPixelTMT.cxx | 6 +- .../PixelGeoModel/src/OraclePixGeoManager.cxx | 475 +++++++++--------- .../PixelGeoModel/src/OraclePixGeoManager.h | 4 +- .../PixelGeoModel/src/PixelDetectorDC1DC2.cxx | 119 ++--- .../PixelGeoModel/src/PixelDetectorDC1DC2.h | 86 ++-- .../src/PixelDetectorFactory.cxx | 5 +- .../src/PixelDetectorFactoryDC2.cxx | 4 +- .../src/PixelDetectorFactorySR1.cxx | 7 +- .../PixelGeoModel/src/PixelLegacyManager.cxx | 268 +++++----- 31 files changed, 664 insertions(+), 642 deletions(-) diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx index f75a38c352fc..a4cba5fd99db 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx @@ -11,6 +11,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTrd.h" #include "GeoModelKernel/GeoTube.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" #include <iostream> @@ -21,7 +22,7 @@ DBM_Det::DBM_Det() { // Radius to beamline // Hardcoded, so if change then change in DBM_module too - double trans_rad = 46.678*GeoModelKernelUnits::mm + (m_gmt_mgr->DBMTelescopeY()) / 2.; // 10-GeoModelKernelUnits::degree version + double trans_rad = 46.678*Gaudi::Units::mm + (m_gmt_mgr->DBMTelescopeY()) / 2.; // 10-Gaudi::Units::degree version // TRANS_X TRANS_Y TRANS_Z ROT_X ROT_Y ROT_Z m_module[0].push_back(trans_rad); m_module[0].push_back(0); m_module[0].push_back(Trans_Y); m_module[0].push_back(0); m_module[0].push_back(0); m_module[0].push_back(270); @@ -36,9 +37,9 @@ GeoVPhysVol* DBM_Det::Build() double safety = 0.001; //create a cylinder 8mm smaller than the BPSS outer radius to place the 4 DBM telescopes - double rmin = 45.*GeoModelKernelUnits::mm;//41.0*GeoModelKernelUnits::mm; - double rmax = 150.*GeoModelKernelUnits::mm; //244.*GeoModelKernelUnits::mm; - double halflength = m_gmt_mgr->DBMTelescopeZ()/2.;//200.*GeoModelKernelUnits::mm + double rmin = 45.*Gaudi::Units::mm;//41.0*Gaudi::Units::mm; + double rmax = 150.*Gaudi::Units::mm; //244.*Gaudi::Units::mm; + double halflength = m_gmt_mgr->DBMTelescopeZ()/2.;//200.*Gaudi::Units::mm GeoTube * Shape = new GeoTube(rmin,rmax,halflength); const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); const GeoLogVol* Log = new GeoLogVol("OutsideDBM",Shape,air); @@ -66,9 +67,9 @@ GeoVPhysVol* DBM_Det::Build() else if ((m_gmt_mgr->GetSide() < 0) && (i == 2)) m_gmt_mgr->SetPhi(0); //setting transformation - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(m_module[i].at(5)*GeoModelKernelUnits::deg) - * GeoTrf::RotateY3D(m_module[i].at(4)*GeoModelKernelUnits::deg) - * GeoTrf::RotateX3D(m_module[i].at(3)*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(m_module[i].at(5)*Gaudi::Units::deg) + * GeoTrf::RotateY3D(m_module[i].at(4)*Gaudi::Units::deg) + * GeoTrf::RotateX3D(m_module[i].at(3)*Gaudi::Units::deg); GeoTrf::Translation3D pos(m_module[i].at(0), m_module[i].at(1), m_module[i].at(2)); GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx index d4bfe3ff3f60..f86aab047bf9 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx @@ -9,7 +9,7 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoBox.h" - +#include "GaudiKernel/SystemOfUnits.h" #include "Identifier/Identifier.h" #include "InDetIdentifier/PixelID.h" @@ -64,7 +64,7 @@ GeoVPhysVol* DBM_Module::Build() GeoIdentifierTag* diamondTag = new GeoIdentifierTag(400); - double safety = 0.003*GeoModelKernelUnits::mm; + double safety = 0.003*Gaudi::Units::mm; //diamond dimension double diamond_X = m_gmt_mgr->DBMDiamondX(); @@ -84,8 +84,8 @@ GeoVPhysVol* DBM_Module::Build() //distances from bottom of the ceramic //Hardcoded! - double bot2Chip = 0.0*GeoModelKernelUnits::mm; - double bot2Diamond = 1.685*GeoModelKernelUnits::mm; + double bot2Chip = 0.0*Gaudi::Units::mm; + double bot2Diamond = 1.685*Gaudi::Units::mm; //--------------------------------------------- @@ -93,8 +93,8 @@ GeoVPhysVol* DBM_Module::Build() // Position of the corner closest to IP and beamline // Hardcoded, so if change then change in GeoPixelEnvelope and DBM_Det too - double ZToIP = 887.002*GeoModelKernelUnits::mm; - double RToBeam = 46.678*GeoModelKernelUnits::mm; + double ZToIP = 887.002*Gaudi::Units::mm; + double RToBeam = 46.678*Gaudi::Units::mm; // layer spacing double Zspacing = m_gmt_mgr->DBMSpacingZ(); @@ -146,7 +146,7 @@ GeoVPhysVol* DBM_Module::Build() const GeoLogVol* dbmModuleLog = new GeoLogVol("dbmModuleLog", dbmModuleBox, air); GeoPhysVol* dbmModulePhys = new GeoPhysVol(dbmModuleLog); - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(270.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)*GeoTrf::RotateY3D(270.*Gaudi::Units::deg); //diamond const GeoBox* dbmDiamondBox = new GeoBox(diamond_Z/2.0, diamond_X/2.0, diamond_Y/2.0 ); @@ -224,7 +224,7 @@ GeoVPhysVol* DBM_Module::Build() double globPosZ = ZToIP + layerUnitPos_Z + (sensorPosInModuleCage_Z * cos(angle) - sensorPosInModuleCage_Y * sin(angle)); double globPosY = RToBeam + layerUnitPos_Y + (sensorPosInModuleCage_Z * sin(angle) + sensorPosInModuleCage_Y * cos(angle)); - GeoTrf::RotateX3D rmX10(-10.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rmX10(-10.*Gaudi::Units::deg); GeoTrf::Translation3D alignTransformPos(0, globPosY, globPosZ); GeoAlignableTransform *xformAlign = new GeoAlignableTransform(GeoTrf::Transform3D(alignTransformPos*rmX10)); m_DDmgr->addAlignableTransform(0, idwafer, xformAlign, dbmDiamondPhys); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx index 2f72f02edd60..1a9550c37dc3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx @@ -14,13 +14,14 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoPhysVol.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" GeoVPhysVol* DBM_ModuleCage::Build() { // safety, to make sure volumes don't overlap - double safety = 0.005*GeoModelKernelUnits::mm; + double safety = 0.005*Gaudi::Units::mm; // Telescope dimension double layerUnitY = m_gmt_mgr->DBMModuleCageY(); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx index 35b64596c7ca..b4440678f21b 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx @@ -18,12 +18,13 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" GeoVPhysVol* DBM_Telescope::Build() { - double safety = 0.005*GeoModelKernelUnits::mm; + double safety = 0.005*Gaudi::Units::mm; // telescope tilting angle in degree double angle = m_gmt_mgr->DBMAngle(); @@ -83,14 +84,14 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* telescopeLog = new GeoLogVol("dbmTelescopeLog", telescopeBox, air); GeoPhysVol* telescopePhys = new GeoPhysVol(telescopeLog); - GeoTrf::RotateX3D rmX10(-10.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rmX10(-10.*Gaudi::Units::deg); DBM_ModuleCage moduleCage; GeoVPhysVol* moduleCagePhys = moduleCage.Build(); // parameters for rotating the 3-layer unit double lyRadius = sqrt(layerUnitY*layerUnitY/4 + layerUnitZ*layerUnitZ/4); - double lyAngle = atan(layerUnitY/layerUnitZ);//21.6444*GeoModelKernelUnits::deg; // arctan(DBM3LayersY / DBM3LayersZ) + double lyAngle = atan(layerUnitY/layerUnitZ);//21.6444*Gaudi::Units::deg; // arctan(DBM3LayersY / DBM3LayersZ) // position of bottom tip of the 3-layers unit, which is the rotation point double layerUnitPos_Y = (trapBackY/cos(angle) - coolingSidePlateY)*cos(angle); double layerUnitPos_Z = coolingSidePlateY*sin(angle) + trapBackShortZ + bracketZ - brcktLockZ; @@ -107,7 +108,7 @@ GeoVPhysVol* DBM_Telescope::Build() { // back trapezoid block with window, will be rotated by 90 degree along the x-axis - const GeoTrap* trapBack = new GeoTrap(trapBackY/2., trapBack_theta, 90.0*GeoModelKernelUnits::deg, trapBackShortZ/2., trapBackX/2., trapBackX/2, 0.0, (trapBackShortZ+trapBackY*tan(angle))/2., trapBackX/2., trapBackX/2., 0.0); + const GeoTrap* trapBack = new GeoTrap(trapBackY/2., trapBack_theta, 90.0*Gaudi::Units::deg, trapBackShortZ/2., trapBackX/2., trapBackX/2, 0.0, (trapBackShortZ+trapBackY*tan(angle))/2., trapBackX/2., trapBackX/2., 0.0); double brWindowPosY = brcktWindow_offset + brcktWindow_centerZ * tan(angle) + brcktWindowY/(2 * cos(angle)); const GeoBox* brWindow = new GeoBox(brcktWindowX/2., trapBackShortZ, brcktWindowY/2.); @@ -120,7 +121,7 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* trapBackLog = new GeoLogVol("bracketLog", &trapBack1, dbmPeek4); GeoPhysVol* trapBackPhys = new GeoPhysVol(trapBackLog); - GeoTrf::RotateX3D rmX90(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rmX90(90.*Gaudi::Units::deg); double trapBackPos_Z = -telescopeZ/2. + bracketZ - brcktLockZ + ( (trapBackShortZ+trapBackY*tan(angle))/2. + trapBackY/2.*sin(trapBack_theta) - trapBackY*tan(trapBack_theta) ); GeoTrf::Translation3D trapBackPos(0.0, -telescopeY/2. + trapBackY/2. + safety, trapBackPos_Z + 3*safety); xform = new GeoTransform(GeoTrf::Transform3D(trapBackPos*rmX90)); @@ -182,7 +183,7 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* sidePlateLog = new GeoLogVol("sidePlateLog", sidePlate, dbmAluminium2); GeoPhysVol* sidePlatePhys = new GeoPhysVol(sidePlateLog); - double spAngle = angle + 17.57126*GeoModelKernelUnits::deg; + double spAngle = angle + 17.57126*Gaudi::Units::deg; double spRadius = 1/2. * sqrt(coolingSidePlateZ*coolingSidePlateZ + coolingSidePlateY*coolingSidePlateY); GeoTrf::Translation3D sidePlatePos1( mainPlateX/2. + coolingSidePlateX/2. + 2*safety, - telescopeY/2. + spRadius * sin(spAngle), -telescopeZ/2. + layerUnitPos_Z - coolingSidePlatePos*cos(angle) + spRadius * cos(spAngle)); @@ -200,19 +201,19 @@ GeoVPhysVol* DBM_Telescope::Build() { telescopePhys->add(sidePlatePhys); //cooling plates next to the bracket unit - const GeoTrap* coolingFin = new GeoTrap(coolingFinHeight/2., trapBack_theta, 90.0*GeoModelKernelUnits::deg, (coolingFinLongZ - coolingFinHeight*tan(angle))/2., coolingFinThick/2., coolingFinThick/2, 0.0, coolingFinLongZ/2., coolingFinThick/2., coolingFinThick/2., 0.0); + const GeoTrap* coolingFin = new GeoTrap(coolingFinHeight/2., trapBack_theta, 90.0*Gaudi::Units::deg, (coolingFinLongZ - coolingFinHeight*tan(angle))/2., coolingFinThick/2., coolingFinThick/2, 0.0, coolingFinLongZ/2., coolingFinThick/2., coolingFinThick/2., 0.0); const GeoMaterial* dbmAluminium3 = m_mat_mgr->getMaterialForVolume("pix::DBMAluminium3", coolingFin->volume()); const GeoLogVol* finLog = new GeoLogVol("finLog", coolingFin, dbmAluminium3); GeoPhysVol* coolingFinPhys = new GeoPhysVol(finLog); - GeoTrf::Translation3D finPos1( mainPlateX/2. - coolingFinThick/2. + safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*GeoModelKernelUnits::mm); + GeoTrf::Translation3D finPos1( mainPlateX/2. - coolingFinThick/2. + safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*Gaudi::Units::mm); xform = new GeoTransform(GeoTrf::Transform3D(finPos1*rmX90)); tag = new GeoNameTag("finPlate"); telescopePhys->add(tag); telescopePhys->add(xform); telescopePhys->add(coolingFinPhys); - GeoTrf::Translation3D finPos2( -mainPlateX/2. + coolingFinThick/2. - safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*GeoModelKernelUnits::mm); + GeoTrf::Translation3D finPos2( -mainPlateX/2. + coolingFinThick/2. - safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*Gaudi::Units::mm); xform = new GeoTransform(GeoTrf::Transform3D(finPos2*rmX90)); tag = new GeoNameTag("finPlate"); telescopePhys->add(tag); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx index a6c8e52e21ab..3f38b500c767 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx @@ -70,7 +70,7 @@ GeoVPhysVol* GeoPixelCable::Build() { std::ostringstream o; o << m_gmt_mgr->getLD_Label() << label; logName = logName+o.str(); - //std::cout << logName << ": " << weight/GeoModelKernelUnits::g << " g, " << thickness << std::endl; + //std::cout << logName << ": " << weight/Gaudi::Units::g << " g, " << thickness << std::endl; GeoLogVol* theCable = new GeoLogVol(logName,cableBox,cableMat); GeoPhysVol* cablePhys = new GeoPhysVol(theCable); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx index 6b6b9382d667..d9b40650778a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx @@ -21,6 +21,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoDefinitions.h" +#include "GaudiKernel/PhysicalConstants.h" #include <algorithm> using std::max; @@ -201,9 +202,9 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { double halfMecStaveWidth=MechanicalStaveWidth*0.5; // SafetyMargin - m_SafetyMargin=.001*GeoModelKernelUnits::mm; + m_SafetyMargin=.001*Gaudi::Units::mm; double xGblOffset=FacePlateThick+m_SafetyMargin; - double safetyMarginZ=.001*GeoModelKernelUnits::mm; + double safetyMarginZ=.001*Gaudi::Units::mm; // Compute approximated stave shape based on DB parameters ComputeStaveExternalShape(); @@ -450,7 +451,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { omegaVolume, omegaVolume,"pix::Omega_IBL", glueVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<omega_material->getName()<<" "<<omega_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<omega_material->getName()<<" "<<omega_material->getDensity()/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)<<endmsg; omega_logVol = new GeoLogVol("Omega",omega_shape,omega_material); } @@ -459,7 +460,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // const GeoMaterial* omega_material = m_mat_mgr->getMaterial(m_gmt_mgr->getMaterialName("Omega",0,0)); // GeoNameTag* omega_tag = new GeoNameTag("Omega"); - // GeoTransform* omega_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(),GeoTrf::Vector3D())); + // GeoTransform* omega_xform = new GeoTransform(GeoTrf::Transform3D(Gaudi::Units::HepRotation(),GeoTrf::Vector3D())); // GeoLogVol * omega_logVol = new GeoLogVol("Omega",omega_shape,omega_material); GeoPhysVol * omega_logVolPV = new GeoPhysVol(omega_logVol); @@ -500,7 +501,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { facePlateVolume, facePlateVolume,"pix::FacePlate_IBL", glueVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)<<endmsg; } // Create composite material made of faceplate + grease if a thickness of grease is defined is DB @@ -525,7 +526,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { facePlateVolume,faceplateMatName, greaseVolume,"pix::ThermGrease_IBL"); faceplate_logVol = new GeoLogVol("FacePlate",faceplate_shape,faceplate_material); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)<<endmsg; } // const GeoMaterial* faceplate_material = m_mat_mgr->getMaterial(m_gmt_mgr->getMaterialName("FacePlate",0,0)); @@ -626,7 +627,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // Add flex in 3D model : A component GeoTrf::Translation3D cableflex_pos((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,ModulePosZ+flexGapZ*0.5); - // GeoTransform* cableflex_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); + // GeoTransform* cableflex_xform = new GeoTransform(GeoTrf::Transform3D(Gaudi::Units::HepRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); GeoTransform* cableflex_xform = new GeoTransform(GeoTrf::Transform3D(cableflex_pos*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoLogVol * cableflex_logVol = 0; @@ -833,16 +834,16 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { else { m_gmt_mgr->msg(MSG::INFO)<<"** TUBE : with Stycast "<<TubeGlueThick<<" diam "<<TubeOuterDiam*0.5<<" "<<TubeInnerDiam*0.5<<endmsg; - double glueVolume = (TubeOuterDiam*0.5+TubeGlueThick)*(TubeOuterDiam*0.5+TubeGlueThick)*GeoModelKernelUnits::pi*MiddleSectionLength; - double tubeOuterVolume = TubeOuterDiam*TubeOuterDiam*0.25*GeoModelKernelUnits::pi*MiddleSectionLength; - double tubeInnerVolume = TubeInnerDiam*TubeInnerDiam*0.25*GeoModelKernelUnits::pi*MiddleSectionLength; + double glueVolume = (TubeOuterDiam*0.5+TubeGlueThick)*(TubeOuterDiam*0.5+TubeGlueThick)*Gaudi::Units::pi*MiddleSectionLength; + double tubeOuterVolume = TubeOuterDiam*TubeOuterDiam*0.25*Gaudi::Units::pi*MiddleSectionLength; + double tubeInnerVolume = TubeInnerDiam*TubeInnerDiam*0.25*Gaudi::Units::pi*MiddleSectionLength; const std::string compMatName="CoolingPipeGlue_IBL"; const GeoMaterial* cp_material = m_mat_mgr->getCompositeMaterialForVolume(compMatName, tubeOuterVolume-tubeInnerVolume, tubeOuterVolume-tubeInnerVolume,"pix::CoolingPipe_IBL", glueVolume-tubeOuterVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<cp_material->getName()<<" "<<cp_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<cp_material->getName()<<" "<<cp_material->getDensity()/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)<<endmsg; cp_logVol = new GeoLogVol("CoolingPipe",coolingPipe,cp_material); } @@ -1050,7 +1051,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // GeoNameTag* cp_service_tag = new GeoNameTag("ServiceCoolingPipe"); // GeoTrf::Vector3D cp_service_pos(xGblOffset+TubeMiddlePos,0.0,0.0); -// GeoTransform* cp_service_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(),cp_service_pos)); +// GeoTransform* cp_service_xform = new GeoTransform(GeoTrf::Transform3D(Gaudi::Units::HepRotation(),cp_service_pos)); // // service_logVolPV->add(cp_service_tag); // // service_logVolPV->add(cp_service_xform); // // service_logVolPV->add(cp_service_logPV); @@ -1311,7 +1312,7 @@ void GeoPixelDetailedStaveSupport::RemoveCoincidentAndColinearPointsFromShape(st int i2=(iPt+1)%(nbPoint); double zDist=fabs(sqrt((xPoint[i1]-xPoint[i2])*(xPoint[i1]-xPoint[i2])+(yPoint[i1]-yPoint[i2])*(yPoint[i1]-yPoint[i2]))); - if(zDist<0.01*GeoModelKernelUnits::mm){ + if(zDist<0.01*Gaudi::Units::mm){ xPoint.erase(xPoint.begin()+i1); yPoint.erase(yPoint.begin()+i1); bRemovedPoint=true; @@ -1514,11 +1515,11 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() GeoTrf::Vector3D midStaveCenter(m_gmt_mgr->IBLStaveOmegaMidCenterX(),0.0,0.0); double midStaveRadius=m_gmt_mgr->IBLStaveOmegaMidRadius(); - double midStaveAngle=90.0*GeoModelKernelUnits::deg-m_gmt_mgr->IBLStaveOmegaMidAngle(); + double midStaveAngle=90.0*Gaudi::Units::deg-m_gmt_mgr->IBLStaveOmegaMidAngle(); GeoTrf::Vector3D endStaveCenter(m_gmt_mgr->IBLStaveOmegaEndCenterX(),m_gmt_mgr->IBLStaveOmegaEndCenterY(),0.0); double endStaveRadius=m_gmt_mgr->IBLStaveOmegaEndRadius(); - double endStaveAngle=90.0*GeoModelKernelUnits::deg+m_gmt_mgr->IBLStaveOmegaEndAngle(); + double endStaveAngle=90.0*Gaudi::Units::deg+m_gmt_mgr->IBLStaveOmegaEndAngle(); double omegaThick = m_gmt_mgr->IBLStaveOmegaThickness(); double omegaEndStavePointY = m_gmt_mgr->IBLStaveMechanicalStaveWidth()*0.5; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx index 3ba59bf0a3c4..b9c017461071 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx @@ -17,6 +17,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" #include <sstream> @@ -55,7 +56,7 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { // Need to specify some eta. Assume all module the same GeoPixelModule psd(theSensor); double zpos = m_gmt_mgr->PixelECSiDz1()*0.5; - double deltaPhi = 360.*GeoModelKernelUnits::deg/ (float) nbECSector; + double deltaPhi = 360.*Gaudi::Units::deg/ (float) nbECSector; // This is the start angle of the even modules (3.75 deg): double startAngle = deltaPhi*0.25; // Start angle could eventually come from the database... @@ -133,17 +134,17 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { m_gmt_mgr->SetPhi(phiId); double angle = ii*0.5*deltaPhi+startAngle; - //if ( m_gmt_mgr->GetSide()<0 ) angle = 360*GeoModelKernelUnits::deg-(ii*deltaPhi+startAngle); + //if ( m_gmt_mgr->GetSide()<0 ) angle = 360*Gaudi::Units::deg-(ii*deltaPhi+startAngle); int diskSide = (ii%2) ? +1 : -1; // even: -1, odd +1 GeoTrf::Transform3D rmX(GeoTrf::Transform3D::Identity()); if (oldGeometry && m_gmt_mgr->GetSide()<0) { - if (diskSide > 0) rmX = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // This is for compatibilty with older geomtries. + if (diskSide > 0) rmX = GeoTrf::RotateX3D(180.*Gaudi::Units::deg); // This is for compatibilty with older geomtries. } else { - if (diskSide < 0) rmX = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // depth axis points towards disk. + if (diskSide < 0) rmX = GeoTrf::RotateX3D(180.*Gaudi::Units::deg); // depth axis points towards disk. } - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(angle) * rmX * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(angle) * rmX * GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoTrf::Vector3D pos(moduleRadius,0.,diskSide*zpos); pos = GeoTrf::RotateZ3D(angle)*pos; GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rm); @@ -208,11 +209,11 @@ double GeoPixelDisk::Thickness() { // 7-1 I switch to the minimum thickness possible as the cables are right // outside this volume. // - // return 10*GeoModelKernelUnits::mm; + // return 10*Gaudi::Units::mm; // GWG. It would be nice to get these numbers from the module itself to // ensure consistency. - double safety = 0.01* GeoModelKernelUnits::mm; // This is the safety added to the module. - double zClearance = 0.5 * GeoModelKernelUnits::mm; // Clearance for misalignments + double safety = 0.01* Gaudi::Units::mm; // This is the safety added to the module. + double zClearance = 0.5 * Gaudi::Units::mm; // Clearance for misalignments double tck = 2*(safety + 0.5*m_gmt_mgr->PixelBoardThickness() + std::max(m_gmt_mgr->PixelHybridThickness(), m_gmt_mgr->PixelChipThickness()+m_gmt_mgr->PixelChipGap()) diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx index 0a19ebf30ecb..c936b78ada61 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx @@ -11,6 +11,7 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GeoPixelBarrel.h" #include "GeoPixelEndCap.h" @@ -59,7 +60,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { envelopeShape = new GeoTube(rmin,rmax,halflength); pixZone = new InDetDD::TubeZone("Pixel",-halflength,halflength,rmin,rmax); } else { - GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*Gaudi::Units::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = m_gmt_mgr->PixelEnvelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -135,7 +136,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { m_gmt_mgr->SetEndcap(); m_gmt_mgr->SetNeg(); - GeoTransform* xform = new GeoTransform(endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); + GeoTransform* xform = new GeoTransform(endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)); GeoNameTag* tag = new GeoNameTag("EndCapC"); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(-2)); @@ -237,7 +238,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { // so if change then change in DBM_module too if (m_gmt_mgr->dbm()) { - GeoTrf::Translate3D dbmTransform1( 0, 0, 887.002*GeoModelKernelUnits::mm + ( m_gmt_mgr->DBMTelescopeZ() )/2.); //Add 0.002mm to 887mm for safety + GeoTrf::Translate3D dbmTransform1( 0, 0, 887.002*Gaudi::Units::mm + ( m_gmt_mgr->DBMTelescopeZ() )/2.); //Add 0.002mm to 887mm for safety //m_DDmgr->numerology().addEndcap(4); m_gmt_mgr->SetPartsDBM(); @@ -253,7 +254,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { //m_DDmgr->numerology().addEndcap(-4); m_gmt_mgr->SetNeg(); GeoNameTag* tag2 = new GeoNameTag("DBMC"); - GeoTransform* dbmTransform2 = new GeoTransform(GeoTrf::TranslateZ3D(-887.002*GeoModelKernelUnits::mm - ( m_gmt_mgr->DBMTelescopeZ() )/2.) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); + GeoTransform* dbmTransform2 = new GeoTransform(GeoTrf::TranslateZ3D(-887.002*Gaudi::Units::mm - ( m_gmt_mgr->DBMTelescopeZ() )/2.) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)); envelopePhys->add(tag2); envelopePhys->add(new GeoIdentifierTag(-4)); envelopePhys->add(dbmTransform2); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx index e626969c244f..83975b7b728f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx @@ -15,7 +15,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <algorithm> GeoPixelFrame::GeoPixelFrame() @@ -47,18 +47,18 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) //////////////////////// // Make envelope to hold the frame - //double safety = 0.001 * GeoModelKernelUnits::mm; - double epsilon = 0.00001 * GeoModelKernelUnits::mm; + //double safety = 0.001 * Gaudi::Units::mm; + double epsilon = 0.00001 * Gaudi::Units::mm; double halflength = 0.5*std::abs(zmax - zmin); - double alpha = GeoModelKernelUnits::pi/numSides; + double alpha = Gaudi::Units::pi/numSides; double cosalpha = cos(alpha); double sinalpha = sin(alpha); /* double rminEnv = (rminSide-safety)/cosalpha; double rmaxEnv = (rmaxSide+safety)/cosalpha; - GeoPgon * frameEnvShape = new GeoPgon(phiLoc-alpha,2*GeoModelKernelUnits::pi,numSides); + GeoPgon * frameEnvShape = new GeoPgon(phiLoc-alpha,2*Gaudi::Units::pi,numSides); frameEnvShape->addPlane(zCenter-halflength-0.5*epsilon,rminEnv,rmaxEnv); frameEnvShape->addPlane(zCenter+halflength+0.5*epsilon,rminEnv,rmaxEnv); @@ -172,7 +172,7 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) double thetaPara = 0; double phiPara = 0; sideElementShape = new GeoPara(0.5*std::abs(zMax1-zMin1), 0.5*sideWidth-epsilon, 0.5*sideThick, alphaPara, thetaPara, phiPara); - rotateShape = GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + rotateShape = GeoTrf::RotateY3D(-90*Gaudi::Units::deg); shapeVolume = std::abs(zMax1-zMin1) * (sideWidth-2*epsilon) * sideThick; } else {// // other cases not implemented. Should not occur for the frame. @@ -220,7 +220,7 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) double angleSide = phiLoc + alpha * (2*iSide); GeoTrf::Transform3D oddEvenRotate(GeoTrf::Transform3D::Identity()); if (iSide%2 && mirrorSides) { - oddEvenRotate = GeoTrf::RotateZ3D(GeoModelKernelUnits::pi); // Every 2nd side we mirror the side. + oddEvenRotate = GeoTrf::RotateZ3D(Gaudi::Units::pi); // Every 2nd side we mirror the side. } GeoTransform * sideTrans = new GeoTransform(GeoTrf::TranslateZ3D(zSideCenter)*GeoTrf::RotateZ3D(angleSide) *GeoTrf::TranslateX3D(midRadius)*oddEvenRotate); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx index 11643a2de652..c8418be6cb4e 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx @@ -25,6 +25,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" +#include "GaudiKernel/PhysicalConstants.h" #include <algorithm> #include <iostream> @@ -53,7 +54,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL fwd services - CAD tool design - Torus object is defined"<<endmsg; - // double safety = 0.01*GeoModelKernelUnits::mm; + // double safety = 0.01*Gaudi::Units::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -63,7 +64,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*GeoModelKernelUnits::deg; + double angle=360./(double)nSectors*Gaudi::Units::deg; // Defines the IBL_Fwd02 section in the IBL services area double innerRadius = 33.; @@ -94,7 +95,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double lgFwdSvc[4]={511., 561., 560., 706. }; double devLgFwdSvc[4]={512., 562., 562., 707. }; double devTotalLength = 2460.188; - double pi = GeoModelKernelUnits::pi; + double pi = Gaudi::Units::pi; // Cable bundle sizes double rminCable = 0.; @@ -112,7 +113,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double zposRing = 0.; double totalLength=0.; double hermJunction = .4; - double breakAngle = 11.*GeoModelKernelUnits::deg; + double breakAngle = 11.*Gaudi::Units::deg; // Loop over the wavy shape sections to build a cable and a cooling pipe const GeoShape * gblShapeCableA = 0; @@ -195,12 +196,12 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() // -------------- Alignement of the services with the previous services (Fwd01 area) double cooling_radius = 35.1; - double cooling_angle = -2.154*GeoModelKernelUnits::deg; + double cooling_angle = -2.154*Gaudi::Units::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*GeoModelKernelUnits::deg; + cooling_angle = -.1*Gaudi::Units::deg; } double cable_radius = 36.501; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx index ae12b9fea422..9722286a261a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx @@ -20,6 +20,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" +#include "GaudiKernel/SystemOfUnits.h" #include <algorithm> #include <iostream> @@ -39,7 +40,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL fwd services"<<endmsg; - // double safety = 0.01*GeoModelKernelUnits::mm; + // double safety = 0.01*Gaudi::Units::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -49,7 +50,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*GeoModelKernelUnits::deg; + double angle=360./(double)nSectors*Gaudi::Units::deg; // Defines the IBL_Fwd02 section in the IBL services area double innerRadius = 33.; @@ -98,15 +99,15 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // double zposRing = 0.; double totalLength=0.; // double hermJunction = .4; - double breakAngle = 11.*GeoModelKernelUnits::deg; + double breakAngle = 11.*Gaudi::Units::deg; double cooling_radius = 35.1; - double cooling_angle = -2.154*GeoModelKernelUnits::deg; + double cooling_angle = -2.154*Gaudi::Units::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*GeoModelKernelUnits::deg; + cooling_angle = -.1*Gaudi::Units::deg; } double cable_radius = 36.501; @@ -189,7 +190,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // Cable const GeoTube* cableShape = new GeoTube(rminCable, rmaxCable, zHalfLength); - double angle = 0.; //11.*GeoModelKernelUnits::deg; + double angle = 0.; //11.*Gaudi::Units::deg; GeoTrf::Transform3D trfA1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateZ3D(zpos-zMiddle); gblShapeCableA = addShape(gblShapeCableA, cableShape, trfA1 ); GeoTrf::Transform3D trfC1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateZ3D(zMax-(zpos-zMin)-zMiddle); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx index 3463842e192a..136ae93f4951 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx @@ -17,6 +17,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" +#include "GaudiKernel/SystemOfUnits.h" #include <algorithm> using std::max; @@ -35,7 +36,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL I-Flex services"<<endmsg; - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -45,7 +46,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*GeoModelKernelUnits::deg; + double angle=360./(double)nSectors*Gaudi::Units::deg; double zmin=0., zmax=0.; double deltaLength = 0.; @@ -108,12 +109,12 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() double cooling_radius = 35.1; double TubeOuterDiam = m_gmt_mgr->IBLStaveTubeOuterDiameter(); double TubeInnerDiam = m_gmt_mgr->IBLStaveTubeInnerDiameter(); - double cooling_angle = -2.154*GeoModelKernelUnits::deg; + double cooling_angle = -2.154*Gaudi::Units::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*GeoModelKernelUnits::deg; + cooling_angle = -.1*Gaudi::Units::deg; } const GeoTube* service_coolingPipeA = new GeoTube(0.0,TubeOuterDiam*0.5,halfLengthA); @@ -145,9 +146,9 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() GeoLogVol* flex_logVolA = 0; GeoLogVol* flex_logVolC = 0; - double flex_angle = -15.001*GeoModelKernelUnits::deg; + double flex_angle = -15.001*Gaudi::Units::deg; if(m_gmt_mgr->PixelStaveAxe()==1) - flex_angle += 2.14*GeoModelKernelUnits::deg; + flex_angle += 2.14*Gaudi::Units::deg; double flex_rot=0.30265; flex_rot=-0.30265*.5; @@ -244,12 +245,12 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() if(m_section==2){ // Intermediate flex - GeoTransform* xformA2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(flex_rot)); + GeoTransform* xformA2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90.*Gaudi::Units::deg)*GeoTrf::RotateX3D(flex_rot)); m_supportPhysA->add(tag2); m_supportPhysA->add(xformA2); m_supportPhysA->add(flexPhysVolA); - GeoTransform* xformC2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-flex_rot)); + GeoTransform* xformC2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*Gaudi::Units::deg)*GeoTrf::RotateY3D(90.*Gaudi::Units::deg)*GeoTrf::RotateX3D(-flex_rot)); m_supportPhysC->add(tag2); m_supportPhysC->add(xformC2); m_supportPhysC->add(flexPhysVolC); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx index bcbc577a590b..39c3e6ef0502 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx @@ -21,6 +21,8 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GaudiKernel/PhysicalConstants.h" + using std::max; GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, @@ -37,7 +39,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, // Length of the ladder is in the db // double length = m_gmt_mgr->PixelLadderLength(); - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; m_width = calcWidth(); m_thicknessP = 0.5 * m_gmt_mgr->PixelLadderThickness(); @@ -58,7 +60,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, const GeoShape * ladderShape = 0; // If upper and lower thicknesses are within 100 um. Make them the same. - if (std::abs(m_thicknessP - m_thicknessN) < 0.1*GeoModelKernelUnits::mm) { + if (std::abs(m_thicknessP - m_thicknessN) < 0.1*Gaudi::Units::mm) { m_thicknessP = std::max(m_thicknessP,m_thicknessN); m_thicknessN = m_thicknessP; double halfThickness = m_thicknessP; @@ -67,7 +69,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, else if (m_gmt_mgr->PixelBentStaveNModule() != 0) { // Calculate thickness from bent stave part - double angle = m_gmt_mgr->PixelLadderBentStaveAngle() * GeoModelKernelUnits::pi / 180.0; + double angle = m_gmt_mgr->PixelLadderBentStaveAngle() * Gaudi::Units::pi / 180.0; double BentStaveThickness = double(m_gmt_mgr->PixelBentStaveNModule()) * m_gmt_mgr->PixelLadderModuleDeltaZ() * sin(angle); // Extend +ve or -ve ladder thickness according to stave angle @@ -382,7 +384,7 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { // const GeoMaterial* materialSup = m_mat_mgr->getMaterialForVolume(matName,shapeSupBent->volume()); const GeoMaterial* materialSup = m_mat_mgr->getMaterial("pix::StaveSupportBase"); - double ang = m_gmt_mgr->PixelLadderBentStaveAngle() * GeoModelKernelUnits::pi / 180.0; + double ang = m_gmt_mgr->PixelLadderBentStaveAngle() * Gaudi::Units::pi / 180.0; double xst = xOffset - (bentStaveHalfLength * sin(ang)); // Construct bent stave at negative z @@ -415,7 +417,7 @@ double GeoPixelLadder::calcThickness() { // to avoid duplication of code // - const double safety = 0.01*GeoModelKernelUnits::mm; + const double safety = 0.01*Gaudi::Units::mm; double clearance = m_gmt_mgr->PixelLadderThicknessClearance(); clearance = std::max(clearance, safety); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx index 1af721b80a5e..517d424f197c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx @@ -18,6 +18,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GaudiKernel/PhysicalConstants.h" #include <cmath> #include <vector> @@ -37,7 +38,7 @@ GeoPixelLadderServices::GeoPixelLadderServices(int ladderType) // //const GeoBox* ladderSvcBox = new GeoBox(thickness/2.,width/2.,halflength); // Quick fix - we hardwire the numbers. Need to work out a way to extract this from the database numbers. - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double xBase = 0; // ConnA: Part to fit Connector @@ -47,22 +48,22 @@ GeoPixelLadderServices::GeoPixelLadderServices(int ladderType) double xOffsetConnC = xOffsetConnA; - //double xMaxConnA = 1.250 * GeoModelKernelUnits::cm + xOffsetConnA + safety; - // double xMaxConnC = 1.6575 * GeoModelKernelUnits::cm + xOffsetConnC + safety; + //double xMaxConnA = 1.250 * Gaudi::Units::cm + xOffsetConnA + safety; + // double xMaxConnC = 1.6575 * Gaudi::Units::cm + xOffsetConnC + safety; // max offset is 12.5mm + 1/2 thickness of cables - // double xMaxConnA = 1.5075 * GeoModelKernelUnits::cm + 0.5* 0.15*GeoModelKernelUnits::cm + xOffsetConnA + safety; + // double xMaxConnA = 1.5075 * Gaudi::Units::cm + 0.5* 0.15*Gaudi::Units::cm + xOffsetConnA + safety; double xMaxConnA = m_gmt_mgr->PixelConnectorPosX(1) + 0.5*m_gmt_mgr->PixelConnectorWidthX(1) + xOffsetConnA + safety; - double xMaxConnC = 1.25 * GeoModelKernelUnits::cm + 0.5* 0.0125*GeoModelKernelUnits::cm + xOffsetConnC + safety; - double xMaxOmegaBase = 0.055 * GeoModelKernelUnits::cm + xBase + 1*GeoModelKernelUnits::mm; // The 1 mm is just extra safety. - double yWidthConnA = 1.0 * GeoModelKernelUnits::cm; - double yWidthConnC = 0.2 * GeoModelKernelUnits::cm; + double xMaxConnC = 1.25 * Gaudi::Units::cm + 0.5* 0.0125*Gaudi::Units::cm + xOffsetConnC + safety; + double xMaxOmegaBase = 0.055 * Gaudi::Units::cm + xBase + 1*Gaudi::Units::mm; // The 1 mm is just extra safety. + double yWidthConnA = 1.0 * Gaudi::Units::cm; + double yWidthConnC = 0.2 * Gaudi::Units::cm; double yPosConnA = m_gmt_mgr->PixelLadderCableOffsetY() - m_gmt_mgr->PixelLadderServicesY(); double yPosConnC = yPosConnA; double xCenter = 0; double xWidthOmegaBase = xMaxOmegaBase - xBase; double xWidthConnA = xMaxConnA - xBase; double xWidthConnC = xMaxConnC - xBase; - double yWidthOmega = 1.2*GeoModelKernelUnits::cm + m_epsilon; + double yWidthOmega = 1.2*Gaudi::Units::cm + m_epsilon; const GeoBox* omegaBaseEnv = new GeoBox(0.5*xWidthOmegaBase, 0.5*yWidthOmega, halflength); const GeoBox* connAEnv = new GeoBox(0.5*xWidthConnA, 0.5*yWidthConnA + safety, halflength); @@ -98,7 +99,7 @@ GeoPixelLadderServices::~GeoPixelLadderServices(){ GeoVPhysVol* GeoPixelLadderServices::Build() { GeoPhysVol* ladderSvcPhys = new GeoPhysVol(m_ladderServicesLV); //double thickness = m_gmt_mgr->PixelLadderThickness()+m_gmt_mgr->PixelCableThickness(); - //double thickness = m_gmt_mgr->PixelLadderThickness() + m_gmt_mgr->PixelCableThickness() + 0.25*GeoModelKernelUnits::cm; // plus 0.25 cm New DC3 ??? + //double thickness = m_gmt_mgr->PixelLadderThickness() + m_gmt_mgr->PixelCableThickness() + 0.25*Gaudi::Units::cm; // plus 0.25 cm New DC3 ??? //double thickness = m_gmt_mgr->PixelLadderThickness()+ 6.5; // m_gmt_mgr->PixelCableThickness() was 0.4 cm, plus 0.25 cm New DC3 // // The Glue @@ -154,16 +155,16 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { double xOffset = m_xOffset; double yOffset = m_yOffset; /* - double xUpperBend = xOffset + 2.9*GeoModelKernelUnits::mm; + double xUpperBend = xOffset + 2.9*Gaudi::Units::mm; double yUpperBend = yOffset + 0; - double radUpperBend = 2.3*GeoModelKernelUnits::mm; + double radUpperBend = 2.3*Gaudi::Units::mm; double xLowerBend = xOffset + 0.9; - double yLowerBend = yOffset + 3.35*GeoModelKernelUnits::mm; - double radLowerBend = 0.8*GeoModelKernelUnits::mm; - double yStart= yOffset + (4.675+0.5*2.65)*GeoModelKernelUnits::mm; + double yLowerBend = yOffset + 3.35*Gaudi::Units::mm; + double radLowerBend = 0.8*Gaudi::Units::mm; + double yStart= yOffset + (4.675+0.5*2.65)*Gaudi::Units::mm; double yEnd = yOffset -yStart; - double thick = 0.3*GeoModelKernelUnits::mm; - double length = 816*GeoModelKernelUnits::mm; + double thick = 0.3*Gaudi::Units::mm; + double length = 816*Gaudi::Units::mm; double zOffset = 0; */ double xUpperBend = xOffset + m_gmt_mgr->PixelOmegaUpperBendX(); @@ -192,13 +193,13 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { // Tube sector for upper bend - GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*GeoModelKernelUnits::pi, GeoModelKernelUnits::pi - 2*alpha); + GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*Gaudi::Units::pi, Gaudi::Units::pi - 2*alpha); // Tube sector for lower bend (+y) - GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, GeoModelKernelUnits::pi, 0.5*GeoModelKernelUnits::pi-alpha); + GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, Gaudi::Units::pi, 0.5*Gaudi::Units::pi-alpha); // Tube sector for lower bend (-y) - GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*GeoModelKernelUnits::pi + alpha, 0.5*GeoModelKernelUnits::pi-alpha); + GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*Gaudi::Units::pi + alpha, 0.5*Gaudi::Units::pi-alpha); // Lower Straight section (+y) GeoBox * lowerStraightBoxP = new GeoBox(0.5*thick, 0.5*(yStart - yLowerBend), 0.5*length); @@ -213,9 +214,9 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { const GeoShape & omegaShape = (*lowerStraightBoxP << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(yLowerBend+yStart),zOffset) ) .add(*lowerBendShapeP << GeoTrf::Translate3D(xLowerBend,yLowerBend,zOffset) ) - .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi-alpha) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*Gaudi::Units::pi-alpha) ) .add(*upperBendShape << GeoTrf::Translate3D(xUpperBend,yUpperBend,zOffset) ) - .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi+alpha) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*Gaudi::Units::pi+alpha) ) .add(*lowerBendShapeM << GeoTrf::Translate3D(xLowerBend,-yLowerBend,zOffset) ) .add(*lowerStraightBoxM << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(-yLowerBend+yEnd),zOffset) ); @@ -240,14 +241,14 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { double yOffset = m_yOffset; /* - double xUpperBend = xOffset + 2.7*GeoModelKernelUnits::mm; + double xUpperBend = xOffset + 2.7*Gaudi::Units::mm; double yUpperBend = yOffset; - double radUpperBend = 2.0*GeoModelKernelUnits::mm; + double radUpperBend = 2.0*Gaudi::Units::mm; double xLowerBend = xOffset + 0.55; - double yLowerBend = yOffset+1.925*GeoModelKernelUnits::mm; - double radLowerBend = 0.5*GeoModelKernelUnits::mm; - double thick = 0.2*GeoModelKernelUnits::mm; - double length = 838*GeoModelKernelUnits::mm; + double yLowerBend = yOffset+1.925*Gaudi::Units::mm; + double radLowerBend = 0.5*Gaudi::Units::mm; + double thick = 0.2*Gaudi::Units::mm; + double length = 838*Gaudi::Units::mm; double zOffset = 0; */ @@ -275,13 +276,13 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { // Tube sector for upper bend - GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*GeoModelKernelUnits::pi, GeoModelKernelUnits::pi - 2*alpha); + GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*Gaudi::Units::pi, Gaudi::Units::pi - 2*alpha); // Tube sector for lower bend (+y) - GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*GeoModelKernelUnits::pi-alpha, 0.5*GeoModelKernelUnits::pi+alpha); + GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*Gaudi::Units::pi-alpha, 0.5*Gaudi::Units::pi+alpha); // Tube sector for lower bend (-y) - GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, GeoModelKernelUnits::pi, 0.5*GeoModelKernelUnits::pi+alpha); + GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, Gaudi::Units::pi, 0.5*Gaudi::Units::pi+alpha); // Lower Straight section GeoBox * lowerStraightBox = new GeoBox(0.5*thick, yLowerBend, 0.5*length); @@ -293,9 +294,9 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { const GeoShape & alTubeShape = (*lowerStraightBox << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0,zOffset) ) .add(*lowerBendShapeP << GeoTrf::Translate3D(xLowerBend,yLowerBend,zOffset) ) - .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi-alpha) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*Gaudi::Units::pi-alpha) ) .add(*upperBendShape << GeoTrf::Translate3D(xUpperBend,yUpperBend,zOffset) ) - .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi+alpha) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*Gaudi::Units::pi+alpha) ) .add(*lowerBendShapeM << GeoTrf::Translate3D(xLowerBend,-yLowerBend,zOffset) ); double totVolume = diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx index 8e103b87779d..80d2d00918bf 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx @@ -30,6 +30,7 @@ #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoPhysVol.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> @@ -304,7 +305,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // Layer dimensions from above, etc // - double safety = 0.01 * GeoModelKernelUnits::mm; + double safety = 0.01 * Gaudi::Units::mm; double rmin = m_gmt_mgr->PixelLayerRadius()-layerThicknessN - safety; double rmax = m_gmt_mgr->PixelLayerRadius()+layerThicknessP + safety; double length = m_gmt_mgr->PixelLadderLength() + 4*m_epsilon; // Ladder has length m_gmt_mgr->PixelLadderLength() + 2*m_epsilon @@ -315,7 +316,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { if(m_gmt_mgr->GetLD()==0&&m_gmt_mgr->ibl()&&m_gmt_mgr->PixelStaveLayout()>3&&m_gmt_mgr->PixelStaveLayout()<8) { bAddIBLStaveRings=true; - double safety = 0.001 * GeoModelKernelUnits::mm; + double safety = 0.001 * Gaudi::Units::mm; double outerRadius = m_gmt_mgr->IBLSupportMidRingInnerRadius(); rmax=outerRadius-safety; @@ -346,7 +347,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // A few variables needed below // - double angle=(nSectors>0)?(360./(double)nSectors)*GeoModelKernelUnits::deg:(360.*GeoModelKernelUnits::deg); + double angle=(nSectors>0)?(360./(double)nSectors)*Gaudi::Units::deg:(360.*Gaudi::Units::deg); GeoTrf::Transform3D transRadiusAndTilt = GeoTrf::TranslateX3D(layerRadius)*GeoTrf::RotateZ3D(ladderTilt); double phiOfModuleZero = m_gmt_mgr->PhiOfModuleZero(); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx index 9f0fb3b103fe..e2f9223d3255 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GaudiKernel/SystemOfUnits.h" using std::max; @@ -137,7 +138,7 @@ GeoVPhysVol* GeoPixelModule::Build( ) { // // Place the Hybrid // - if (m_gmt_mgr->PixelHybridThickness(m_isModule3D)>0.00001*GeoModelKernelUnits::mm){ + if (m_gmt_mgr->PixelHybridThickness(m_isModule3D)>0.00001*Gaudi::Units::mm){ GeoPixelHybrid ph(m_isModule3D); double hybxpos = -0.5*(m_gmt_mgr->PixelBoardThickness(m_isModule3D)+m_gmt_mgr->PixelHybridThickness(m_isModule3D)); GeoTransform* xform = new GeoTransform(GeoTrf::TranslateX3D(hybxpos)); @@ -200,7 +201,7 @@ double GeoPixelModule::ThicknessN_noSvc() { // is the max of ThicknessP and thickness from the module center to // the outer surface of the hybrid plus some safety. // - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double thickn = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D)+ m_gmt_mgr->PixelHybridThickness(m_isModule3D) + safety; double thick = max(thickn, ThicknessP()); @@ -234,7 +235,7 @@ double GeoPixelModule::ThicknessN() { // - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double thickn = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D)+ m_gmt_mgr->PixelHybridThickness(m_isModule3D) + safety; double thick = max(thickn, ThicknessP()); @@ -265,7 +266,7 @@ double GeoPixelModule::ThicknessP() { // is thickness from the module center to the outer surface of the // chips plus some safety. - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double thick = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D) + m_gmt_mgr->PixelChipThickness(m_isModule3D)+m_gmt_mgr->PixelChipGap(m_isModule3D) + safety; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx index e50c4ccec30f..5877c11627df 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" +#include "GaudiKernel/SystemOfUnits.h" // Satisfy interface @@ -113,7 +114,7 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { // First part m_legacyManager->setBarrelInSFrame(); - double alpha = 45.*GeoModelKernelUnits::deg; + double alpha = 45.*Gaudi::Units::deg; double w1 = m_legacyManager->PixelBarrelBFrameWidth(); double w2 = m_legacyManager->PixelBarrelTFrameWidth(); double off = m_legacyManager->PixelBarrelFrameOffset(); @@ -206,7 +207,7 @@ void GeoPixelOldFrame::BuildOutBarrel(GeoFullPhysVol * parent) { // Add the pixel frame inside the endcap volume // m_legacyManager->setEndcapInSFrame(); - double alpha = 45.*GeoModelKernelUnits::deg; + double alpha = 45.*Gaudi::Units::deg; double w1 = m_legacyManager->PixelEndcapBFrameWidth(); double w2 = m_legacyManager->PixelEndcapTFrameWidth(); double off = m_legacyManager->PixelEndcapFrameOffset()+m_legacyManager->PixelEndcapFrameLength(); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx index 01ace765ff7d..ca402ad4db54 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" //#include <string> @@ -42,8 +43,8 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { //(sar) Original block was in c'tor... // Dimensions from class methods // - double rmin = m_gmt_mgr->PixelRingRMin(); // Default is 0.01 GeoModelKernelUnits::mm safety added - double rmax = m_gmt_mgr->PixelRingRMax(); // Default is 0.01 GeoModelKernelUnits::mm safety added + double rmin = m_gmt_mgr->PixelRingRMin(); // Default is 0.01 Gaudi::Units::mm safety added + double rmax = m_gmt_mgr->PixelRingRMax(); // Default is 0.01 Gaudi::Units::mm safety added double halflength = m_gmt_mgr->PixelRingThickness()/2.; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); const GeoTube* ringTube = new GeoTube(rmin,rmax,halflength); @@ -60,7 +61,7 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { if(nmodules==0) return ringPhys; // deltaPhi is angle between two adjacent modules regardless of side of the disk - double deltaPhi = 360.*GeoModelKernelUnits::deg / (double)nmodules; + double deltaPhi = 360.*Gaudi::Units::deg / (double)nmodules; // This is the start angle of the even modules // Start angle could eventually come from the database... @@ -99,8 +100,8 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { double angle = imod*deltaPhi+startAngle; - GeoTrf::Transform3D rm = GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - if( m_gmt_mgr->isDiskBack() ) rm = rm * GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateY3D(90*Gaudi::Units::deg); + if( m_gmt_mgr->isDiskBack() ) rm = rm * GeoTrf::RotateX3D(180.*Gaudi::Units::deg); rm = rm * GeoTrf::RotateZ3D(angle); GeoTrf::Vector3D pos(moduleRadius,0,zpos); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx index 30aaf37b6dc5..00f1c9f2b75a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx @@ -34,7 +34,7 @@ // TUBS // Ignored: RIN2,ROUT2 // PHI: phi start location of tube sector -// WIDTH (GeoModelKernelUnits::deg): phi width of sector +// WIDTH (Gaudi::Units::deg): phi width of sector // REPEAT: Repeat the tube sector this many times in phi with equal distance between them. // CONS, CONE // WIDTH,REPEAT ignored if CONE @@ -72,30 +72,30 @@ // Ignored: ROUT, RIN2, ROUT2 // RIN: Radial position of center of tube // PHI: phi position of center -// WIDTH (GeoModelKernelUnits::mm): diameter +// WIDTH (Gaudi::Units::mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // ROD2 // Ignored: ROUT, RIN2, ROUT2 // RIN: Radial position of center of tube // PHI: phi position of center -// WIDTH (GeoModelKernelUnits::mm): diameter +// WIDTH (Gaudi::Units::mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // BOX // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of box (radially) // (RIN+ROUT)/2 = radial poistion of center of box // PHI: phi position of center -// WIDTH (GeoModelKernelUnits::mm) = width of box +// WIDTH (Gaudi::Units::mm) = width of box // REPEAT: Repeat this many times in phi with equal distance between them. // TRAP // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of trapezoid (radially) // (RIN+ROUT)/2 = radial poistion of center of trapzoid // PHI: phi position of center -// WIDTH (GeoModelKernelUnits::mm) = width of trapezoid at center +// WIDTH (Gaudi::Units::mm) = width of trapezoid at center // REPEAT: Repeat this many times in phi with equal distance between them. // -// **IMPORTANT NOTE** WIDTH can be in degrees or GeoModelKernelUnits::mm. See OraclePixGeoManager +// **IMPORTANT NOTE** WIDTH can be in degrees or Gaudi::Units::mm. See OraclePixGeoManager #include "GeoPixelServices.h" @@ -104,7 +104,7 @@ #include "InDetGeoModelUtils/ServiceVolume.h" #include "InDetGeoModelUtils/ServiceVolumeMaker.h" #include "InDetGeoModelUtils/IInDetServMatBuilderTool.h" - +#include "GaudiKernel/PhysicalConstants.h" #include <sstream> #include <iomanip> @@ -206,7 +206,7 @@ GeoPixelServices::GeoPixelServices(InDetDD::Zone * pixZone) std::vector<const InDetDD::ServiceVolume *> servicesOutPix; double svc3_rMin = 99999., svc3_rMax = 0.; std::vector<const InDetDD::ServiceVolume *> servicesOther; - double safety=0.001*GeoModelKernelUnits::mm; + double safety=0.001*Gaudi::Units::mm; for(std::vector<const InDetDD::ServiceVolume *>::const_iterator it=services.begin(); it!=services.end(); it++) { @@ -403,15 +403,15 @@ void GeoPixelServices::initializeOld(const std::string & a) double phiLoc = m_gmt_mgr->PixelServicePhiLoc(a, ii); double phiWidth = m_gmt_mgr->PixelServiceWidth(a, ii); - // Can be in degree or GeoModelKernelUnits::mm. Usually it is GeoModelKernelUnits::deg expect for BOX, TRAP and ROD shape + // Can be in degree or Gaudi::Units::mm. Usually it is Gaudi::Units::deg expect for BOX, TRAP and ROD shape // Geometry manager makes no assumptions about units. So we must interpret here. if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") { - phiWidth *= GeoModelKernelUnits::mm; + phiWidth *= Gaudi::Units::mm; } else { - phiWidth *= GeoModelKernelUnits::degree; + phiWidth *= Gaudi::Units::degree; } - if (phiWidth == 0) phiWidth = 2*GeoModelKernelUnits::pi; + if (phiWidth == 0) phiWidth = 2*Gaudi::Units::pi; if (rmin2 <= 0) rmin2 = param.rmin(); if (rmax2 <= 0) rmax2 = param.rmax(); if (repeat == 0) repeat = 1; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx index 57fc49f96acb..23e8519e37ff 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GaudiKernel/SystemOfUnits.h" #include "Identifier/Identifier.h" #include "InDetIdentifier/PixelID.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" @@ -109,17 +110,17 @@ GeoPixelSiCrystal::GeoPixelSiCrystal(bool isBLayer, bool isModule3D) if ( (m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > width) || (m_gmt_mgr->DesignZActiveArea(m_isModule3D) > length) || - (width - m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > 4 * GeoModelKernelUnits::mm) || - (length - m_gmt_mgr->DesignZActiveArea(m_isModule3D) > 4 * GeoModelKernelUnits::mm) ) { + (width - m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > 4 * Gaudi::Units::mm) || + (length - m_gmt_mgr->DesignZActiveArea(m_isModule3D) > 4 * Gaudi::Units::mm) ) { m_gmt_mgr->msg(MSG::WARNING) << "GeoPixelSiCrystal: Active area not consistent with sensor size. Sensor: " - << width/GeoModelKernelUnits::mm << " x " << length/GeoModelKernelUnits::mm << ", Active: " - << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/GeoModelKernelUnits::mm + << width/Gaudi::Units::mm << " x " << length/Gaudi::Units::mm << ", Active: " + << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/Gaudi::Units::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/Gaudi::Units::mm << endmsg; } else { if (m_gmt_mgr->msgLvl(MSG::DEBUG)) m_gmt_mgr->msg(MSG::DEBUG) << "GeoPixelSiCrystal: Sensor: " - << width/GeoModelKernelUnits::mm << " x " << length/GeoModelKernelUnits::mm << ", Active: " - << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/GeoModelKernelUnits::mm + << width/Gaudi::Units::mm << " x " << length/Gaudi::Units::mm << ", Active: " + << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/Gaudi::Units::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/Gaudi::Units::mm << endmsg; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx index f949df028596..da3635267f17 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx @@ -17,7 +17,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoNameTag.h" - +#include "GaudiKernel/SystemOfUnits.h" #include <algorithm> using std::max; @@ -48,7 +48,7 @@ GeoVPhysVol* GeoPixelStaveRing::Build(){ m_gmt_mgr->msg(MSG::INFO) <<"Build detailed stave ring support : "<<m_ringName<<" "<<m_ringPosition<<endmsg; - double safety = 0.001*GeoModelKernelUnits::mm; + double safety = 0.001*Gaudi::Units::mm; bool isBLayer = false; if(m_gmt_mgr->GetLD() == 0) isBLayer = true; GeoPixelSiCrystal theSensor(isBLayer); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx index 66130eeedae9..65f14b9acfb7 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx @@ -19,6 +19,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" +#include "GaudiKernel/SystemOfUnits.h" #include <algorithm> using std::max; @@ -43,7 +44,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double ladderHalfThickN = m_ladder.thicknessN(); double ladderHalfThickP = m_ladder.thicknessP(); - double safetyMargin = 0.001*GeoModelKernelUnits::mm; + double safetyMargin = 0.001*Gaudi::Units::mm; // Get endblock from m_staveSupport GeoPhysVol* endblockA=dynamic_cast<GeoPhysVol*>(m_staveSupport.getEndblockEnvelopShape(2)); @@ -109,7 +110,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() } else { - double angle=360./nSectors*GeoModelKernelUnits::deg; + double angle=360./nSectors*Gaudi::Units::deg; GeoTrf::Transform3D transRadiusAndTilt = GeoTrf::TranslateX3D(layerRadius)*GeoTrf::RotateZ3D(ladderTilt); double phiOfModuleZero = m_gmt_mgr->PhiOfModuleZero(); @@ -208,7 +209,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double dimX=dimX_lin/cos(alpha1)-.15; double dimY=m_gmt_mgr->IBLStaveFlexWidth(); double dimZ=m_gmt_mgr->IBLStaveFlexBaseThickness(); - double angle=90.*GeoModelKernelUnits::deg-alpha1; //90.-27.99; + double angle=90.*Gaudi::Units::deg-alpha1; //90.-27.99; double delta=m_gmt_mgr->IBLFlexDoglegDY(); double trX=-dimX_lin*tan(alpha1)*0.5; //-3.28; double trZ=eoStave+dimX_lin*0.5; @@ -222,7 +223,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() for(unsigned int iPt=0; iPt<xShape.size(); iPt++) tmp_shape->addVertex(xShape[iPt],yShape[iPt]); - // GeoPara * tmp_shape = new GeoPara(0.47,5.5,9.,0.*GeoModelKernelUnits::deg,55.*GeoModelKernelUnits::deg,0.); + // GeoPara * tmp_shape = new GeoPara(0.47,5.5,9.,0.*Gaudi::Units::deg,55.*Gaudi::Units::deg,0.); std::string flexMatName = m_gmt_mgr->IBLFlexMaterial(1,"doglegA"); const GeoMaterial* tmp_material = m_mat_mgr->getMaterial(flexMatName); GeoLogVol* tmp_logVol = new GeoLogVol("FlexDogLeg1",tmp_shape,tmp_material); @@ -253,7 +254,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double trX2=trX*2.-dimX2_lin*tan(alpha2)*0.5; //-3.28; double trZ2=eoStave+dimX_lin+dimX2_lin*0.5; xShape.clear(); yShape.clear(); - angle=90.*GeoModelKernelUnits::deg-alpha2; + angle=90.*Gaudi::Units::deg-alpha2; xShape.push_back(dimX2*0.5); yShape.push_back(dimY2*0.5); xShape.push_back(-dimX2*0.5); yShape.push_back(dimY2*0.5); xShape.push_back(-dimX2*0.5); yShape.push_back(-dimY2*0.5); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx index 5d2286e73b42..537463efb037 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx @@ -18,7 +18,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <utility> //std::swap #include <cmath> @@ -51,7 +51,7 @@ GeoVPhysVol* GeoPixelTMT::Build() { GeoNameTag* tag = new GeoNameTag("TMT"); // this part is unchanged: reading the DB, creating the shapes of the volumes and defining their position - GeoTrf::RotateX3D traprot(180.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D traprot(180.*Gaudi::Units::deg); int halfNModule = m_gmt_mgr->PixelNModule()/2; @@ -129,7 +129,7 @@ GeoVPhysVol* GeoPixelTMT::Build() { theTMT->add(transPos); theTMT->add(tmpPhysVol); - GeoTransform* transNeg = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,-(zpos+zshift))*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); + GeoTransform* transNeg = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,-(zpos+zshift))*GeoTrf::RotateX3D(180*Gaudi::Units::deg)); theTMT->add(tag); theTMT->add(transNeg); theTMT->add(tmpPhysVol); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx index a4a53b368622..3346fa36e95f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx @@ -17,6 +17,7 @@ #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GeoModelKernel/Units.h" // // Get the pixelDD Manager from SG. @@ -30,7 +31,7 @@ // Distorted material manager // #include "InDetGeoModelUtils/DistortedMaterialManager.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" using InDetDD::PixelDetectorManager; @@ -64,7 +65,7 @@ OraclePixGeoManager::OraclePixGeoManager(const PixelGeoModelAthenaComps * athena m_diskRingIndexMap(0), m_zPositionMap(0), m_dbVersion(0), - m_defaultLengthUnit(GeoModelKernelUnits::mm) + m_defaultLengthUnit(Gaudi::Units::mm) { m_commonItems = 0; m_pDDmgr = 0; @@ -171,8 +172,8 @@ OraclePixGeoManager::init() m_distortedMatManager = new InDetDD::DistortedMaterialManager; - // Set default lenth unit to GeoModelKernelUnits::mm for newer version and GeoModelKernelUnits::cm for older versions - m_defaultLengthUnit = (dbVersion() < 3) ? GeoModelKernelUnits::cm : GeoModelKernelUnits::mm; + // Set default lenth unit to Gaudi::Units::mm for newer version and Gaudi::Units::cm for older versions + m_defaultLengthUnit = (dbVersion() < 3) ? Gaudi::Units::cm : Gaudi::Units::mm; // Get the top level placements m_placements = new TopLevelPlacements(m_PixelTopLevel); @@ -515,7 +516,7 @@ double OraclePixGeoManager::PixelBoardLength(bool isModule3D) double OraclePixGeoManager::PixelBoardThickness(bool isModule3D) { if (m_dc1Geometry && isBarrel() && (m_currentLD == 0)) { - return 200*GeoModelKernelUnits::micrometer; + return 200*Gaudi::Units::micrometer; } if(ibl()&&isModule3D) @@ -825,7 +826,7 @@ double OraclePixGeoManager::PixelServiceRMin2(const std::string & type, int inde if (!getPixelServiceRecordTestField("RIN2",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("RIN2",type,index) * GeoModelKernelUnits::mm; + return getPixelServiceRecordDouble("RIN2",type,index) * Gaudi::Units::mm; } } @@ -833,7 +834,7 @@ double OraclePixGeoManager::PixelServiceRMax2(const std::string & type, int inde if (!getPixelServiceRecordTestField("ROUT2",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("ROUT2",type,index) * GeoModelKernelUnits::mm; + return getPixelServiceRecordDouble("ROUT2",type,index) * Gaudi::Units::mm; } } @@ -860,7 +861,7 @@ double OraclePixGeoManager::PixelServicePhiLoc(const std::string & type, int ind if (!getPixelServiceRecordTestField("PHI",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("PHI",type,index) * GeoModelKernelUnits::degree; + return getPixelServiceRecordDouble("PHI",type,index) * Gaudi::Units::degree; } } @@ -868,7 +869,7 @@ double OraclePixGeoManager::PixelServiceWidth(const std::string & type, int inde if (!getPixelServiceRecordTestField("WIDTH",type,index)) { return 0; } else { - // Can be in degree or GeoModelKernelUnits::mm. Leave it to GeoPixelServices to interpret. + // Can be in degree or Gaudi::Units::mm. Leave it to GeoPixelServices to interpret. return getPixelServiceRecordDouble("WIDTH",type,index); } } @@ -1095,35 +1096,35 @@ double OraclePixGeoManager::PixelCableZStart(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableZStart(index); - return db()->getDouble(m_PixelBarrelCable,"ZSTART",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelBarrelCable,"ZSTART",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelCableZEnd(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableZEnd(index); - return db()->getDouble(m_PixelBarrelCable,"ZEND",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelBarrelCable,"ZEND",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelCableWidth(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableWidth(index); - return db()->getDouble(m_PixelBarrelCable,"WIDTH",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelBarrelCable,"WIDTH",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelCableThickness(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableThickness(index); - return db()->getDouble(m_PixelBarrelCable,"THICK",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelBarrelCable,"THICK",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelCableStackOffset(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableStackOffset(index); - return db()->getDouble(m_PixelBarrelCable,"STACKPOS",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelBarrelCable,"STACKPOS",index) * Gaudi::Units::mm; } double @@ -1310,19 +1311,19 @@ unsigned int OraclePixGeoManager::PixelEnvelopeNumPlanes() double OraclePixGeoManager::PixelEnvelopeZ(int i) { - double zmin = db()->getDouble(m_PixelEnvelope,"Z",i) * GeoModelKernelUnits::mm; + double zmin = db()->getDouble(m_PixelEnvelope,"Z",i) * Gaudi::Units::mm; if (zmin < 0) msg(MSG::ERROR) << "PixelEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } double OraclePixGeoManager::PixelEnvelopeRMin(int i) { - return db()->getDouble(m_PixelEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelEnvelope,"RMIN",i) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelEnvelopeRMax(int i) { - return db()->getDouble(m_PixelEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelEnvelope,"RMAX",i) * Gaudi::Units::mm; } @@ -1367,32 +1368,32 @@ int OraclePixGeoManager::PixelFrameSections() double OraclePixGeoManager::PixelFrameRMinSide(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "RMINSIDE", sectionIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrame, "RMINSIDE", sectionIndex) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameRMaxSide(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "RMAXSIDE", sectionIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrame, "RMAXSIDE", sectionIndex) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameSideWidth(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "SIDEWIDTH", sectionIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrame, "SIDEWIDTH", sectionIndex) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameZMin(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "ZMIN", sectionIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrame, "ZMIN", sectionIndex) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameZMax(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "ZMAX", sectionIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrame, "ZMAX", sectionIndex) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFramePhiStart(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "PHISTART", sectionIndex) * GeoModelKernelUnits::deg; + return db()->getDouble(m_PixelFrame, "PHISTART", sectionIndex) * Gaudi::Units::deg; } int OraclePixGeoManager::PixelFrameNumSides(int sectionIndex) @@ -1477,28 +1478,28 @@ double OraclePixGeoManager::PixelFrameElementZMin1(int sectionIndex, int element { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMIN1", index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrameSect, "ZMIN1", index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameElementZMin2(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMIN2", index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrameSect, "ZMIN2", index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameElementZMax1(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMAX1", index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrameSect, "ZMAX1", index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFrameElementZMax2(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMAX2", index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFrameSect, "ZMAX2", index) * Gaudi::Units::mm; } int OraclePixGeoManager::PixelStaveIndex(int layer) @@ -1582,14 +1583,14 @@ double OraclePixGeoManager::PixelLadderLength() { if (useLegacy()) return m_legacyManager->PixelLadderLength(); int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"ENVLENGTH",index)*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"ENVLENGTH",index)*Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderWidthClearance() { - if (useLegacy()) return 0.9*GeoModelKernelUnits::mm; + if (useLegacy()) return 0.9*Gaudi::Units::mm; int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CLEARANCEY",index)*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"CLEARANCEY",index)*Gaudi::Units::mm; } // Only used if ladder thickness is automatically calculated it, ie ENVTHICK = 0 @@ -1598,63 +1599,63 @@ double OraclePixGeoManager::PixelLadderThicknessClearance() { int index = PixelStaveIndex(m_currentLD); if (db()->testField(m_PixelStave,"CLEARANCEX",index)) { - return db()->getDouble(m_PixelStave,"CLEARANCEX",index)*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"CLEARANCEX",index)*Gaudi::Units::mm; } - return 0.1*GeoModelKernelUnits::mm; + return 0.1*Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderThickness() { if (useLegacy()) return m_legacyManager->PixelLadderThickness(); // 2*1.48972 mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"ENVTHICK",index)*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"ENVTHICK",index)*Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderTilt() { - return db()->getDouble(m_PixelLayer,"STAVETILT",m_currentLD)*GeoModelKernelUnits::deg; + return db()->getDouble(m_PixelLayer,"STAVETILT",m_currentLD)*Gaudi::Units::deg; } double OraclePixGeoManager::PixelLadderServicesX() { if (useLegacy()) return m_legacyManager->PixelLadderServicesX(); // 1.48972 mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SERVICEOFFSETX",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"SERVICEOFFSETX",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderServicesY() { if (useLegacy()) return m_legacyManager->PixelLadderServicesY(); // 3mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SERVICEOFFSETY",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"SERVICEOFFSETY",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderCableOffsetX() { if (useLegacy()) return m_legacyManager->PixelLadderCableOffsetX(); // 0 int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CABLEOFFSETX",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"CABLEOFFSETX",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelLadderCableOffsetY() { if (useLegacy()) return m_legacyManager->PixelLadderCableOffsetY(); // 4mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CABLEOFFSETY",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"CABLEOFFSETY",index) * Gaudi::Units::mm; } // SLHC/IBL only double OraclePixGeoManager::PixelLadderSupportThickness() { int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SUPPORTTHICK",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"SUPPORTTHICK",index) * Gaudi::Units::mm; } // SLHC/IBL only double OraclePixGeoManager::PixelLadderSupportWidth() { int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SUPPORTWIDTH",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"SUPPORTWIDTH",index) * Gaudi::Units::mm; } @@ -1688,10 +1689,10 @@ double OraclePixGeoManager::PixelLadderSupportLength() { int index = PixelStaveIndex(m_currentLD); if (db()->testField(m_PixelStave,"SUPPORTHLENGTH",index)) { - double halflength = db()->getDouble(m_PixelStave,"SUPPORTHLENGTH",index) * GeoModelKernelUnits::mm; + double halflength = db()->getDouble(m_PixelStave,"SUPPORTHLENGTH",index) * Gaudi::Units::mm; if (halflength > 0) return 2 * halflength; } - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; return PixelLadderLength() - safety; } @@ -1749,7 +1750,7 @@ double OraclePixGeoManager::IBLStaveFacePlateThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FACEPLATETHICK",index)) { - double thickness = db()->getDouble(m_PixelIBLStave,"FACEPLATETHICK",index) * GeoModelKernelUnits::mm; + double thickness = db()->getDouble(m_PixelIBLStave,"FACEPLATETHICK",index) * Gaudi::Units::mm; if (thickness > 0) return thickness ; } return 0.0; @@ -1760,7 +1761,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"STAVEWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVEWIDTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVEWIDTH",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1771,7 +1772,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockLength() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKLENGTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKLENGTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKLENGTH",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1782,7 +1783,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockFixPoint() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1794,7 +1795,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockOmegaOverlap() try{ int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1810,7 +1811,7 @@ double OraclePixGeoManager::IBLStaveLength() { int index=0; if (db()->testField(m_PixelIBLStave,"STAVELENGTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVELENGTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVELENGTH",index) * Gaudi::Units::mm; return value ; } } @@ -1820,7 +1821,7 @@ double OraclePixGeoManager::IBLStaveLength() // IBL stave length not eqal to other stave length } - return 748.0 * GeoModelKernelUnits::mm; + return 748.0 * Gaudi::Units::mm; } double OraclePixGeoManager:: IBLStaveMechanicalStaveOffset(bool isModule3D) @@ -1828,11 +1829,11 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveOffset(bool isModule3D) // int index = PixelStaveIndex(m_currentLD); int index=0; if (!isModule3D&&db()->testField(m_PixelIBLStave,"MODULELATERALOFFSET",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET",index) * Gaudi::Units::mm; return value ; } if (isModule3D&&db()->testField(m_PixelIBLStave,"MODULELATERALOFFSET3D",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET3D",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET3D",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1843,7 +1844,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveModuleOffset() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"STAVETOMODULEGAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVETOMODULEGAP",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVETOMODULEGAP",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1854,7 +1855,7 @@ double OraclePixGeoManager:: IBLStaveTubeOuterDiameter() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEOUTERDIAM",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEOUTERDIAM",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEOUTERDIAM",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1865,7 +1866,7 @@ double OraclePixGeoManager:: IBLStaveTubeInnerDiameter() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEINNERDIAM",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEINNERDIAM",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEINNERDIAM",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1876,7 +1877,7 @@ double OraclePixGeoManager:: IBLStaveTubeMiddlePos() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEMIDDLEPOS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEMIDDLEPOS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEMIDDLEPOS",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1887,7 +1888,7 @@ double OraclePixGeoManager:: IBLStaveFlexLayerThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXLAYERTHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXLAYERTHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXLAYERTHICK",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1898,7 +1899,7 @@ double OraclePixGeoManager:: IBLStaveFlexBaseThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXBASETHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXBASETHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXBASETHICK",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1909,7 +1910,7 @@ double OraclePixGeoManager:: IBLStaveFlexWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXWIDTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXWIDTH",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -1920,7 +1921,7 @@ double OraclePixGeoManager:: IBLStaveFlexOffset() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXOFFSET",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXOFFSET",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXOFFSET",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1932,7 +1933,7 @@ double OraclePixGeoManager::IBLStaveOmegaThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGATHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGATHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGATHICK",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1943,7 +1944,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndCenterX() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDCENTERX",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERX",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERX",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1953,7 +1954,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndCenterY() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDCENTERY",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERY",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERY",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1963,7 +1964,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDRADIUS",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1973,7 +1974,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndAngle() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDANGLE",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDANGLE",index) * GeoModelKernelUnits::deg; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDANGLE",index) * Gaudi::Units::deg; return value ; } return 0.0; @@ -1984,7 +1985,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidCenterX() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAMIDCENTERX",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDCENTERX",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDCENTERX",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -1995,7 +1996,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAMIDRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDRADIUS",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2005,7 +2006,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidAngle() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAOPENINGANGLE",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAOPENINGANGLE",index) * GeoModelKernelUnits::deg; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAOPENINGANGLE",index) * Gaudi::Units::deg; return value ; } return 0.0; @@ -2033,7 +2034,7 @@ double OraclePixGeoManager::IBLStaveModuleGap() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"MODULEGAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULEGAP",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULEGAP",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2044,7 +2045,7 @@ int OraclePixGeoManager::IBLStaveModuleType() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"MODULETYPE",index)) { - int value = db()->getInt(m_PixelIBLStave,"MODULETYPE",index) * GeoModelKernelUnits::mm; + int value = db()->getInt(m_PixelIBLStave,"MODULETYPE",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0; @@ -2056,7 +2057,7 @@ double OraclePixGeoManager::IBLStaveFacePlateGreaseThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index) * Gaudi::Units::mm; return value ; } return 0.; @@ -2071,7 +2072,7 @@ double OraclePixGeoManager::IBLStaveFacePlateGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index) * Gaudi::Units::mm; return value ; } return 0.; @@ -2086,7 +2087,7 @@ double OraclePixGeoManager::IBLStaveTubeGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index) * Gaudi::Units::mm; return value ; } return 0.; @@ -2101,7 +2102,7 @@ double OraclePixGeoManager::IBLStaveOmegaGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index) * Gaudi::Units::mm; return value ; } return 0.; @@ -2116,7 +2117,7 @@ double OraclePixGeoManager:: IBLSupportRingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGWIDTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGWIDTH",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2127,7 +2128,7 @@ double OraclePixGeoManager:: IBLSupportRingInnerRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2138,7 +2139,7 @@ double OraclePixGeoManager:: IBLSupportRingOuterRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2150,7 +2151,7 @@ double OraclePixGeoManager:: IBLSupportMechanicalStaveRingFixPoint() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2161,7 +2162,7 @@ double OraclePixGeoManager:: IBLSupportMidRingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2172,7 +2173,7 @@ double OraclePixGeoManager:: IBLSupportMidRingInnerRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index) * Gaudi::Units::mm; if (value > 0) return value; } return 0.0; @@ -2183,7 +2184,7 @@ double OraclePixGeoManager:: IBLSupportMidRingOuterRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index) * Gaudi::Units::mm; if (value > 0) return value ; } return 0.0; @@ -2194,7 +2195,7 @@ double OraclePixGeoManager::IBLFlexMiddleGap() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXMIDGAP",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXMIDGAP",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXMIDGAP",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2214,7 +2215,7 @@ double OraclePixGeoManager::IBLFlexDoglegLength() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2226,7 +2227,7 @@ double OraclePixGeoManager::IBLStaveFlexWingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXWINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGWIDTH",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGWIDTH",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2237,7 +2238,7 @@ double OraclePixGeoManager::IBLStaveFlexWingThick() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXWINGTHICK",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGTHICK",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGTHICK",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2248,7 +2249,7 @@ double OraclePixGeoManager::IBLFlexDoglegRatio() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2262,7 +2263,7 @@ double OraclePixGeoManager::IBLFlexDoglegHeight(int iHeight) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2273,7 +2274,7 @@ double OraclePixGeoManager::IBLFlexDoglegDY() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGDY",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGDY",index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGDY",index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2287,7 +2288,7 @@ double OraclePixGeoManager::IBLFlexPP0Z(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2302,7 +2303,7 @@ double OraclePixGeoManager::IBLFlexPP0Rmin(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2316,7 +2317,7 @@ double OraclePixGeoManager::IBLFlexPP0Rmax(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * Gaudi::Units::mm; return value ; } return 0.0; @@ -2367,10 +2368,10 @@ double OraclePixGeoManager:: IBLServiceGetMinRadialPosition(const std::string& s double zmin, zmax, r; int symm; if(srvType=="simple"){ - zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*GeoModelKernelUnits::mm; - zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*GeoModelKernelUnits::mm; + zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*Gaudi::Units::mm; + zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*Gaudi::Units::mm; symm=db()->getInt(m_PixelSimpleService,"ZSYMM",ii); - r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*GeoModelKernelUnits::mm; + r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*Gaudi::Units::mm; } else { zmin=PixelServiceZMin(srvType, ii); @@ -2417,10 +2418,10 @@ double OraclePixGeoManager:: IBLServiceGetMaxRadialPosition(const std::string& s double zmin, zmax, r; int symm; if(srvType=="simple"){ - zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*GeoModelKernelUnits::mm; - zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*GeoModelKernelUnits::mm; + zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*Gaudi::Units::mm; + zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*Gaudi::Units::mm; symm=db()->getInt(m_PixelSimpleService,"ZSYMM",ii); - r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*GeoModelKernelUnits::mm; + r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*Gaudi::Units::mm; } else { zmin=PixelServiceZMin(srvType, ii); @@ -2460,10 +2461,10 @@ double OraclePixGeoManager::PhiOfModuleZero() { // For backward compatibilty first module is at 1/2 a module division if (!db()->testField(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD)){ - if(NPixelSectors()>0) return 180.0*GeoModelKernelUnits::degree/NPixelSectors(); + if(NPixelSectors()>0) return 180.0*Gaudi::Units::degree/NPixelSectors(); return 0.; } else { - return db()->getDouble(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD) * GeoModelKernelUnits::degree; + return db()->getDouble(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD) * Gaudi::Units::degree; } } @@ -2481,7 +2482,7 @@ int OraclePixGeoManager::PixelNModule() double OraclePixGeoManager::PixelModuleAngle() { int staveIndex = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"MODULETILT",staveIndex)*GeoModelKernelUnits::deg; + return db()->getDouble(m_PixelStave,"MODULETILT",staveIndex)*Gaudi::Units::deg; } double OraclePixGeoManager::PixelModuleDrDistance() @@ -2524,7 +2525,7 @@ double OraclePixGeoManager::PixelModuleZPositionTabulated(int etaModule, int typ msg(MSG::ERROR) << "Z position not found for etaModule,type = " << etaModule << ", " << type << endmsg; return 0; } - return db()->getDouble(m_PixelStaveZ,"ZPOS",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStaveZ,"ZPOS",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelModuleShiftFlag(int etaModule) @@ -2537,7 +2538,7 @@ double OraclePixGeoManager::PixelModuleStaggerDistance() { int staveIndex = PixelStaveIndex(m_currentLD); if (!(slhc() || ibl()) || !db()->testField(m_PixelStave,"STAGGERDIST",staveIndex)) return 0; - return db()->getDouble(m_PixelStave,"STAGGERDIST",staveIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"STAGGERDIST",staveIndex) * Gaudi::Units::mm; } int OraclePixGeoManager::PixelModuleStaggerSign(int etaModule) @@ -2690,49 +2691,49 @@ int OraclePixGeoManager::PixelTMTNumParts() double OraclePixGeoManager::PixelTMTWidthX1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthX1(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHX1",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"WIDTHX1",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTWidthX2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthX2(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHX2",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"WIDTHX2",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTWidthY(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthY(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHY",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"WIDTHY",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTBaseX1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTBaseX1(iPart); - return db()->getDouble(m_PixelTMT,"BASEX1",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"BASEX1",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTBaseX2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTBaseX2(iPart); - return db()->getDouble(m_PixelTMT,"BASEX2",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"BASEX2",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTPosY(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosY(iPart); - return db()->getDouble(m_PixelTMT,"Y",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"Y",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTPosZ1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosZ1(iPart); - return db()->getDouble(m_PixelTMT,"Z1",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"Z1",iPart) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelTMTPosZ2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosZ2(iPart); - return db()->getDouble(m_PixelTMT,"Z2",iPart) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelTMT,"Z2",iPart) * Gaudi::Units::mm; } bool OraclePixGeoManager::PixelTMTPerModule(int iPart) @@ -2747,61 +2748,61 @@ bool OraclePixGeoManager::PixelTMTPerModule(int iPart) double OraclePixGeoManager::PixelOmegaUpperBendX() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendX(); - return db()->getDouble(m_PixelOmega,"UPPERBENDX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDX") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaUpperBendY() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendY(); - return db()->getDouble(m_PixelOmega,"UPPERBENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaUpperBendRadius() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendRadius(); - return db()->getDouble(m_PixelOmega,"UPPERBENDR") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDR") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaLowerBendX() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendX(); - return db()->getDouble(m_PixelOmega,"LOWERBENDX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDX") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaLowerBendY() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendY(); - return db()->getDouble(m_PixelOmega,"LOWERBENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaLowerBendRadius() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendRadius(); - return db()->getDouble(m_PixelOmega,"LOWERBENDR") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDR") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaWallThickness() { if (useLegacy()) return m_legacyManager->PixelOmegaWallThickness(); - return db()->getDouble(m_PixelOmega,"THICK") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"THICK") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaLength() { if (useLegacy()) return m_legacyManager->PixelOmegaLength(); - return db()->getDouble(m_PixelOmega,"LENGTH") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"LENGTH") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaStartY() { if (useLegacy()) return m_legacyManager->PixelOmegaStartY(); - return db()->getDouble(m_PixelOmega,"STARTY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"STARTY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaEndY() { if (useLegacy()) return m_legacyManager->PixelOmegaEndY(); - return db()->getDouble(m_PixelOmega,"ENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmega,"ENDY") * Gaudi::Units::mm; } // @@ -2811,49 +2812,49 @@ double OraclePixGeoManager::PixelOmegaEndY() double OraclePixGeoManager::PixelAlTubeUpperBendX() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendX(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDX") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeUpperBendY() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendY(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeUpperBendRadius() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendRadius(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDR") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDR") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendX() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendX(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDX") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendY() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendY(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendRadius() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendRadius(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDR") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDR") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeWallThickness() { if (useLegacy()) return m_legacyManager->PixelAlTubeWallThickness(); - return db()->getDouble(m_PixelAlTube,"THICK") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"THICK") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelAlTubeLength() { if (useLegacy()) return m_legacyManager->PixelAlTubeLength(); - return db()->getDouble(m_PixelAlTube,"LENGTH") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelAlTube,"LENGTH") * Gaudi::Units::mm; } // @@ -2869,37 +2870,37 @@ int OraclePixGeoManager::PixelNumOmegaGlueElements() double OraclePixGeoManager::PixelOmegaGlueStartX(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueStartX(index); - return db()->getDouble(m_PixelOmegaGlue,"STARTX",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"STARTX",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaGlueThickness(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueThickness(index); - return db()->getDouble(m_PixelOmegaGlue,"THICK",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"THICK",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaGlueStartY(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueStartY(index); - return db()->getDouble(m_PixelOmegaGlue,"STARTY",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"STARTY",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaGlueEndY(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueEndY(index); - return db()->getDouble(m_PixelOmegaGlue,"ENDY",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"ENDY",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaGlueLength(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueLength(index); - return db()->getDouble(m_PixelOmegaGlue,"LENGTH",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"LENGTH",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelOmegaGluePosZ(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGluePosZ(index); - return db()->getDouble(m_PixelOmegaGlue,"Z",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelOmegaGlue,"Z",index) * Gaudi::Units::mm; } int OraclePixGeoManager::PixelOmegaGlueTypeNum(int index) @@ -2915,45 +2916,45 @@ int OraclePixGeoManager::PixelOmegaGlueTypeNum(int index) double OraclePixGeoManager::PixelFluidZ1(int index) { if (useLegacy()) return m_legacyManager->PixelFluidZ1(index); - return db()->getDouble(m_PixelFluid,"Z1",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"Z1",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidZ2(int index) { if (useLegacy()) return m_legacyManager->PixelFluidZ2(index); - return db()->getDouble(m_PixelFluid,"Z2",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"Z2",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidThick1(int index) { if (useLegacy()) return m_legacyManager->PixelFluidThick1(index); - return db()->getDouble(m_PixelFluid,"THICK1",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"THICK1",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidThick2(int index) { if (useLegacy()) return m_legacyManager->PixelFluidThick2(index); - return db()->getDouble(m_PixelFluid,"THICK2",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"THICK2",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidWidth(int index) { if (useLegacy()) return m_legacyManager->PixelFluidWidth(index); - return db()->getDouble(m_PixelFluid,"WIDTH",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"WIDTH",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidX(int index) { if (useLegacy()) return m_legacyManager->PixelFluidX(index); - return db()->getDouble(m_PixelFluid,"X",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"X",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelFluidY(int index) { if (useLegacy()) return m_legacyManager->PixelFluidY(index); - return db()->getDouble(m_PixelFluid,"Y",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelFluid,"Y",index) * Gaudi::Units::mm; } int OraclePixGeoManager::PixelFluidType(int index) @@ -2999,25 +3000,25 @@ int OraclePixGeoManager::PixelFluidOrient(int layer, int phi) double OraclePixGeoManager::PixelPigtailThickness() { if (useLegacy()) return m_legacyManager->PixelPigtailThickness(); - return db()->getDouble(m_PixelPigtail,"THICK") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"THICK") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailStartY() { if (useLegacy()) return m_legacyManager->PixelPigtailStartY(); - return db()->getDouble(m_PixelPigtail,"STARTY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"STARTY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailEndY() { if (useLegacy()) return m_legacyManager->PixelPigtailEndY(); - return db()->getDouble(m_PixelPigtail,"ENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"ENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailWidthZ() { if (useLegacy()) return m_legacyManager->PixelPigtailWidthZ(); - return db()->getDouble(m_PixelPigtail,"WIDTHZ") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"WIDTHZ") * Gaudi::Units::mm; } // Different width from the curved section in old geometry @@ -3030,31 +3031,31 @@ double OraclePixGeoManager::PixelPigtailFlatWidthZ() double OraclePixGeoManager::PixelPigtailPosX() { if (useLegacy()) return m_legacyManager->PixelPigtailPosX(); - return db()->getDouble(m_PixelPigtail,"X") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"X") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailPosZ() { if (useLegacy()) return m_legacyManager->PixelPigtailPosZ(); - return db()->getDouble(m_PixelPigtail,"Z") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"Z") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailBendX() { if (useLegacy()) return m_legacyManager->PixelPigtailBendX(); - return db()->getDouble(m_PixelPigtail,"BENDX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"BENDX") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailBendY() { if (useLegacy()) return m_legacyManager->PixelPigtailBendY(); - return db()->getDouble(m_PixelPigtail,"BENDY") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"BENDY") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailBendRMin() { if (useLegacy()) return m_legacyManager->PixelPigtailBendRMin(); - return db()->getDouble(m_PixelPigtail,"BENDRMIN") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"BENDRMIN") * Gaudi::Units::mm; } double OraclePixGeoManager::PixelPigtailBendRMax() @@ -3066,19 +3067,19 @@ double OraclePixGeoManager::PixelPigtailBendRMax() double OraclePixGeoManager::PixelPigtailBendPhiMin() { if (useLegacy()) return m_legacyManager->PixelPigtailBendPhiMin(); - return db()->getDouble(m_PixelPigtail,"BENDPHIMIN") * GeoModelKernelUnits::deg; + return db()->getDouble(m_PixelPigtail,"BENDPHIMIN") * Gaudi::Units::deg; } double OraclePixGeoManager::PixelPigtailBendPhiMax() { if (useLegacy()) return m_legacyManager->PixelPigtailBendPhiMax(); - return db()->getDouble(m_PixelPigtail,"BENDPHIMAX") * GeoModelKernelUnits::deg; + return db()->getDouble(m_PixelPigtail,"BENDPHIMAX") * Gaudi::Units::deg; } double OraclePixGeoManager::PixelPigtailEnvelopeLength() { if (useLegacy()) return m_legacyManager->PixelPigtailEnvelopeLength(); - return db()->getDouble(m_PixelPigtail,"ENVLENGTH") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelPigtail,"ENVLENGTH") * Gaudi::Units::mm; } // @@ -3093,37 +3094,37 @@ int OraclePixGeoManager::PixelNumConnectorElements() double OraclePixGeoManager::PixelConnectorWidthX(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthX(index); - return db()->getDouble(m_PixelConnector,"WIDTHX",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"WIDTHX",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelConnectorWidthY(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthY(index); - return db()->getDouble(m_PixelConnector,"WIDTHY",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"WIDTHY",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelConnectorWidthZ(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthZ(index); - return db()->getDouble(m_PixelConnector,"WIDTHZ",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"WIDTHZ",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelConnectorPosX(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosX(index); - return db()->getDouble(m_PixelConnector,"X",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"X",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelConnectorPosY(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosY(index); - return db()->getDouble(m_PixelConnector,"Y",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"Y",index) * Gaudi::Units::mm; } double OraclePixGeoManager::PixelConnectorPosZ(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosZ(index); - return db()->getDouble(m_PixelConnector,"Z",index) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelConnector,"Z",index) * Gaudi::Units::mm; } // @@ -3387,7 +3388,7 @@ double OraclePixGeoManager::DesignPitchRP(bool isModule3D) return m_legacyManager->DesignPitchRP(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - return db()->getDouble(m_PixelReadout,"PITCHPHI",type) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelReadout,"PITCHPHI",type) * Gaudi::Units::mm; } } @@ -3397,7 +3398,7 @@ double OraclePixGeoManager::DesignPitchZ(bool isModule3D) return m_legacyManager->DesignPitchZ(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - return db()->getDouble(m_PixelReadout,"PITCHETA",type) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelReadout,"PITCHETA",type) * Gaudi::Units::mm; } } @@ -3408,7 +3409,7 @@ double OraclePixGeoManager::DesignPitchZLong(bool isModule3D) return m_legacyManager->DesignPitchZLong(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - double pitch = db()->getDouble(m_PixelReadout,"PITCHETALONG",type) * GeoModelKernelUnits::mm; + double pitch = db()->getDouble(m_PixelReadout,"PITCHETALONG",type) * Gaudi::Units::mm; if (pitch == 0) pitch = DesignPitchZ(isModule3D); return pitch; } @@ -3423,7 +3424,7 @@ double OraclePixGeoManager::DesignPitchZLongEnd(bool isModule3D) int type = designType((ibl()&&isModule3D)); double pitch = 0; if (db()->testField(m_PixelReadout,"PITCHETAEND",type)) { - pitch = db()->getDouble(m_PixelReadout,"PITCHETAEND",type) * GeoModelKernelUnits::mm; + pitch = db()->getDouble(m_PixelReadout,"PITCHETAEND",type) * Gaudi::Units::mm; } if (pitch == 0) pitch = DesignPitchZLong(isModule3D); return pitch; @@ -3518,18 +3519,18 @@ double OraclePixGeoManager::PixelDiskRMin(bool includeSupports) if (!slhc()) { return db()->getDouble(m_PixelDisk,"RIDISK",m_currentLD)*mmcm(); } else { - double result = db()->getDouble(m_PixelDisk,"RMIN",m_currentLD) * GeoModelKernelUnits::mm; + double result = db()->getDouble(m_PixelDisk,"RMIN",m_currentLD) * Gaudi::Units::mm; if(includeSupports) { result = std::min( result, PixelDiskSupportRMin(0) ); } int etaInner = 0; // Inner ring int ringType = getDiskRingType(m_currentLD,etaInner); if (ringType >= 0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - double ringRmin = db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm - 0.01*GeoModelKernelUnits::mm; // ring envelope has a 0.01mm safety + double ringRmin = db()->getDouble(m_PixelRing,"RMIN",ringType) * Gaudi::Units::mm - 0.01*Gaudi::Units::mm; // ring envelope has a 0.01mm safety if (ringRmin < result) { msg(MSG::WARNING) << "Ring rmin is less than disk rmin for disk : " << m_currentLD << ". Ring rmin: " << ringRmin << ", Disk rmin: " << result <<endmsg; - result = ringRmin - 0.1*GeoModelKernelUnits::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. + result = ringRmin - 0.1*Gaudi::Units::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. } } return result; @@ -3539,7 +3540,7 @@ double OraclePixGeoManager::PixelDiskRMin(bool includeSupports) // SLHC only double OraclePixGeoManager::PixelDiskRMax(bool includeSupports) { - double result = db()->getDouble(m_PixelDisk,"RMAX",m_currentLD) * GeoModelKernelUnits::mm; + double result = db()->getDouble(m_PixelDisk,"RMAX",m_currentLD) * Gaudi::Units::mm; if(includeSupports) { result = std::max( result, PixelDiskSupportRMax(2) ); } @@ -3551,11 +3552,11 @@ double OraclePixGeoManager::PixelDiskRMax(bool includeSupports) // This is not so nice as PixelRingRMax can potentially call PixelDiskRMax, however it // only calls PixelDiskRMax if the above condition is not satisified. So hopefully OK. // TODO: Code could do with some improvement to make it less fragile. - double ringRmax = PixelRingRMax(0.01*GeoModelKernelUnits::mm); // ring envelope has a 0.01mm safety + double ringRmax = PixelRingRMax(0.01*Gaudi::Units::mm); // ring envelope has a 0.01mm safety if (ringRmax > result) { msg(MSG::WARNING) << "Ring rmax is greater than disk rmax for disk : " << m_currentLD << ". Ring rmax: " << ringRmax << ", Disk rmax: " << result <<endmsg; - result = ringRmax + 0.1*GeoModelKernelUnits::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. + result = ringRmax + 0.1*Gaudi::Units::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. } } // restore state @@ -3591,7 +3592,7 @@ double OraclePixGeoManager::PixelRingRcenter() { // If ring rmin is present and non-zero use that. int ringType = getDiskRingType(m_currentLD,m_eta); if (ringType >=0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - return db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm + PixelModuleLength()/2; + return db()->getDouble(m_PixelRing,"RMIN",ringType) * Gaudi::Units::mm + PixelModuleLength()/2; } else { // Otherwise calculate from disk rmin/rmax int nrings = PixelDiskNRings(); @@ -3614,7 +3615,7 @@ double OraclePixGeoManager::PixelRingRMin(double safety) { // If ring rmin is present and non-zero use that. int ringType = getDiskRingType(m_currentLD,m_eta); if (ringType >= 0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - return db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm - std::abs(safety); + return db()->getDouble(m_PixelRing,"RMIN",ringType) * Gaudi::Units::mm - std::abs(safety); } else { // Otherwise calculated it from disk rmin if(m_eta==0) return PixelDiskRMin() - std::abs(safety); @@ -3660,7 +3661,7 @@ double OraclePixGeoManager::PixelRingZpos() { double OraclePixGeoManager::PixelRingZoffset() { int index = getDiskRingIndex(m_currentLD,m_eta); - return std::abs(db()->getDouble(m_PixelDiskRing,"ZOFFSET",index))*GeoModelKernelUnits::mm; + return std::abs(db()->getDouble(m_PixelDiskRing,"ZOFFSET",index))*Gaudi::Units::mm; } // SLHC only @@ -3674,13 +3675,13 @@ int OraclePixGeoManager::PixelRingSide() double OraclePixGeoManager::PixelRingStagger() { int ringType = getDiskRingType(m_currentLD,m_eta); - return db()->getDouble(m_PixelRing,"STAGGER",ringType)*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelRing,"STAGGER",ringType)*Gaudi::Units::mm; } // SLHC only //int OraclePixGeoManager::PixelRingNmodules() { -// return db()->getInt("PixelRing","NMODULES",ringIndex)*GeoModelKernelUnits::mm(); +// return db()->getInt("PixelRing","NMODULES",ringIndex)*Gaudi::Units::mm(); //} @@ -3770,7 +3771,7 @@ double OraclePixGeoManager::PixelModuleThicknessN() { // is the max of ThicknessP and thickness from the module center to // the outer surface of the hybrid plus some safety. // - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double thickn = 0.5 * PixelBoardThickness() + PixelHybridThickness() + safety; double thick = std::max(thickn, PixelModuleThicknessP()); @@ -3785,7 +3786,7 @@ double OraclePixGeoManager::PixelModuleThicknessP() { // is thickness from the module center to the outer surface of the // chips plus some safety. - double safety = 0.01*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; double thick = 0.5 * PixelBoardThickness() + PixelChipThickness() + PixelChipGap() + safety; @@ -3829,39 +3830,39 @@ double OraclePixGeoManager::PixelModuleLength() { // return angle of the telescope double OraclePixGeoManager::DBMAngle() { - return db()->getDouble(m_DBMTelescope,"ANGLE")*GeoModelKernelUnits::deg; + return db()->getDouble(m_DBMTelescope,"ANGLE")*Gaudi::Units::deg; } // return dimension of the DBM telescope double OraclePixGeoManager::DBMTelescopeX() { - return db()->getDouble(m_DBMTelescope,"WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMTelescopeY() { - return db()->getDouble(m_DBMTelescope,"HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMTelescopeZ() { - return db()->getDouble(m_DBMTelescope,"LENGTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"LENGTH")*Gaudi::Units::mm; } // return height and length of the module cage having a 3-layers structure double OraclePixGeoManager::DBMModuleCageY() { - return db()->getDouble(m_DBMTelescope,"CAGE_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"CAGE_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMModuleCageZ() { - return db()->getDouble(m_DBMTelescope,"CAGE_LENGTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"CAGE_LENGTH")*Gaudi::Units::mm; } // return layer spacing double OraclePixGeoManager::DBMSpacingZ() { - return db()->getDouble(m_DBMCage,"ZSPACING")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"ZSPACING")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMSpacingRadial() { if (m_currentLD == 0) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_0")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_0")*Gaudi::Units::mm; else if (m_currentLD == 1) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_1")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_1")*Gaudi::Units::mm; else if (m_currentLD == 2) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_2")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_2")*Gaudi::Units::mm; else { msg(MSG::WARNING) << "DBMSpacingRadial() is not found" << endmsg; return 0.; @@ -3869,174 +3870,174 @@ double OraclePixGeoManager::DBMSpacingRadial() { } // return dimension of bracket unit double OraclePixGeoManager::DBMBracketX() { - return db()->getDouble(m_DBMBracket,"WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBracketY() { - return db()->getDouble(m_DBMBracket,"HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBracketZ() { - return db()->getDouble(m_DBMBracket,"THICKNESS")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"THICKNESS")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMTrapezBackTheta() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_THETA")*GeoModelKernelUnits::deg; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_THETA")*Gaudi::Units::deg; } double OraclePixGeoManager::DBMTrapezBackX() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMTrapezBackY() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMTrapezBackShortZ() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_ZSHORT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_ZSHORT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktWindowX() { - return db()->getDouble(m_DBMBracket,"WINDOW_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktWindowY() { - return db()->getDouble(m_DBMBracket,"WINDOW_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktWindowOffset() { - return db()->getDouble(m_DBMBracket,"WINDOW_OFFSET")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_OFFSET")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktWindowCenterZ() { - return db()->getDouble(m_DBMBracket,"WINDOW_CENTERZ")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_CENTERZ")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktTopBlockZ() { - return db()->getDouble(m_DBMBracket,"TOPBLOCK_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"TOPBLOCK_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktSideBlockX() { - return db()->getDouble(m_DBMBracket,"SIDEBLOCK_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"SIDEBLOCK_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktSideBlockY() { - return db()->getDouble(m_DBMBracket,"SIDEBLOCK_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"SIDEBLOCK_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktLockZ() { - return db()->getDouble(m_DBMBracket,"LOCK_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"LOCK_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktLockY() { - return db()->getDouble(m_DBMBracket,"LOCK_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"LOCK_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktFinLongZ() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_ZLONG")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_ZLONG")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktFinHeight() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktFinThick() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMBrcktFinPos() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_POS")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_POS")*Gaudi::Units::mm; } // return spacing between V-slide and first layer double OraclePixGeoManager::DBMSpace() { - return db()->getDouble(m_DBMCage,"SPACING1")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"SPACING1")*Gaudi::Units::mm; } // return dimensions of the main plate double OraclePixGeoManager::DBMMainPlateX() { - return db()->getDouble(m_DBMCage,"MAINPLATE_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMainPlateY() { - return db()->getDouble(m_DBMCage,"MAINPLATE_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMainPlateZ() { - return db()->getDouble(m_DBMCage,"MAINPLATE_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMPlateWindowWidth() { - return db()->getDouble(m_DBMCage,"MPWINDOW_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMPlateWindowHeight() { - return db()->getDouble(m_DBMCage,"MPWINDOW_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMPlateWindowPos() { - return db()->getDouble(m_DBMCage,"MPWINDOW_POS")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_POS")*Gaudi::Units::mm; } // return dimensions of aluminium side plates double OraclePixGeoManager::DBMCoolingSidePlateX() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCoolingSidePlateY() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCoolingSidePlateZ() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_LENGTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_LENGTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCoolingSidePlatePos() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_POS")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_POS")*Gaudi::Units::mm; } // return dimension of sensor, chip and ceramic double OraclePixGeoManager::DBMDiamondX() { - return db()->getDouble(m_DBMModule,"DIAMOND_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMDiamondY() { - return db()->getDouble(m_DBMModule,"DIAMOND_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMDiamondZ() { - return db()->getDouble(m_DBMModule,"DIAMOND_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFEI4X() { - return db()->getDouble(m_DBMModule,"FEI4_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"FEI4_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFEI4Y() { - return db()->getDouble(m_DBMModule,"FEI4_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"FEI4_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFEI4Z() { - return db()->getDouble(m_DBMModule,"FEI4_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"FEI4_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCeramicX() { - return db()->getDouble(m_DBMModule,"CERAMIC_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCeramicY() { - return db()->getDouble(m_DBMModule,"CERAMIC_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMCeramicZ() { - return db()->getDouble(m_DBMModule,"CERAMIC_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMAirGap() { - return db()->getDouble(m_DBMModule,"AIR_GAP")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"AIR_GAP")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMKaptonZ() { - return db()->getDouble(m_DBMModule,"KAPTONZ")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMModule,"KAPTONZ")*Gaudi::Units::mm; } // flex support double OraclePixGeoManager::DBMFlexSupportX() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_WIDTH")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_WIDTH")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFlexSupportY() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_HEIGHT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_HEIGHT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFlexSupportZ() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_THICK")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMFlexSupportOffset() { - return db()->getDouble(m_DBMCage, "FLEXSUPP_OFFSET")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage, "FLEXSUPP_OFFSET")*Gaudi::Units::mm; } // return radius of supporting rod double OraclePixGeoManager::DBMRodRadius() { - return db()->getDouble(m_DBMCage,"ROD_RADIUS")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"ROD_RADIUS")*Gaudi::Units::mm; } // return distance between center of rods double OraclePixGeoManager::DBMMPlateRod2RodY() { - return db()->getDouble(m_DBMCage,"ROD2ROD_VERT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"ROD2ROD_VERT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMMPlateRod2RodX() { - return db()->getDouble(m_DBMCage,"ROD2ROD_HOR")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMCage,"ROD2ROD_HOR")*Gaudi::Units::mm; } // radius and thickness of PP0 board double OraclePixGeoManager::DBMPP0RIn() { - return db()->getDouble(m_DBMTelescope,"PP0_RIN")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"PP0_RIN")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMPP0ROut() { - return db()->getDouble(m_DBMTelescope,"PP0_ROUT")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"PP0_ROUT")*Gaudi::Units::mm; } double OraclePixGeoManager::DBMPP0Thick() { - return db()->getDouble(m_DBMTelescope,"PP0_THICK")*GeoModelKernelUnits::mm; + return db()->getDouble(m_DBMTelescope,"PP0_THICK")*Gaudi::Units::mm; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h index 04dbd659378b..776fbace992c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h @@ -169,7 +169,7 @@ class OraclePixGeoManager : public PixelGeometryManager { // db version int m_dbVersion; - // default length unit set according to db version (GeoModelKernelUnits::mm or GeoModelKernelUnits::cm) + // default length unit set according to db version (Gaudi::Units::mm or Gaudi::Units::cm) double m_defaultLengthUnit; public: @@ -836,7 +836,7 @@ class OraclePixGeoManager : public PixelGeometryManager { double CalculateThickness(double,std::string); int determineDbVersion(); void addDefaultMaterials(); - // return default length unit (GeoModelKernelUnits::mm or GeoModelKernelUnits::cm) + // return default length unit (Gaudi::Units::mm or Gaudi::Units::cm) double mmcm() {return m_defaultLengthUnit;} }; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx index a945c0463b07..0bc7cd79ca3c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx @@ -28,6 +28,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoTubs.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "Identifier/Identifier.h" @@ -152,19 +153,19 @@ double GeoPixelCable::Length() { double GeoPixelCable::Thickness() { // - // This is calculated from the GeoModelKernelUnits::rad length of the cables and their mass + // This is calculated from the Gaudi::Units::rad length of the cables and their mass // I have to go back on this later when I'll have defined a material // manager, for the time being I get the thickness by atlsim, using dtree // anf hardwire the numbers in the code... // I have to come back on the thickness using the cables recipes // - if(m_moduleNumber == 0) return 2.*0.0028412*GeoModelKernelUnits::cm; - if(m_moduleNumber == 1) return 2.*0.0056795*GeoModelKernelUnits::cm; - if(m_moduleNumber == 2) return 2.*0.0056830*GeoModelKernelUnits::cm; - if(m_moduleNumber == 3) return 2.*0.0056763*GeoModelKernelUnits::cm; - if(m_moduleNumber == 4) return 2.*0.0056752*GeoModelKernelUnits::cm; - if(m_moduleNumber == 5) return 2.*0.0057058*GeoModelKernelUnits::cm; - if(m_moduleNumber == 6) return 2.*0.0056818*GeoModelKernelUnits::cm; + if(m_moduleNumber == 0) return 2.*0.0028412*Gaudi::Units::cm; + if(m_moduleNumber == 1) return 2.*0.0056795*Gaudi::Units::cm; + if(m_moduleNumber == 2) return 2.*0.0056830*Gaudi::Units::cm; + if(m_moduleNumber == 3) return 2.*0.0056763*Gaudi::Units::cm; + if(m_moduleNumber == 4) return 2.*0.0056752*Gaudi::Units::cm; + if(m_moduleNumber == 5) return 2.*0.0057058*Gaudi::Units::cm; + if(m_moduleNumber == 6) return 2.*0.0056818*Gaudi::Units::cm; return 0.; @@ -249,7 +250,7 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { // GeoPixelSubDisk psd(theSensor); double zpos = -m_gmt_mgr->PixelECSiDz1()/2.; - double angle = 360.*GeoModelKernelUnits::deg/ (float) m_gmt_mgr->PixelECNSectors1(); + double angle = 360.*Gaudi::Units::deg/ (float) m_gmt_mgr->PixelECNSectors1(); GeoTrf::Translation3D pos(0.,0.,zpos); // Set numerology @@ -261,7 +262,7 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { m_gmt_mgr->SetEta(0); for (int ii = 0; ii < m_gmt_mgr->PixelECNSectors1(); ii++) { m_gmt_mgr->SetPhi(ii); - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(ii*angle+angle/2.)*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(ii*angle+angle/2.)*GeoTrf::RotateX3D(180.*Gaudi::Units::deg); GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm)); GeoVPhysVol * modulePhys = psd.Build(); GeoNameTag* tag = new GeoNameTag("DiskSector"); @@ -328,7 +329,7 @@ double GeoPixelDisk::Thickness() { // 7-1 I switch to the minimum thickness possible as the cables are right // outside this volume. // - // return 10*GeoModelKernelUnits::mm; + // return 10*Gaudi::Units::mm; double tck = 2*(m_gmt_mgr->PixelBoardThickness() +std::max(m_gmt_mgr->PixelHybridThickness(),m_gmt_mgr->PixelChipThickness())); tck += std::max(m_gmt_mgr->PixelECSiDz1(),m_gmt_mgr->PixelECSiDz2()); @@ -593,7 +594,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { envelopePhys->add(xform); envelopePhys->add(pec.Build() ); m_gmt_mgr->SetNeg(); - GeoTrf::RotateX3D rm(180.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(180.*Gaudi::Units::deg); xform = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translation3D(0.,0.,-zpos)*rm)); tag = new GeoNameTag("EndCap 2"); envelopePhys->add(tag); @@ -828,7 +829,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // This is the maximum possible w/o going out of the mother volume! // - double LayerThickness = 8.499*GeoModelKernelUnits::mm; + double LayerThickness = 8.499*Gaudi::Units::mm; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); // // Layer dimensions from the geometry manager @@ -849,7 +850,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { GeoPixelLadder pl(theSensor); GeoPixelTubeCables ptc; int nsectors = m_gmt_mgr->NPixelSectors(); - double angle=360./nsectors*GeoModelKernelUnits::deg; + double angle=360./nsectors*Gaudi::Units::deg; double layerradius = m_gmt_mgr->PixelLayerRadius(); double xcblpos = layerradius + (pl.Thickness()/2.+ptc.Thickness()/2)/cos(m_gmt_mgr->PixelLadderTilt()); GeoTrf::Vector3D posladder(layerradius, 0.,0.); @@ -1343,7 +1344,7 @@ m_theSensor(theSensor) double rmax = RMax(); double halflength = Thickness()/2.; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); - const GeoTubs* SDTubs = new GeoTubs(rmin,rmax,halflength,-180.*GeoModelKernelUnits::deg/m_gmt_mgr->PixelECNSectors1()+0.000005,360.*GeoModelKernelUnits::deg/m_gmt_mgr->PixelECNSectors1()-0.00001); + const GeoTubs* SDTubs = new GeoTubs(rmin,rmax,halflength,-180.*Gaudi::Units::deg/m_gmt_mgr->PixelECNSectors1()+0.000005,360.*Gaudi::Units::deg/m_gmt_mgr->PixelECNSectors1()-0.00001); m_theSubDisk = new GeoLogVol("SubDiskLog",SDTubs,air); m_theSubDisk->ref(); } @@ -1359,7 +1360,7 @@ GeoVPhysVol* GeoPixelSubDisk::Build( ) { // double xpos = RMin()+m_gmt_mgr->PixelBoardLength()/2.; GeoNameTag* tag = new GeoNameTag("SiCrystal"); - GeoTrf::Transform3D rm = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*GeoTrf::RotateY3D(90.*Gaudi::Units::deg); GeoTrf::Translation3D pos(xpos,0.,0.); GeoAlignableTransform* xformsi = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm)); SDPhys->add(tag); @@ -1763,29 +1764,29 @@ double OraclePixGeoManager::CalculateThickness(double tck,string mat) { ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelBoardWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDWIDTH")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDWIDTH")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDWIDTH")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDWIDTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelBoardLength() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDLENGTH")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDLENGTH")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDLENGTH")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDLENGTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelBoardThickness() { if (m_dc1Geometry && isBarrel() && (m_currentLD == 0)) { - return 200*GeoModelKernelUnits::micrometer; + return 200*Gaudi::Units::micrometer; } - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDTHICK")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDTHICK")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDTHICK")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDTHICK")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelBoardActiveLen() { - if(isEndcap()) return (*m_pxei)[m_currentLD]->getDouble("DRACTIVE")*GeoModelKernelUnits::cm; - if(isBarrel()) return (*m_pxbi)[m_currentLD]->getDouble("DZELEB")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_pxei)[m_currentLD]->getDouble("DRACTIVE")*Gaudi::Units::cm; + if(isBarrel()) return (*m_pxbi)[m_currentLD]->getDouble("DZELEB")*Gaudi::Units::cm; return 0.; } ///////////////////////////////////////////////////////// @@ -1795,14 +1796,14 @@ double OraclePixGeoManager::PixelBoardActiveLen() ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelHybridWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDWIDTH")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDWIDTH")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDWIDTH")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDWIDTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelHybridLength() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDLENGTH")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDLENGTH")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDLENGTH")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDLENGTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelHybridThickness() @@ -1820,7 +1821,7 @@ double OraclePixGeoManager::PixelHybridThickness() } // if it is negative is given in % of r.l. if(thick > 0.) { - return thick*GeoModelKernelUnits::cm; + return thick*Gaudi::Units::cm; } return CalculateThickness(thick,mat); @@ -1833,20 +1834,20 @@ double OraclePixGeoManager::PixelHybridThickness() double OraclePixGeoManager::PixelChipWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPWIDTH")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPWIDTH")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPWIDTH")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPWIDTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelChipLength() { - if(isBarrel())return (*m_PixelModule)[m_currentLD]->getDouble("CHIPLENGTH")*GeoModelKernelUnits::cm; - if(isEndcap())return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPLENGTH")*GeoModelKernelUnits::cm; + if(isBarrel())return (*m_PixelModule)[m_currentLD]->getDouble("CHIPLENGTH")*Gaudi::Units::cm; + if(isEndcap())return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPLENGTH")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelChipGap() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPGAP")*GeoModelKernelUnits::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPGAP")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPGAP")*Gaudi::Units::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPGAP")*Gaudi::Units::cm; return 0.; } double OraclePixGeoManager::PixelChipThickness() { @@ -1862,7 +1863,7 @@ double OraclePixGeoManager::PixelChipThickness() { } // if it is negative is given in % of r.l. if(thick > 0.) { - return thick*GeoModelKernelUnits::cm; + return thick*Gaudi::Units::cm; } return CalculateThickness(thick,mat); @@ -1875,20 +1876,20 @@ double OraclePixGeoManager::PixelChipThickness() { ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelECCarbonRMin(string a) { if(a == "Inner") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMIN")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMIN")*Gaudi::Units::cm; } else if (a == "Central") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMIN")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMIN")*Gaudi::Units::cm; } - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMIN")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMIN")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelECCarbonRMax(string a) { if(a == "Inner") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMAX")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMAX")*Gaudi::Units::cm; } else if (a == "Central") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMAX")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMAX")*Gaudi::Units::cm; } else { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMAX")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMAX")*Gaudi::Units::cm; } } @@ -1907,7 +1908,7 @@ double OraclePixGeoManager::PixelECCarbonThickness(string a) { imat =(*m_PixelDisk)[m_currentLD]->getInt("SUP3MAT")-1; } if(tck>0.) { - return tck*GeoModelKernelUnits::cm; + return tck*Gaudi::Units::cm; } return CalculateThickness(tck,mat[imat]); } @@ -1979,12 +1980,12 @@ double* OraclePixGeoManager::PixelServiceR(string a, int n) { } } // If this is negative this is the thickness of the cyl in % of r.l. - r[0] = rmin*GeoModelKernelUnits::cm; + r[0] = rmin*Gaudi::Units::cm; if(rmax > 0) { - r[1] = rmax*GeoModelKernelUnits::cm; + r[1] = rmax*Gaudi::Units::cm; } else { string material = PixelServiceMaterial(a,n); - r[1] = fabs(rmin*GeoModelKernelUnits::cm)+CalculateThickness(rmax,material); + r[1] = fabs(rmin*Gaudi::Units::cm)+CalculateThickness(rmax,material); } return r; } @@ -2012,15 +2013,15 @@ double* OraclePixGeoManager::PixelServiceZ(string a,int n) { z[1] = (*m_PixelEndcapService)[n+m_endcapInFrames]->getDouble("ZOUT"); } } - z[0] = z[0] *GeoModelKernelUnits::cm; + z[0] = z[0] *Gaudi::Units::cm; if(z[0]*(z[1]) > -0.000000001) { // same sign and z[0] > 0. - z[1] = z[1] *GeoModelKernelUnits::cm; + z[1] = z[1] *Gaudi::Units::cm; } else { string material = PixelServiceMaterial(a,n); z[1] = z[0] * (1 + CalculateThickness(z[1],material)/fabs(z[0])); } if(isEndcap() && a == "Inside" ) { // Translate to the ecnter of EndCap - double center = ((*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")+(*m_PixelEndcapGeneral)[0]->getDouble("ZMIN"))/2.*GeoModelKernelUnits::cm; + double center = ((*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")+(*m_PixelEndcapGeneral)[0]->getDouble("ZMIN"))/2.*Gaudi::Units::cm; z[0] = z[0]-center; z[1] = z[1]-center; } @@ -2148,7 +2149,7 @@ double OraclePixGeoManager::PixelLadderThickness() { double tck = (*m_PixelStave)[0]->getDouble("SUPPORTTHICK"); if( tck > 0.) { - return tck*GeoModelKernelUnits::cm; + return tck*Gaudi::Units::cm; } else { return CalculateThickness(tck,"pix::Ladder"); } @@ -2158,7 +2159,7 @@ double OraclePixGeoManager::PixelECCablesThickness() { double tck = (*m_PixelDisk)[m_currentLD]->getDouble("CABLETHICK"); if( tck > 0.) { - return tck*GeoModelKernelUnits::cm; + return tck*Gaudi::Units::cm; } else { return CalculateThickness(tck,"pix::ECCables"); } @@ -2219,14 +2220,14 @@ double OraclePixGeoManager::Voltage(bool isBLayer){ // override B-layer voltage for DC1 geometry by // value in old DB (approx ratio of thicknesses (200/250 = 0.8) // 97.1*0.8 = 77.68. In Nova its 77.7. - if (isBLayer && m_dc1Geometry) return 77.7*GeoModelKernelUnits::volt; - if(isBLayer) { return (*m_plor)[0]->getDouble("VOLTAGE")*GeoModelKernelUnits::volt;} - return (*m_plor)[1]->getDouble("VOLTAGE")*GeoModelKernelUnits::volt; + if (isBLayer && m_dc1Geometry) return 77.7*Gaudi::Units::volt; + if(isBLayer) { return (*m_plor)[0]->getDouble("VOLTAGE")*Gaudi::Units::volt;} + return (*m_plor)[1]->getDouble("VOLTAGE")*Gaudi::Units::volt; } double OraclePixGeoManager::Temperature(bool isBLayer){ - if(isBLayer) { return (*m_plor)[0]->getDouble("TEMPC")*GeoModelKernelUnits::kelvin+GeoModelKernelUnits::STP_Temperature;} - return (*m_plor)[1]->getDouble("TEMPC")*GeoModelKernelUnits::kelvin+GeoModelKernelUnits::STP_Temperature; + if(isBLayer) { return (*m_plor)[0]->getDouble("TEMPC")*Gaudi::Units::kelvin+Gaudi::Units::STP_Temperature;} + return (*m_plor)[1]->getDouble("TEMPC")*Gaudi::Units::kelvin+Gaudi::Units::STP_Temperature; } const GeoTrf::Vector3D & @@ -2234,9 +2235,9 @@ OraclePixGeoManager::magneticField(bool isBLayer) const { if (m_magFieldFromNova) { if(isBLayer) { - m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[0]->getDouble("BFIELD") * GeoModelKernelUnits::tesla); + m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[0]->getDouble("BFIELD") * Gaudi::Units::tesla); } else { - m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[1]->getDouble("BFIELD") * GeoModelKernelUnits::tesla); + m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[1]->getDouble("BFIELD") * Gaudi::Units::tesla); } } return m_magField; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h index 4a59f7251044..4a5337eeca16 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h @@ -7,7 +7,7 @@ #include "Identifier/Identifier.h" #include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBRecord.h" //IRDBRecord used in code in the header #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" //for IRDBRecordset_ptr typedef @@ -926,16 +926,16 @@ class OraclePixGeoManager : public PixelGeometryManager { // ATLS double OraclePixGeoManager::GetATLSRadius() { - return (*m_atls)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; + return (*m_atls)[0]->getDouble("RMAX")*Gaudi::Units::cm; } double OraclePixGeoManager::GetATLSRmin() { - return (*m_atls)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm; + return (*m_atls)[0]->getDouble("RMIN")*Gaudi::Units::cm; } double OraclePixGeoManager::GetATLSLength() { - return (*m_atls)[0]->getDouble("ZMAX")*GeoModelKernelUnits::cm; + return (*m_atls)[0]->getDouble("ZMAX")*Gaudi::Units::cm; } // @@ -951,35 +951,35 @@ int OraclePixGeoManager::PixelEndcapMinorVersion() { return static_cast<int>(((*m_PixelEndcapGeneral)[0]->getDouble("VERSION") - PixelEndcapMajorVersion())*10 + 0.5);} // PXBG -double OraclePixGeoManager::PixelRMin() {return (*m_PixelCommon)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelRMax() {return (*m_PixelCommon)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelHalfLength() {return (*m_PixelCommon)[0]->getDouble("HALFLENGTH")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelRMin() {return (*m_PixelCommon)[0]->getDouble("RMIN")*Gaudi::Units::cm;} +double OraclePixGeoManager::PixelRMax() {return (*m_PixelCommon)[0]->getDouble("RMAX")*Gaudi::Units::cm;} +double OraclePixGeoManager::PixelHalfLength() {return (*m_PixelCommon)[0]->getDouble("HALFLENGTH")*Gaudi::Units::cm;} int OraclePixGeoManager::PixelBarrelNLayer() {return (*m_PixelBarrelGeneral)[0]->getInt("NLAYER");} // m_PixelBarrelGeneral -double OraclePixGeoManager::PixelBarrelRMin() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelBarrelRMax() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelBarrelHalfLength() {return (*m_PixelBarrelGeneral)[0]->getDouble("HALFLENGTH")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelBarrelRMin() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMIN")*Gaudi::Units::cm;} +double OraclePixGeoManager::PixelBarrelRMax() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMAX")*Gaudi::Units::cm;} +double OraclePixGeoManager::PixelBarrelHalfLength() {return (*m_PixelBarrelGeneral)[0]->getDouble("HALFLENGTH")*Gaudi::Units::cm;} // PXBI double OraclePixGeoManager::PixelLayerRadius() { - return (*m_PixelLayer)[m_currentLD]->getDouble("RLAYER")*GeoModelKernelUnits::cm; + return (*m_PixelLayer)[m_currentLD]->getDouble("RLAYER")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelLadderHalfLength() { - return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelLadderWidth() { - return (*m_PixelStave)[0]->getDouble("SUPPORTWIDTH")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTWIDTH")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelLadderTilt() { - return (*m_PixelLayer)[m_currentLD]->getDouble("STAVETILT")*GeoModelKernelUnits::deg; + return (*m_PixelLayer)[m_currentLD]->getDouble("STAVETILT")*Gaudi::Units::deg; } int OraclePixGeoManager::NPixelSectors() { @@ -988,7 +988,7 @@ int OraclePixGeoManager::NPixelSectors() double OraclePixGeoManager::PixelBalcony() { - return (*m_pxbi)[m_currentLD]->getDouble("DXELEB")*GeoModelKernelUnits::cm; + return (*m_pxbi)[m_currentLD]->getDouble("DXELEB")*Gaudi::Units::cm; } int OraclePixGeoManager::PixelNModule() @@ -998,17 +998,17 @@ int OraclePixGeoManager::PixelNModule() double OraclePixGeoManager::PixelModuleAngle() { - return (*m_PixelStave)[0]->getDouble("MODULETILT")*GeoModelKernelUnits::deg; + return (*m_PixelStave)[0]->getDouble("MODULETILT")*Gaudi::Units::deg; } double OraclePixGeoManager::PixelModuleDrDistance() { - return (*m_PixelStave)[0]->getDouble("CENTRMODULESHIFT")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("CENTRMODULESHIFT")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelModulePosition(int im) { - return (*m_PixelStave)[0]->getDouble("MODULEDZ")*GeoModelKernelUnits::cm*im; + return (*m_PixelStave)[0]->getDouble("MODULEDZ")*Gaudi::Units::cm*im; } // OBSOLETE!!! TO MOVE INTO THE NEW FACTORY @@ -1029,23 +1029,23 @@ double OraclePixGeoManager::PixelModuleAngleSign(int im) // PBAC double OraclePixGeoManager::PixelCableWidth() { - return (*m_PixelStave)[0]->getDouble("CABLEWIDTH")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("CABLEWIDTH")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelCableThickness() { - return (*m_PixelStave)[0]->getDouble("CABLETHICK")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("CABLETHICK")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelCableZMax() { - return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelCableZMin() { - return (*m_PixelStave)[0]->getDouble("CABLEZMIN")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("CABLEZMIN")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelCableDeltaZ() { - return (*m_PixelStave)[0]->getDouble("MODULEDZ")*GeoModelKernelUnits::cm; + return (*m_PixelStave)[0]->getDouble("MODULEDZ")*Gaudi::Units::cm; } @@ -1053,24 +1053,24 @@ double OraclePixGeoManager::PixelCableDeltaZ() { int OraclePixGeoManager::PixelEndcapNDisk() {return (*m_PixelEndcapGeneral)[0]->getInt("NDISK");} // Endcap container PEVO -double OraclePixGeoManager::PixelEndcapRMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelEndcapRMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMIN")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelEndcapRMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelEndcapRMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMAX")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelEndcapZMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMIN")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelEndcapZMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMIN")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelEndcapZMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelEndcapZMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")*Gaudi::Units::cm;} int OraclePixGeoManager::PixelEndcapNSupportFrames() {return (int) (*m_PixelEndcapGeneral)[0]->getDouble("NFRAME");} // Endcap Inner (PXEI) -double OraclePixGeoManager::PixelDiskPosition() {return (*m_PixelDisk)[m_currentLD]->getDouble("ZDISK")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelDiskPosition() {return (*m_PixelDisk)[m_currentLD]->getDouble("ZDISK")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelDiskRMin() {return (*m_PixelDisk)[m_currentLD]->getDouble("RIDISK")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelDiskRMin() {return (*m_PixelDisk)[m_currentLD]->getDouble("RIDISK")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelECSiDz1() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelECSiDz1() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*Gaudi::Units::cm;} -double OraclePixGeoManager::PixelECSiDz2() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelECSiDz2() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*Gaudi::Units::cm;} int OraclePixGeoManager::PixelECNSectors1() {return (*m_PixelDisk)[m_currentLD]->getInt("NMODULE");} @@ -1078,53 +1078,53 @@ int OraclePixGeoManager::PixelECNSectors2() {return (*m_PixelDisk)[m_currentLD]- // Endcap Cables PEAC double OraclePixGeoManager::PixelECCablesRMin() { - return (*m_PixelDisk)[m_currentLD]->getDouble("RMINCABLE")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("RMINCABLE")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelECCablesRMax() { - return (*m_PixelDisk)[m_currentLD]->getDouble("RMAXCABLE")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("RMAXCABLE")*Gaudi::Units::cm; } double OraclePixGeoManager::PixelECCablesDistance() { - return (*m_PixelDisk)[m_currentLD]->getDouble("ZCABLE")*GeoModelKernelUnits::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("ZCABLE")*Gaudi::Units::cm; } // // Design // double OraclePixGeoManager::DesignRPActiveArea(){ - return (*m_pxbi)[0]->getDouble("DYACTIVE")*GeoModelKernelUnits::cm; + return (*m_pxbi)[0]->getDouble("DYACTIVE")*Gaudi::Units::cm; } double OraclePixGeoManager::DesignZActiveArea(){ - return (*m_pxbi)[0]->getDouble("DZELEB")*GeoModelKernelUnits::cm; + return (*m_pxbi)[0]->getDouble("DZELEB")*Gaudi::Units::cm; } double OraclePixGeoManager::DesignPitchRP(bool isBLayer) { - if(isBLayer) return (*m_pxbd)[0]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; - else return (*m_pxbd)[1]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; + if(isBLayer) return (*m_pxbd)[0]->getDouble("PITCHRP")*Gaudi::Units::cm; + else return (*m_pxbd)[1]->getDouble("PITCHRP")*Gaudi::Units::cm; } double OraclePixGeoManager::DesignPitchZ(bool isBLayer) { double pitchZ; if(isBLayer) { if (m_dc1Geometry) { // Override NOVA - pitchZ = 300 * GeoModelKernelUnits::micrometer; + pitchZ = 300 * Gaudi::Units::micrometer; } else { - pitchZ = (*m_pxbd)[0]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; + pitchZ = (*m_pxbd)[0]->getDouble("PITCHZ") * Gaudi::Units::cm; } } else { - pitchZ = (*m_pxbd)[1]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; + pitchZ = (*m_pxbd)[1]->getDouble("PITCHZ") * Gaudi::Units::cm; } return pitchZ; } double OraclePixGeoManager::DesignGapRP() { - return (*m_pdch)[0]->getDouble("GAPRP")*GeoModelKernelUnits::cm; + return (*m_pdch)[0]->getDouble("GAPRP")*Gaudi::Units::cm; } double OraclePixGeoManager::DesignGapZ() { - return (*m_pdch)[0]->getDouble("GAPZ")*GeoModelKernelUnits::cm; + return (*m_pdch)[0]->getDouble("GAPZ")*Gaudi::Units::cm; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx index 160edfb488ba..1651b6cf1d8d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx @@ -13,6 +13,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GaudiKernel/SystemOfUnits.h" // InDetReadoutGeometry #include "InDetReadoutGeometry/SiCommonItems.h" @@ -120,8 +121,8 @@ void PixelDetectorFactory::create(GeoPhysVol *world) m_geometryManager->SetCurrentLD(0); m_geometryManager->SetBarrel(); if(msgLvl(MSG::DEBUG)) { - msg(MSG::DEBUG) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/GeoModelKernelUnits::micrometer << "um" << endmsg; - msg(MSG::DEBUG) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::DEBUG) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/Gaudi::Units::micrometer << "um" << endmsg; + msg(MSG::DEBUG) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/Gaudi::Units::micrometer << "um" << endmsg; } // Top level transform diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx index 9731105c0ecb..0d5797ba806d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx @@ -125,12 +125,12 @@ void PixelDetectorFactoryDC2::create(GeoPhysVol *world) msg(MSG::INFO) << " " << m_detectorManager->getVersion().fullDescription() << endmsg; // Printout the parameters that are different in DC1 and DC2. - msg(MSG::INFO) << " B-Layer basic eta pitch: " << geometryManager->DesignPitchZ(true)/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer basic eta pitch: " << geometryManager->DesignPitchZ(true)/Gaudi::Units::micrometer << "um" << endmsg; } geometryManager->SetCurrentLD(0); geometryManager->SetBarrel(); if(msgLvl(MSG::INFO)) - msg(MSG::INFO) << " B-Layer sensor thickness: " << geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer sensor thickness: " << geometryManager->PixelBoardThickness()/Gaudi::Units::micrometer << "um" << endmsg; // // Create the Pixel Envelope... diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx index e0a93585e536..f833a3103e9c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GaudiKernel/SystemOfUnits.h" // InDetReadoutGeometry #include "InDetReadoutGeometry/SiCommonItems.h" @@ -110,8 +111,8 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) msg(MSG::INFO) << " " << m_detectorManager->getVersion().fullDescription() << endmsg; // Printout the parameters that are different in DC1 and DC2. - msg(MSG::INFO) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/GeoModelKernelUnits::micrometer << "um" << endmsg; - msg(MSG::INFO) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/Gaudi::Units::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/Gaudi::Units::micrometer << "um" << endmsg; } bool barrelPresent = m_geometryManager->partPresent("Barrel"); @@ -195,7 +196,7 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) physVol = pec.Build(); GeoTrf::Transform3D endcapCTransform = m_geometryManager->partTransform("EndcapC"); - transform = new GeoAlignableTransform(topTransform * endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); + transform = new GeoAlignableTransform(topTransform * endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)); GeoNameTag* tag = new GeoNameTag("Pixel"); world->add(tag); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx index 1bd7b37a9ece..9e19a15c0924 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx @@ -8,7 +8,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeoPrimitives/GeoPrimitives.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <string> @@ -89,36 +89,36 @@ int PixelLegacyManager::PixelBarrelNTFrame() double PixelLegacyManager::PixelBarrelBFrameWidth() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; + return (*m_pfba)[0]->getDouble("WIDTH1")*Gaudi::Units::cm; } else { - return (*m_pfec)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; + return (*m_pfec)[0]->getDouble("WIDTH1")*Gaudi::Units::cm; } } double PixelLegacyManager::PixelBarrelTFrameWidth() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; + return (*m_pfba)[0]->getDouble("WIDTH2")*Gaudi::Units::cm; } else { - return (*m_pfec)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; + return (*m_pfec)[0]->getDouble("WIDTH2")*Gaudi::Units::cm; } } double PixelLegacyManager::PixelBarrelFrameLength() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; + return (*m_pfba)[0]->getDouble("LENGTH")*Gaudi::Units::cm; } else { - return (*m_pfec)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; + return (*m_pfec)[0]->getDouble("LENGTH")*Gaudi::Units::cm; } } double PixelLegacyManager::PixelBarrelFrameOffset() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; + return (*m_pfba)[0]->getDouble("OFFSET")*Gaudi::Units::cm; } else { - return (*m_pfec)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; + return (*m_pfec)[0]->getDouble("OFFSET")*Gaudi::Units::cm; } } @@ -135,33 +135,33 @@ int PixelLegacyManager::PixelEndcapNTFrame() double PixelLegacyManager::PixelEndcapBFrameWidth() { - return (*m_pecf)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; + return (*m_pecf)[0]->getDouble("WIDTH1")*Gaudi::Units::cm; } double PixelLegacyManager::PixelEndcapTFrameWidth() { - return (*m_pecf)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; + return (*m_pecf)[0]->getDouble("WIDTH2")*Gaudi::Units::cm; } double PixelLegacyManager::PixelEndcapFrameLength() { - return (*m_pecf)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; + return (*m_pecf)[0]->getDouble("LENGTH")*Gaudi::Units::cm; } double PixelLegacyManager::PixelEndcapFrameOffset() { - return (*m_pecf)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; + return (*m_pecf)[0]->getDouble("OFFSET")*Gaudi::Units::cm; } double PixelLegacyManager::PixelBFrameHalfLength() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_pbba)[0]->getDouble("DZ")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_pecb)[0]->getDouble("DZ")*Gaudi::Units::cm; } else { - return (*m_pbec)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_pbec)[0]->getDouble("DZ")*Gaudi::Units::cm; } } } @@ -169,12 +169,12 @@ double PixelLegacyManager::PixelBFrameHalfLength() double PixelLegacyManager::PixelBFrameHalfWidth() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_pbba)[0]->getDouble("DY")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_pecb)[0]->getDouble("DY")*Gaudi::Units::cm; } else { - return (*m_pbec)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_pbec)[0]->getDouble("DY")*Gaudi::Units::cm; } } } @@ -182,12 +182,12 @@ double PixelLegacyManager::PixelBFrameHalfWidth() double PixelLegacyManager::PixelBFrameHalfThickness() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DX")*GeoModelKernelUnits::cm; + return (*m_pbba)[0]->getDouble("DX")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DX")*GeoModelKernelUnits::cm; + return (*m_pecb)[0]->getDouble("DX")*Gaudi::Units::cm; } else { - return (*m_pbec)[0]->getDouble("DX")*GeoModelKernelUnits::cm; + return (*m_pbec)[0]->getDouble("DX")*Gaudi::Units::cm; } } } @@ -195,15 +195,15 @@ double PixelLegacyManager::PixelBFrameHalfThickness() double PixelLegacyManager::PixelTFrameHalfLength() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_ptba)[0]->getDouble("DZ")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_pect)[0]->getDouble("DZ")*Gaudi::Units::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("DZ")*Gaudi::Units::cm; } else { - return (*m_ptec)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; + return (*m_ptec)[0]->getDouble("DZ")*Gaudi::Units::cm; } } } @@ -212,15 +212,15 @@ double PixelLegacyManager::PixelTFrameHalfLength() double PixelLegacyManager::PixelTFrameHalfWidthY() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_ptba)[0]->getDouble("DY")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_pect)[0]->getDouble("DY")*Gaudi::Units::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("DY")*Gaudi::Units::cm; } else { - return (*m_ptec)[0]->getDouble("DY")*GeoModelKernelUnits::cm; + return (*m_ptec)[0]->getDouble("DY")*Gaudi::Units::cm; } } } @@ -229,15 +229,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthY() double PixelLegacyManager::PixelTFrameHalfWidthXzn() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; + return (*m_ptba)[0]->getDouble("DX1")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; + return (*m_pect)[0]->getDouble("DX1")*Gaudi::Units::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("DX1")*Gaudi::Units::cm; } else { - return (*m_ptec)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; + return (*m_ptec)[0]->getDouble("DX1")*Gaudi::Units::cm; } } } @@ -246,15 +246,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthXzn() double PixelLegacyManager::PixelTFrameHalfWidthXzp() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; + return (*m_ptba)[0]->getDouble("DX2")*Gaudi::Units::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; + return (*m_pect)[0]->getDouble("DX2")*Gaudi::Units::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("DX2")*Gaudi::Units::cm; } else { - return (*m_ptec)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; + return (*m_ptec)[0]->getDouble("DX2")*Gaudi::Units::cm; } } } @@ -263,15 +263,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthXzp() double PixelLegacyManager::PixelTFrameDzDr() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; + return (*m_ptba)[0]->getDouble("DZDR")*Gaudi::Units::deg; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DZDR")*GeoModelKernelUnits::cm; + return (*m_pect)[0]->getDouble("DZDR")*Gaudi::Units::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; + return (*m_pecn)[0]->getDouble("DZDR")*Gaudi::Units::deg; } else { - return (*m_ptec)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; + return (*m_ptec)[0]->getDouble("DZDR")*Gaudi::Units::deg; } } } @@ -279,33 +279,33 @@ double PixelLegacyManager::PixelTFrameDzDr() double PixelLegacyManager::PixelBarrelFrameECRadius() { - return (*m_pecn)[0]->getDouble("RADIUS")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("RADIUS")*Gaudi::Units::cm; } double PixelLegacyManager::PixelBarrelFrameECZPos() { - return (*m_pecn)[0]->getDouble("Z")*GeoModelKernelUnits::cm; + return (*m_pecn)[0]->getDouble("Z")*Gaudi::Units::cm; } double PixelLegacyManager::PixelBarrelFrameECAlphaX() { - return (*m_pecn)[0]->getDouble("ANGLEX")*GeoModelKernelUnits::deg; + return (*m_pecn)[0]->getDouble("ANGLEX")*Gaudi::Units::deg; } double PixelLegacyManager::PixelBarrelFrameECAlphaY() { - return (*m_pecn)[0]->getDouble("ANGLEY")*GeoModelKernelUnits::deg; + return (*m_pecn)[0]->getDouble("ANGLEY")*Gaudi::Units::deg; } double PixelLegacyManager::PixelLadderThickness() { - return 2 * 1.48972*GeoModelKernelUnits::mm; + return 2 * 1.48972*Gaudi::Units::mm; } double PixelLegacyManager::PixelLadderLength() { - return 2 * (*m_pxbi)[0]->getDouble("DZLADDER")*GeoModelKernelUnits::cm; + return 2 * (*m_pxbi)[0]->getDouble("DZLADDER")*Gaudi::Units::cm; } double PixelLegacyManager::PixelLadderServicesX() @@ -315,28 +315,28 @@ double PixelLegacyManager::PixelLadderServicesX() double PixelLegacyManager::PixelLadderServicesY() { - return 3*GeoModelKernelUnits::mm; + return 3*Gaudi::Units::mm; } double PixelLegacyManager::PixelLadderCableOffsetX() { - return 0.099*GeoModelKernelUnits::mm; + return 0.099*Gaudi::Units::mm; } double PixelLegacyManager::PixelLadderCableOffsetY() { - return 4*GeoModelKernelUnits::mm; + return 4*Gaudi::Units::mm; } double PixelLegacyManager::PixelLadderConnectorOffsetX() { - return -5.8*GeoModelKernelUnits::mm; + return -5.8*Gaudi::Units::mm; } double PixelLegacyManager::PixelLadderPigtailOffsetY() { - return -0.5*GeoModelKernelUnits::mm - PixelLadderCableOffsetY(); + return -0.5*Gaudi::Units::mm - PixelLadderCableOffsetY(); } @@ -353,34 +353,34 @@ double PixelLegacyManager::PixelCableZStart(int index) { // In old code two cables were connected to middle. Correction stops them touching. - double correction = (index == 7) ? 0.000001*GeoModelKernelUnits::cm : 0; - return ((*m_poci)[index]->getDouble("Z") - (*m_poci)[index]->getDouble("DZ")) * GeoModelKernelUnits::cm + correction; + double correction = (index == 7) ? 0.000001*Gaudi::Units::cm : 0; + return ((*m_poci)[index]->getDouble("Z") - (*m_poci)[index]->getDouble("DZ")) * Gaudi::Units::cm + correction; } double PixelLegacyManager::PixelCableZEnd(int index) { // In old code two cables were connected to middle. Correction stops them touching. - double correction = (index == 7) ? 0.000001*GeoModelKernelUnits::cm : 0; - return ((*m_poci)[index]->getDouble("Z") + (*m_poci)[index]->getDouble("DZ")) * GeoModelKernelUnits::cm + correction; + double correction = (index == 7) ? 0.000001*Gaudi::Units::cm : 0; + return ((*m_poci)[index]->getDouble("Z") + (*m_poci)[index]->getDouble("DZ")) * Gaudi::Units::cm + correction; } double PixelLegacyManager::PixelCableWidth(int index) { - return (*m_poci)[index]->getDouble("DY") * GeoModelKernelUnits::cm; + return (*m_poci)[index]->getDouble("DY") * Gaudi::Units::cm; } double PixelLegacyManager::PixelCableThickness(int index) { - return (*m_poci)[index]->getDouble("DX")*GeoModelKernelUnits::cm; + return (*m_poci)[index]->getDouble("DX")*Gaudi::Units::cm; } double PixelLegacyManager::PixelCableStackOffset(int index) { - return (*m_poci)[index]->getDouble("X")*GeoModelKernelUnits::cm; + return (*m_poci)[index]->getDouble("X")*Gaudi::Units::cm; } @@ -417,47 +417,47 @@ double PixelLegacyManager::PixelTMTVariable(int iPart, const std::string & varNa double PixelLegacyManager::PixelTMTDzdr(int iPart) { - return PixelTMTVariable(iPart, "DZDR") * GeoModelKernelUnits::deg; + return PixelTMTVariable(iPart, "DZDR") * Gaudi::Units::deg; } double PixelLegacyManager::PixelTMTPosX(int iPart) { - return PixelTMTVariable(iPart, "X") * GeoModelKernelUnits::cm; + return PixelTMTVariable(iPart, "X") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTPosZ(int iPart) { - return PixelTMTVariable(iPart, "Z") * GeoModelKernelUnits::cm; + return PixelTMTVariable(iPart, "Z") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTLength(int iPart) { - return 2 * PixelTMTVariable(iPart, "DZ") * GeoModelKernelUnits::cm; + return 2 * PixelTMTVariable(iPart, "DZ") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTWidthX2(int iPart) { - return 2 * PixelTMTVariable(iPart, "DX2") * GeoModelKernelUnits::cm; + return 2 * PixelTMTVariable(iPart, "DX2") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTWidthX1(int iPart) { - return 2 * PixelTMTVariable(iPart, "DX1") * GeoModelKernelUnits::cm; + return 2 * PixelTMTVariable(iPart, "DX1") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTWidthY(int iPart) { - return 2 * PixelTMTVariable(iPart, "DY") * GeoModelKernelUnits::cm; + return 2 * PixelTMTVariable(iPart, "DY") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTBaseX1(int iPart) { double theta = PixelTMTDzdr(iPart); if (theta == 0) { - return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); + return PixelTMTVariable(iPart, "X")*Gaudi::Units::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); } else { - return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm - 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX1(iPart); + return PixelTMTVariable(iPart, "X")*Gaudi::Units::cm - 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX1(iPart); } } @@ -465,15 +465,15 @@ double PixelLegacyManager::PixelTMTBaseX2(int iPart) { double theta = PixelTMTDzdr(iPart); if (theta == 0) { - return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); + return PixelTMTVariable(iPart, "X")*Gaudi::Units::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); } else { - return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX2(iPart); + return PixelTMTVariable(iPart, "X")*Gaudi::Units::cm + 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX2(iPart); } } double PixelLegacyManager::PixelTMTPosY(int iPart) { - return PixelTMTVariable(iPart, "Y") * GeoModelKernelUnits::cm; + return PixelTMTVariable(iPart, "Y") * Gaudi::Units::cm; } double PixelLegacyManager::PixelTMTPosZ1(int iPart) @@ -498,52 +498,52 @@ bool PixelLegacyManager::PixelTMTPerModule(int iPart) // double PixelLegacyManager::PixelOmegaUpperBendX() { - return (*m_poti)[2]->getDouble("X") * GeoModelKernelUnits::cm; + return (*m_poti)[2]->getDouble("X") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaUpperBendY() { - return (*m_poti)[2]->getDouble("Y") * GeoModelKernelUnits::cm; + return (*m_poti)[2]->getDouble("Y") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaUpperBendRadius() { - return (*m_poti)[2]->getDouble("RMAX") * GeoModelKernelUnits::cm; + return (*m_poti)[2]->getDouble("RMAX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaLowerBendX() { - return (*m_poti)[0]->getDouble("X") * GeoModelKernelUnits::cm; + return (*m_poti)[0]->getDouble("X") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaLowerBendY() { - return (*m_poti)[0]->getDouble("Y") * GeoModelKernelUnits::cm; + return (*m_poti)[0]->getDouble("Y") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaLowerBendRadius() { - return (*m_poti)[0]->getDouble("RMAX") * GeoModelKernelUnits::cm; + return (*m_poti)[0]->getDouble("RMAX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaWallThickness() { - return ((*m_poti)[0]->getDouble("RMAX") - (*m_poti)[0]->getDouble("RMIN")) * GeoModelKernelUnits::cm; + return ((*m_poti)[0]->getDouble("RMAX") - (*m_poti)[0]->getDouble("RMIN")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaLength() { - return 2. * (*m_poti)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2. * (*m_poti)[0]->getDouble("DZ") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaStartY() { - return ((*m_posi)[0]->getDouble("Y") + 0.5*(*m_posi)[0]->getDouble("DY")) * GeoModelKernelUnits::cm; + return ((*m_posi)[0]->getDouble("Y") + 0.5*(*m_posi)[0]->getDouble("DY")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaEndY() { - return ((*m_posi)[1]->getDouble("Y") - 0.5*(*m_posi)[1]->getDouble("DY")) * GeoModelKernelUnits::cm; + return ((*m_posi)[1]->getDouble("Y") - 0.5*(*m_posi)[1]->getDouble("DY")) * Gaudi::Units::cm; } // @@ -552,42 +552,42 @@ double PixelLegacyManager::PixelOmegaEndY() double PixelLegacyManager::PixelAlTubeUpperBendX() { - return (*m_poti)[5]->getDouble("X") * GeoModelKernelUnits::cm; + return (*m_poti)[5]->getDouble("X") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeUpperBendY() { - return (*m_poti)[5]->getDouble("Y") * GeoModelKernelUnits::cm; + return (*m_poti)[5]->getDouble("Y") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeUpperBendRadius() { - return (*m_poti)[5]->getDouble("RMAX") * GeoModelKernelUnits::cm; + return (*m_poti)[5]->getDouble("RMAX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeLowerBendX() { - return (*m_poti)[3]->getDouble("X") * GeoModelKernelUnits::cm; + return (*m_poti)[3]->getDouble("X") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeLowerBendY() { - return (*m_poti)[3]->getDouble("Y") * GeoModelKernelUnits::cm; + return (*m_poti)[3]->getDouble("Y") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeLowerBendRadius() { - return (*m_poti)[3]->getDouble("RMAX") * GeoModelKernelUnits::cm; + return (*m_poti)[3]->getDouble("RMAX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeWallThickness() { - return ((*m_poti)[3]->getDouble("RMAX") - (*m_poti)[3]->getDouble("RMIN")) * GeoModelKernelUnits::cm; + return ((*m_poti)[3]->getDouble("RMAX") - (*m_poti)[3]->getDouble("RMIN")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelAlTubeLength() { - return 2 * (*m_poti)[3]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2 * (*m_poti)[3]->getDouble("DZ") * Gaudi::Units::cm; } // @@ -601,32 +601,32 @@ int PixelLegacyManager::PixelNumOmegaGlueElements() double PixelLegacyManager::PixelOmegaGlueStartX(int index) { - return ((*m_posi)[index+2]->getDouble("X") - 0.5*(*m_posi)[index+2]->getDouble("DX")) * GeoModelKernelUnits::cm; + return ((*m_posi)[index+2]->getDouble("X") - 0.5*(*m_posi)[index+2]->getDouble("DX")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaGlueThickness(int index) { - return (*m_posi)[index+2]->getDouble("DX") * GeoModelKernelUnits::cm; + return (*m_posi)[index+2]->getDouble("DX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaGlueStartY(int index) { - return ((*m_posi)[index+2]->getDouble("Y") - 0.5*(*m_posi)[index+2]->getDouble("DY")) * GeoModelKernelUnits::cm; + return ((*m_posi)[index+2]->getDouble("Y") - 0.5*(*m_posi)[index+2]->getDouble("DY")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaGlueEndY(int index) { - return ((*m_posi)[index+2]->getDouble("Y") + 0.5*(*m_posi)[index+2]->getDouble("DY")) * GeoModelKernelUnits::cm; + return ((*m_posi)[index+2]->getDouble("Y") + 0.5*(*m_posi)[index+2]->getDouble("DY")) * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaGlueLength(int index) { - return 2 * (*m_posi)[index+2]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2 * (*m_posi)[index+2]->getDouble("DZ") * Gaudi::Units::cm; } double PixelLegacyManager::PixelOmegaGluePosZ(int index) { - return (*m_posi)[index+2]->getDouble("Z") * GeoModelKernelUnits::cm; + return (*m_posi)[index+2]->getDouble("Z") * Gaudi::Units::cm; } int PixelLegacyManager::PixelOmegaGlueTypeNum(int index) @@ -640,24 +640,24 @@ int PixelLegacyManager::PixelOmegaGlueTypeNum(int index) double PixelLegacyManager::PixelFluidZ1(int index) { - double dz = (*m_pcff)[index%2]->getDouble("DZ")*GeoModelKernelUnits::cm; - double posz = (*m_pcff)[index%2]->getDouble("Z")*GeoModelKernelUnits::cm; + double dz = (*m_pcff)[index%2]->getDouble("DZ")*Gaudi::Units::cm; + double posz = (*m_pcff)[index%2]->getDouble("Z")*Gaudi::Units::cm; return posz-dz; } double PixelLegacyManager::PixelFluidZ2(int index) { - double dz = (*m_pcff)[index%2]->getDouble("DZ")*GeoModelKernelUnits::cm; - double posz = (*m_pcff)[index%2]->getDouble("Z")*GeoModelKernelUnits::cm; + double dz = (*m_pcff)[index%2]->getDouble("DZ")*Gaudi::Units::cm; + double posz = (*m_pcff)[index%2]->getDouble("Z")*Gaudi::Units::cm; return posz+dz; } double PixelLegacyManager::PixelFluidThick1(int index) { if (index < 2) { - return 2*(*m_pcff)[index%2]->getDouble("DX1")*GeoModelKernelUnits::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX1")*Gaudi::Units::cm; } else { - return 2*(*m_pcff)[index%2]->getDouble("DX2")*GeoModelKernelUnits::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX2")*Gaudi::Units::cm; } } @@ -665,26 +665,26 @@ double PixelLegacyManager::PixelFluidThick1(int index) double PixelLegacyManager::PixelFluidThick2(int index) { if (index < 2) { - return 2*(*m_pcff)[index%2]->getDouble("DX2")*GeoModelKernelUnits::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX2")*Gaudi::Units::cm; } else { - return 2*(*m_pcff)[index%2]->getDouble("DX1")*GeoModelKernelUnits::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX1")*Gaudi::Units::cm; } } double PixelLegacyManager::PixelFluidWidth(int index) { - return 2*(*m_pcff)[index%2]->getDouble("DY")*GeoModelKernelUnits::cm; + return 2*(*m_pcff)[index%2]->getDouble("DY")*Gaudi::Units::cm; } double PixelLegacyManager::PixelFluidX(int index) { - return (*m_pcff)[index%2]->getDouble("X")*GeoModelKernelUnits::cm; + return (*m_pcff)[index%2]->getDouble("X")*Gaudi::Units::cm; } double PixelLegacyManager::PixelFluidY(int index) { - return (*m_pcff)[index%2]->getDouble("Y")*GeoModelKernelUnits::cm; + return (*m_pcff)[index%2]->getDouble("Y")*Gaudi::Units::cm; } int PixelLegacyManager::PixelFluidType(int index) @@ -716,17 +716,17 @@ int PixelLegacyManager::PixelFluidOrient(int layer, int phi) // double PixelLegacyManager::PixelPigtailThickness() { - return (*m_poai)[0]->getDouble("DX") * GeoModelKernelUnits::cm; + return (*m_poai)[0]->getDouble("DX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailStartY() { - return -0.5*(*m_poai)[0]->getDouble("DY") * GeoModelKernelUnits::cm; + return -0.5*(*m_poai)[0]->getDouble("DY") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailEndY() { - return 0.5*(*m_poai)[0]->getDouble("DY") * GeoModelKernelUnits::cm; + return 0.5*(*m_poai)[0]->getDouble("DY") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailFlatWidthZ() @@ -734,59 +734,59 @@ double PixelLegacyManager::PixelPigtailFlatWidthZ() // Assume its actually the full width but in old geometry it was interpreted as a half width so we // multiply by 2. This gives the flat section twice the width of the curved section which I don't think was the // intention. - return 2*(*m_poai)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2*(*m_poai)[0]->getDouble("DZ") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailWidthZ() { - return 2*(*m_pobi)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2*(*m_pobi)[0]->getDouble("DZ") * Gaudi::Units::cm; } // FIXME some weird offset double PixelLegacyManager::PixelPigtailPosX() { - return (*m_poai)[0]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); + return (*m_poai)[0]->getDouble("X") * Gaudi::Units::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelPigtailPosZ() { - return (*m_poai)[0]->getDouble("Z") * GeoModelKernelUnits::cm; + return (*m_poai)[0]->getDouble("Z") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailBendX() { - return (*m_pobi)[0]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); + return (*m_pobi)[0]->getDouble("X") * Gaudi::Units::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelPigtailBendY() { - return (*m_pobi)[0]->getDouble("Y") * GeoModelKernelUnits::cm + PixelLadderPigtailOffsetY(); + return (*m_pobi)[0]->getDouble("Y") * Gaudi::Units::cm + PixelLadderPigtailOffsetY(); } double PixelLegacyManager::PixelPigtailBendRMin() { - return (*m_pobi)[0]->getDouble("RMIN") * GeoModelKernelUnits::cm; + return (*m_pobi)[0]->getDouble("RMIN") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailBendRMax() { - return (*m_pobi)[0]->getDouble("RMAX") * GeoModelKernelUnits::cm; + return (*m_pobi)[0]->getDouble("RMAX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelPigtailBendPhiMin() { - return (*m_pobi)[0]->getDouble("PHI1") * GeoModelKernelUnits::deg; + return (*m_pobi)[0]->getDouble("PHI1") * Gaudi::Units::deg; } double PixelLegacyManager::PixelPigtailBendPhiMax() { - return (*m_pobi)[0]->getDouble("PHI2") * GeoModelKernelUnits::deg; + return (*m_pobi)[0]->getDouble("PHI2") * Gaudi::Units::deg; } double PixelLegacyManager::PixelPigtailEnvelopeLength() { // FIXME Check - return 2*(*m_posi)[9]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2*(*m_posi)[9]->getDouble("DZ") * Gaudi::Units::cm; } // @@ -799,22 +799,22 @@ int PixelLegacyManager::PixelNumConnectorElements() double PixelLegacyManager::PixelConnectorWidthX(int index) { - return (*m_poai)[index+1]->getDouble("DX") * GeoModelKernelUnits::cm; + return (*m_poai)[index+1]->getDouble("DX") * Gaudi::Units::cm; } double PixelLegacyManager::PixelConnectorWidthY(int index) { - return (*m_poai)[index+1]->getDouble("DY") * GeoModelKernelUnits::cm; + return (*m_poai)[index+1]->getDouble("DY") * Gaudi::Units::cm; } double PixelLegacyManager::PixelConnectorWidthZ(int index) { - return 2*(*m_poai)[index+1]->getDouble("DZ") * GeoModelKernelUnits::cm; + return 2*(*m_poai)[index+1]->getDouble("DZ") * Gaudi::Units::cm; } double PixelLegacyManager::PixelConnectorPosX(int index) { - return (*m_poai)[index+1]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); + return (*m_poai)[index+1]->getDouble("X") * Gaudi::Units::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelConnectorPosY(int) @@ -824,8 +824,8 @@ double PixelLegacyManager::PixelConnectorPosY(int) double PixelLegacyManager::PixelConnectorPosZ(int index) { - // same as (*m_pobi)[0]->getDouble("Z") * GeoModelKernelUnits::cm; - return (*m_poai)[index+1]->getDouble("Z") * GeoModelKernelUnits::cm; + // same as (*m_pobi)[0]->getDouble("Z") * Gaudi::Units::cm; + return (*m_poai)[index+1]->getDouble("Z") * Gaudi::Units::cm; } @@ -908,19 +908,19 @@ int PixelLegacyManager::EmptyRowConnections(int index) double PixelLegacyManager::DesignRPActiveArea() { - return (*m_pxbi)[0]->getDouble("DYACTIVE")*GeoModelKernelUnits::cm; + return (*m_pxbi)[0]->getDouble("DYACTIVE")*Gaudi::Units::cm; } double PixelLegacyManager::DesignZActiveArea() { - return (*m_pxbi)[0]->getDouble("DZELEB")*GeoModelKernelUnits::cm; + return (*m_pxbi)[0]->getDouble("DZELEB")*Gaudi::Units::cm; } double PixelLegacyManager::DesignPitchRP(bool isBLayer) { int type = designType(isBLayer); - return (*m_pxbd)[type]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; + return (*m_pxbd)[type]->getDouble("PITCHRP")*Gaudi::Units::cm; } // FIXME m_dc1Geometry @@ -930,9 +930,9 @@ double PixelLegacyManager::DesignPitchZ(bool isBLayer) double pitchZ; if(isBLayer && m_dc1Geometry) { // Override NOVA - pitchZ = 300 * GeoModelKernelUnits::micrometer; + pitchZ = 300 * Gaudi::Units::micrometer; } else { - pitchZ = (*m_pxbd)[type]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; + pitchZ = (*m_pxbd)[type]->getDouble("PITCHZ") * Gaudi::Units::cm; } return pitchZ; } @@ -945,12 +945,12 @@ double PixelLegacyManager::DesignPitchZLong(bool isBLayer) double PixelLegacyManager::DesignGapRP() { - return (*m_pdch)[0]->getDouble("GAPRP")*GeoModelKernelUnits::cm; + return (*m_pdch)[0]->getDouble("GAPRP")*Gaudi::Units::cm; } double PixelLegacyManager::DesignGapZ() { - return (*m_pdch)[0]->getDouble("GAPZ")*GeoModelKernelUnits::cm; + return (*m_pdch)[0]->getDouble("GAPZ")*Gaudi::Units::cm; } int PixelLegacyManager::DesignCircuitsEta() -- GitLab From 44e4ef1123dc9e792f6fe81b98bedd33b9451d5e Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Wed, 23 Jan 2019 01:22:37 +0100 Subject: [PATCH 051/192] Migrated SCT_GeoModel from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../SCT_GeoModel/src/SCT_Barrel.cxx | 10 +- .../src/SCT_BarrelModuleParameters.cxx | 58 +++--- .../SCT_GeoModel/src/SCT_BarrelParameters.cxx | 180 +++++++++--------- .../SCT_GeoModel/src/SCT_ComponentFactory.cxx | 4 +- .../SCT_GeoModel/src/SCT_DetectorFactory.cxx | 4 +- .../SCT_GeoModel/src/SCT_FSIHelper.cxx | 6 +- .../SCT_GeoModel/src/SCT_Forward.cxx | 4 +- .../src/SCT_ForwardModuleParameters.cxx | 80 ++++---- .../src/SCT_ForwardParameters.cxx | 116 +++++------ .../SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx | 10 +- .../src/SCT_FwdCylinderServices.cxx | 37 ++-- .../SCT_GeoModel/src/SCT_FwdHybrid.cxx | 12 +- .../SCT_GeoModel/src/SCT_FwdModule.cxx | 43 ++--- .../src/SCT_FwdModuleConnector.cxx | 4 +- .../SCT_GeoModel/src/SCT_FwdOptoHarness.cxx | 4 +- .../SCT_GeoModel/src/SCT_FwdPowerTape.cxx | 6 +- .../SCT_GeoModel/src/SCT_FwdRing.cxx | 32 ++-- .../SCT_GeoModel/src/SCT_FwdSensor.cxx | 12 +- .../SCT_GeoModel/src/SCT_FwdSpine.cxx | 9 +- .../SCT_GeoModel/src/SCT_FwdWheel.cxx | 29 ++- .../src/SCT_GeneralParameters.cxx | 16 +- .../SCT_GeoModel/src/SCT_InnerSide.cxx | 6 +- .../SCT_GeoModel/src/SCT_InterLink.cxx | 18 +- .../SCT_GeoModel/src/SCT_Layer.cxx | 20 +- .../SCT_GeoModel/src/SCT_MaterialManager.cxx | 3 +- .../SCT_GeoModel/src/SCT_Module.cxx | 48 ++--- .../SCT_GeoModel/src/SCT_OuterSide.cxx | 10 +- .../SCT_GeoModel/src/SCT_Sensor.cxx | 11 +- .../SCT_GeoModel/src/SCT_Ski.cxx | 8 +- .../SCT_GeoModel/src/SCT_SkiPowerTape.cxx | 6 +- 30 files changed, 392 insertions(+), 414 deletions(-) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx index ce889524052d..a0294257cca2 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx @@ -33,7 +33,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -59,7 +59,7 @@ SCT_Barrel::getParameters() m_thermalShieldEndWallThickness = parameters->thermalShieldEndCapThickness(); // Clearannce in z between layer and interlink. - m_zClearance = 1*GeoModelKernelUnits::mm; + m_zClearance = 1*Gaudi::Units::mm; // Layer internal structure and services depend on geometry version m_isOldGeometry = parameters->isOldGeometry(); @@ -277,10 +277,10 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const if (!m_isOldGeometry) { double dphi = jointRPhi / outerRadius; const GeoTubs* emiJointTubs = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*length, - -0.5 * dphi * GeoModelKernelUnits::radian, dphi * GeoModelKernelUnits::radian); + -0.5 * dphi * Gaudi::Units::radian, dphi * Gaudi::Units::radian); // std::cout << "EMIJoint tubs volume = " << emiJointTubs->volume() << std::endl; const GeoTubs* jointCutOut = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*pixelAttachmentLength, - -0.5 * dphi * GeoModelKernelUnits::radian, dphi * GeoModelKernelUnits::radian); + -0.5 * dphi * Gaudi::Units::radian, dphi * Gaudi::Units::radian); // std::cout << "Cut-out volume = " << jointCutOut->volume() << std::endl; const GeoShape* jointTemp = (GeoShape*)&(emiJointTubs->subtract(*jointCutOut << GeoTrf::TranslateZ3D(pixelAttachmentZpos))); const GeoShape* emiJointShape = (GeoShape*)&jointTemp->subtract(*jointCutOut << GeoTrf::TranslateZ3D(-pixelAttachmentZpos)); @@ -291,7 +291,7 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const GeoPhysVol * emiJoint = new GeoPhysVol(emiJointLog); // Place 3 copies for (int i=0; i<3; i++) { - double angle = (90. + i * 120.) * GeoModelKernelUnits::degree; + double angle = (90. + i * 120.) * Gaudi::Units::degree; parent->add(new GeoTransform(GeoTrf::RotateZ3D(angle))); parent->add(emiJoint); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx index 5e9b1e1dc341..ef197e7387e5 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx @@ -9,7 +9,7 @@ #include "RDBAccessSvc/IRDBRecord.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -19,16 +19,16 @@ using std::abs; // A few hard wired numbers (some of which should go in NOVA) // /* -const double SCT_MODULE_HYBRID_OFFSET = 5.0 * GeoModelKernelUnits::mm; // Planar distance from center of sensor to edge of hybrid. +const double SCT_MODULE_HYBRID_OFFSET = 5.0 * Gaudi::Units::mm; // Planar distance from center of sensor to edge of hybrid. const int STEREO_UPPER_SIGN = -1; // Sign of stereo rotation of upper sensor with axis going // from lower to upper const double PITCH = 80 * micrometer; -const double HALF_ACTIVE_STRIP_LENGTH = 31 * GeoModelKernelUnits::mm; -const double NOMINAL_WAFER_LENGTH = 63.960 * GeoModelKernelUnits::mm; -const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19 * GeoModelKernelUnits::mm; -const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750 * GeoModelKernelUnits::mm; -const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8 * GeoModelKernelUnits::mm; +const double HALF_ACTIVE_STRIP_LENGTH = 31 * Gaudi::Units::mm; +const double NOMINAL_WAFER_LENGTH = 63.960 * Gaudi::Units::mm; +const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19 * Gaudi::Units::mm; +const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750 * Gaudi::Units::mm; +const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8 * Gaudi::Units::mm; const double DISTANCE_CENTER_TO_CENTER = 2 * (DISTANCE_CORNER_MARK_TO_CENTER - DISTANCE_CORNER_MARK_TO_FIDUCIAL) + REF_DISTANCE_BETWEEN_FIDUCIALS; @@ -45,19 +45,19 @@ SCT_BarrelModuleParameters::SCT_BarrelModuleParameters() double SCT_BarrelModuleParameters::sensorThickness() const { - return m_rdb->brlSensor()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlSensor()->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::sensorWidth() const { - return m_rdb->brlSensor()->getDouble("WIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSensor()->getDouble("WIDTH") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::sensorLength() const { - return m_rdb->brlSensor()->getDouble("WAFERLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSensor()->getDouble("WAFERLENGTH") * Gaudi::Units::mm; } int @@ -75,20 +75,20 @@ SCT_BarrelModuleParameters::sensorMaterial() const double SCT_BarrelModuleParameters::sensorDistCenterToCenter() const { - return 2 * m_rdb->brlSensor()->getDouble("CENTERTOFIDUCIAL") * GeoModelKernelUnits::mm - + m_rdb->brlSensor()->getDouble("FIDUCIALSEP") * GeoModelKernelUnits::mm; + return 2 * m_rdb->brlSensor()->getDouble("CENTERTOFIDUCIAL") * Gaudi::Units::mm + + m_rdb->brlSensor()->getDouble("FIDUCIALSEP") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::sensorStripLength() const { - return 2 * m_rdb->brlSensor()->getDouble("ACTIVEHALFLENGTH") * GeoModelKernelUnits::mm; + return 2 * m_rdb->brlSensor()->getDouble("ACTIVEHALFLENGTH") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::sensorStripPitch() const { - return m_rdb->brlSensor()->getDouble("STRIPPITCH") * GeoModelKernelUnits::mm; + return m_rdb->brlSensor()->getDouble("STRIPPITCH") * Gaudi::Units::mm; } int @@ -118,19 +118,19 @@ SCT_BarrelModuleParameters::sensorStripShift() const double SCT_BarrelModuleParameters::baseBoardThickness() const { - return m_rdb->brlModule()->getDouble("BASEBOARDTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::baseBoardWidth() const { - return m_rdb->brlModule()->getDouble("BASEBOARDWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDWIDTH") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::baseBoardLength() const { - return m_rdb->brlModule()->getDouble("BASEBOARDLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDLENGTH") * Gaudi::Units::mm; } std::string @@ -142,13 +142,13 @@ SCT_BarrelModuleParameters::baseBoardMaterial() const double SCT_BarrelModuleParameters::baseBoardOffsetY() const { - return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETY") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETY") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::baseBoardOffsetZ() const { - return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETZ") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETZ") * Gaudi::Units::mm; } // @@ -157,19 +157,19 @@ SCT_BarrelModuleParameters::baseBoardOffsetZ() const double SCT_BarrelModuleParameters::hybridThickness() const { - return m_rdb->brlModule()->getDouble("HYBRIDTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("HYBRIDTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::hybridWidth() const { - return m_rdb->brlModule()->getDouble("HYBRIDWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("HYBRIDWIDTH") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::hybridLength() const { - return m_rdb->brlModule()->getDouble("HYBRIDLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("HYBRIDLENGTH") * Gaudi::Units::mm; } std::string @@ -181,13 +181,13 @@ SCT_BarrelModuleParameters::hybridMaterial() const double SCT_BarrelModuleParameters::hybridOffsetX() const { - return m_rdb->brlModule()->getDouble("HYBRIDOFFSETX") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("HYBRIDOFFSETX") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::hybridOffsetZ() const { - return m_rdb->brlModule()->getDouble("HYBRIDOFFSETZ") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("HYBRIDOFFSETZ") * Gaudi::Units::mm; } // @@ -196,19 +196,19 @@ SCT_BarrelModuleParameters::hybridOffsetZ() const double SCT_BarrelModuleParameters::pigtailThickness() const { - return m_rdb->brlModule()->getDouble("PIGTAILTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("PIGTAILTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::pigtailWidth() const { - return m_rdb->brlModule()->getDouble("PIGTAILWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("PIGTAILWIDTH") * Gaudi::Units::mm; } double SCT_BarrelModuleParameters::pigtailLength() const { - return m_rdb->brlModule()->getDouble("PIGTAILLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("PIGTAILLENGTH") * Gaudi::Units::mm; } std::string @@ -242,14 +242,14 @@ SCT_BarrelModuleParameters::moduleUpperSideNumber() const double SCT_BarrelModuleParameters::moduleStereoAngle() const { - return m_rdb->brlModule()->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; + return m_rdb->brlModule()->getDouble("STEREOANGLE") * Gaudi::Units::milliradian; } double SCT_BarrelModuleParameters::moduleSensorToSensorGap() const { - return m_rdb->brlModule()->getDouble("SENSORTOSENSORGAP") * GeoModelKernelUnits::mm; + return m_rdb->brlModule()->getDouble("SENSORTOSENSORGAP") * Gaudi::Units::mm; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx index ae69ebf0f092..4edba82c1e48 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx @@ -8,7 +8,7 @@ #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <iostream> @@ -32,7 +32,7 @@ SCT_BarrelParameters::skiFirstStagger() const double SCT_BarrelParameters::skiRadialSep() const { - return m_rdb->brlSki()->getDouble("SKIRADIALSEP") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("SKIRADIALSEP") * Gaudi::Units::mm; } int @@ -44,7 +44,7 @@ SCT_BarrelParameters::modulesPerSki() const double SCT_BarrelParameters::skiZPosition(int index) const { - return m_rdb->brlSkiZ(index)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; + return m_rdb->brlSkiZ(index)->getDouble("ZPOSITION") * Gaudi::Units::mm; } int @@ -59,7 +59,7 @@ SCT_BarrelParameters::skiModuleIdentifier(int index) const double SCT_BarrelParameters::tilt(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("TILT") * GeoModelKernelUnits::degree; + return m_rdb->brlLayer(iLayer)->getDouble("TILT") * Gaudi::Units::degree; } int @@ -72,7 +72,7 @@ SCT_BarrelParameters::layerStereoSign(int iLayer) const double SCT_BarrelParameters::radius(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("RADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlLayer(iLayer)->getDouble("RADIUS") * Gaudi::Units::mm; } int @@ -84,7 +84,7 @@ SCT_BarrelParameters::skisPerLayer(int iLayer) const double SCT_BarrelParameters::layerBracketPhiOffset(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("BRACKETPHIOFFSET") * GeoModelKernelUnits::deg; + return m_rdb->brlLayer(iLayer)->getDouble("BRACKETPHIOFFSET") * Gaudi::Units::deg; } double @@ -93,9 +93,9 @@ SCT_BarrelParameters::layerPhiOfRefModule(int iLayer) const // For backward compatibility, if field is null return (90 - tilt) // as ref module is horizontal in old versions. if (m_rdb->brlLayer(iLayer)->isFieldNull("PHIOFREFMODULE")) { - return 90*GeoModelKernelUnits::deg - tilt(iLayer); + return 90*Gaudi::Units::deg - tilt(iLayer); } - return m_rdb->brlLayer(iLayer)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; + return m_rdb->brlLayer(iLayer)->getDouble("PHIOFREFMODULE") * Gaudi::Units::deg; } @@ -105,19 +105,19 @@ SCT_BarrelParameters::layerPhiOfRefModule(int iLayer) const double SCT_BarrelParameters::bracketThickness() const { - return m_rdb->brlSki()->getDouble("BRACKETTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("BRACKETTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::bracketWidth() const { - return m_rdb->brlSki()->getDouble("BRACKETWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("BRACKETWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::bracketLength() const { - return m_rdb->brlSki()->getDouble("BRACKETLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("BRACKETLENGTH") * Gaudi::Units::mm; } std::string @@ -132,19 +132,19 @@ SCT_BarrelParameters::bracketMaterial() const double SCT_BarrelParameters::doglegThickness() const { - return m_rdb->brlSki()->getDouble("DOGLEGTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("DOGLEGTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::doglegWidth() const { - return m_rdb->brlSki()->getDouble("DOGLEGWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("DOGLEGWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::doglegLength() const { - return m_rdb->brlSki()->getDouble("DOGLEGLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("DOGLEGLENGTH") * Gaudi::Units::mm; } std::string @@ -156,13 +156,13 @@ SCT_BarrelParameters::doglegMaterial() const double SCT_BarrelParameters::doglegOffsetX() const { - return m_rdb->brlSki()->getDouble("DOGLEGOFFSETX") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("DOGLEGOFFSETX") * Gaudi::Units::mm; } double SCT_BarrelParameters::doglegOffsetY() const { - return m_rdb->brlSki()->getDouble("DOGLEGOFFSETY") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("DOGLEGOFFSETY") * Gaudi::Units::mm; } // @@ -171,19 +171,19 @@ SCT_BarrelParameters::doglegOffsetY() const double SCT_BarrelParameters::coolingBlockThickness() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKTHICK") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKTHICK") * Gaudi::Units::mm; } double SCT_BarrelParameters::coolingBlockWidth() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::coolingBlockLength() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKLENGTH") * Gaudi::Units::mm; } std::string @@ -195,19 +195,19 @@ SCT_BarrelParameters::coolingBlockMaterial() const double SCT_BarrelParameters::coolingBlockOffsetX() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETX") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETX") * Gaudi::Units::mm; } double SCT_BarrelParameters::coolingBlockOffsetY() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETY") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETY") * Gaudi::Units::mm; } double SCT_BarrelParameters::coolingBlockOffsetZ() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETZ") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETZ") * Gaudi::Units::mm; } // @@ -216,7 +216,7 @@ SCT_BarrelParameters::coolingBlockOffsetZ() const double SCT_BarrelParameters::coolingPipeRadius() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPERADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPERADIUS") * Gaudi::Units::mm; } std::string @@ -228,13 +228,13 @@ SCT_BarrelParameters::coolingPipeMaterial() const double SCT_BarrelParameters::coolingPipeOffsetX() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETX") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETX") * Gaudi::Units::mm; } double SCT_BarrelParameters::coolingPipeOffsetY() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETY") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETY") * Gaudi::Units::mm; } @@ -244,13 +244,13 @@ SCT_BarrelParameters::coolingPipeOffsetY() const double SCT_BarrelParameters::powerTapeThickness() const { - return m_rdb->brlSki()->getDouble("POWERTAPETHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("POWERTAPETHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::powerTapeWidth() const { - return m_rdb->brlSki()->getDouble("POWERTAPEWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("POWERTAPEWIDTH") * Gaudi::Units::mm; } std::string @@ -262,7 +262,7 @@ SCT_BarrelParameters::powerTapeMaterial() const double SCT_BarrelParameters::powerTapeStartPointOffset() const { - return m_rdb->brlSki()->getDouble("POWERTAPESTARTOFFSET") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("POWERTAPESTARTOFFSET") * Gaudi::Units::mm; } // @@ -271,13 +271,13 @@ SCT_BarrelParameters::powerTapeStartPointOffset() const double SCT_BarrelParameters::harnessThickness() const { - return m_rdb->brlSki()->getDouble("HARNESSTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("HARNESSTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::harnessWidth() const { - return m_rdb->brlSki()->getDouble("HARNESSWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlSki()->getDouble("HARNESSWIDTH") * Gaudi::Units::mm; } std::string @@ -292,7 +292,7 @@ SCT_BarrelParameters::harnessMaterial() const double SCT_BarrelParameters::supportCylInnerRadius(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLINNERRAD") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLINNERRAD") * Gaudi::Units::mm; } double @@ -304,7 +304,7 @@ SCT_BarrelParameters::supportCylOuterRadius(int iLayer) const double SCT_BarrelParameters::supportCylDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLDELTAR") * Gaudi::Units::mm; } std::string @@ -320,13 +320,13 @@ SCT_BarrelParameters::supportCylMaterial(int iLayer) const double SCT_BarrelParameters::flangeDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAZ") * Gaudi::Units::mm; } double SCT_BarrelParameters::flangeDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAR") * Gaudi::Units::mm; } std::string @@ -341,13 +341,13 @@ SCT_BarrelParameters::flangeMaterial(int iLayer) const double SCT_BarrelParameters::clampDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAZ") * Gaudi::Units::mm; } double SCT_BarrelParameters::clampDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAR") * Gaudi::Units::mm; } std::string @@ -362,7 +362,7 @@ SCT_BarrelParameters::clampMaterial(int iLayer) const double SCT_BarrelParameters::coolingEndDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("COOLINGENDDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("COOLINGENDDELTAR") * Gaudi::Units::mm; } std::string @@ -377,7 +377,7 @@ SCT_BarrelParameters::coolingEndMaterial(int iLayer) const double SCT_BarrelParameters::closeOutDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLOSEOUTDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLOSEOUTDELTAZ") * Gaudi::Units::mm; } std::string @@ -392,19 +392,19 @@ SCT_BarrelParameters::closeOutMaterial(int iLayer) const double SCT_BarrelParameters::interLinkDeltaZ() const { - return m_rdb->brlServices()->getDouble("INTERLINKDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("INTERLINKDELTAZ") * Gaudi::Units::mm; } double SCT_BarrelParameters::interLinkInnerRadius() const { - return m_rdb->brlServices()->getDouble("INTERLINKINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("INTERLINKINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::interLinkOuterRadius() const { - return m_rdb->brlServices()->getDouble("INTERLINKOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("INTERLINKOUTERRADIUS") * Gaudi::Units::mm; } std::string @@ -417,9 +417,9 @@ double SCT_BarrelParameters::interLinkDeltaPhi() const { if (m_rdb->brlServices()->isFieldNull("INTERLINKDPHI")) { - return 360.*GeoModelKernelUnits::deg; + return 360.*Gaudi::Units::deg; } - return m_rdb->brlServices()->getDouble("INTERLINKDPHI") * GeoModelKernelUnits::deg; + return m_rdb->brlServices()->getDouble("INTERLINKDPHI") * Gaudi::Units::deg; } double @@ -428,7 +428,7 @@ SCT_BarrelParameters::interLinkPhiPos() const if (m_rdb->brlServices()->isFieldNull("INTERLINKPHIPOS")) { return 0.; } - return m_rdb->brlServices()->getDouble("INTERLINKPHIPOS") * GeoModelKernelUnits::deg; + return m_rdb->brlServices()->getDouble("INTERLINKPHIPOS") * Gaudi::Units::deg; } int @@ -446,7 +446,7 @@ SCT_BarrelParameters::bearingDeltaPhi() const if (m_rdb->brlServices()->isFieldNull("BEARINGDPHI")) { return 0.; } - return m_rdb->brlServices()->getDouble("BEARINGDPHI") * GeoModelKernelUnits::deg; + return m_rdb->brlServices()->getDouble("BEARINGDPHI") * Gaudi::Units::deg; } double @@ -455,7 +455,7 @@ SCT_BarrelParameters::bearingPhiPos() const if (m_rdb->brlServices()->isFieldNull("BEARINGPHIPOS")) { return 0.; } - return m_rdb->brlServices()->getDouble("BEARINGPHIPOS") * GeoModelKernelUnits::deg; + return m_rdb->brlServices()->getDouble("BEARINGPHIPOS") * Gaudi::Units::deg; } int @@ -489,13 +489,13 @@ SCT_BarrelParameters::includeFSI() const double SCT_BarrelParameters::fsiFlangeInnerRadius() const { - return m_rdb->brlFSI()->getDouble("FLANGEINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("FLANGEINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiFlangeOuterRadius() const { - return m_rdb->brlFSI()->getDouble("FLANGEOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("FLANGEOUTERRADIUS") * Gaudi::Units::mm; } std::string @@ -507,7 +507,7 @@ SCT_BarrelParameters::fsiFlangeMaterial() const double SCT_BarrelParameters::fsiFibreMaskDeltaR() const { - return m_rdb->brlFSI()->getDouble("FIBREMASKDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("FIBREMASKDELTAR") * Gaudi::Units::mm; } std::string @@ -519,19 +519,19 @@ SCT_BarrelParameters::fsiFibreMaskMaterial() const double SCT_BarrelParameters::fsiEndJewelRadialWidth() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELRADIALWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELRADIALWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiEndJewelRPhiWidth() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELRPHIWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELRPHIWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiEndJewelLength() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELLENGTH") * Gaudi::Units::mm; } std::string @@ -549,31 +549,31 @@ SCT_BarrelParameters::fsiEndJewelNRepeat(int iLayer) const double SCT_BarrelParameters::fsiEndJewelPhi(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELPHI") * GeoModelKernelUnits::degree; + return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELPHI") * Gaudi::Units::degree; } double SCT_BarrelParameters::fsiEndJewelZ(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELZ") * GeoModelKernelUnits::mm; + return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELZ") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiScorpionRadialWidth() const { - return m_rdb->brlFSI()->getDouble("SCORPIONRADIALWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONRADIALWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiScorpionRPhiWidth() const { - return m_rdb->brlFSI()->getDouble("SCORPIONRPHIWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONRPHIWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::fsiScorpionLength() const { - return m_rdb->brlFSI()->getDouble("SCORPIONLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONLENGTH") * Gaudi::Units::mm; } std::string @@ -591,13 +591,13 @@ SCT_BarrelParameters::fsiScorpionNRepeat(int iLayer) const double SCT_BarrelParameters::fsiScorpionPhi(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONPHI") * GeoModelKernelUnits::degree; + return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONPHI") * Gaudi::Units::degree; } double SCT_BarrelParameters::fsiScorpionZ(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONZ") * GeoModelKernelUnits::mm; + return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONZ") * Gaudi::Units::mm; } @@ -607,19 +607,19 @@ SCT_BarrelParameters::fsiScorpionZ(int iLayer) const double SCT_BarrelParameters::spiderDeltaZ() const { - return m_rdb->brlServices()->getDouble("SPIDERDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("SPIDERDELTAZ") * Gaudi::Units::mm; } double SCT_BarrelParameters::spiderInnerRadius() const { - return m_rdb->brlServices()->getDouble("SPIDERINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("SPIDERINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::spiderOuterRadius() const { - return m_rdb->brlServices()->getDouble("SPIDEROUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("SPIDEROUTERRADIUS") * Gaudi::Units::mm; } std::string @@ -634,85 +634,85 @@ SCT_BarrelParameters::spiderMaterial() const double SCT_BarrelParameters::thermalShieldInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldEndZMax() const { - return m_rdb->brlThermalShield()->getDouble("ENDZMAX") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("ENDZMAX") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldCylTotalThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLTOTALTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("CYLTOTALTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldCylInnerWallThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLINNERWALLTHICK") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("CYLINNERWALLTHICK") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldCylOuterWallThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLOUTERWALLTHICK") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("CYLOUTERWALLTHICK") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldSpacerZWidth() const { - return m_rdb->brlThermalShield()->getDouble("SPACERZWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("SPACERZWIDTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldFirstSpacerZMin() const { - return m_rdb->brlThermalShield()->getDouble("FIRSTSPACERZMIN") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("FIRSTSPACERZMIN") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldEndCapCylThickness() const { - return m_rdb->brlThermalShield()->getDouble("ENDCAPCYLTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("ENDCAPCYLTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldEndCapThickness() const { - return m_rdb->brlThermalShield()->getDouble("ENDCAPTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("ENDCAPTHICKNESS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldBulkheadInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("BULKHEADINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("BULKHEADINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldBulkheadOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("BULKHEADOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("BULKHEADOUTERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldEndPanelInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("ENDPANELINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("ENDPANELINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::thermalShieldEndPanelOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("ENDPANELOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlThermalShield()->getDouble("ENDPANELOUTERRADIUS") * Gaudi::Units::mm; } std::string @@ -745,19 +745,19 @@ SCT_BarrelParameters::thermalShieldMaterialInnerSect() const double SCT_BarrelParameters::emiShieldInnerRadius() const { - return m_rdb->brlServices()->getDouble("EMIINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("EMIINNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::emiShieldDeltaR() const { - return m_rdb->brlServices()->getDouble("EMIDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("EMIDELTAR") * Gaudi::Units::mm; } double SCT_BarrelParameters::emiShieldZMax() const { - return m_rdb->brlServices()->getDouble("EMIZMAX") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("EMIZMAX") * Gaudi::Units::mm; } std::string @@ -769,13 +769,13 @@ SCT_BarrelParameters::emiShieldMaterial() const double SCT_BarrelParameters::emiJointDeltaR() const { - return m_rdb->brlServices()->getDouble("EMIJOINTDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("EMIJOINTDELTAR") * Gaudi::Units::mm; } double SCT_BarrelParameters::emiJointRPhi() const { - return m_rdb->brlServices()->getDouble("EMIJOINTRPHI") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("EMIJOINTRPHI") * Gaudi::Units::mm; } std::string @@ -792,25 +792,25 @@ SCT_BarrelParameters::emiJointMaterial() const double SCT_BarrelParameters::pixelAttachmentInnerRadius() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHINNERRAD") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHINNERRAD") * Gaudi::Units::mm; } double SCT_BarrelParameters::pixelAttachmentOuterRadius() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHOUTERRAD") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHOUTERRAD") * Gaudi::Units::mm; } double SCT_BarrelParameters::pixelAttachmentZMin() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHZMIN") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHZMIN") * Gaudi::Units::mm; } double SCT_BarrelParameters::pixelAttachmentDeltaZ() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHDELTAZ") * GeoModelKernelUnits::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHDELTAZ") * Gaudi::Units::mm; } std::string @@ -831,31 +831,31 @@ SCT_BarrelParameters::numLayers() const double SCT_BarrelParameters::barrelInnerRadius() const { - return m_rdb->brlGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlGeneral()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::barrelOuterRadius() const { - return m_rdb->brlGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->brlGeneral()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_BarrelParameters::barrelLength() const { - return m_rdb->brlGeneral()->getDouble("LENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlGeneral()->getDouble("LENGTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::cylinderLength() const { - return m_rdb->brlGeneral()->getDouble("CYLINDERLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlGeneral()->getDouble("CYLINDERLENGTH") * Gaudi::Units::mm; } double SCT_BarrelParameters::activeLength() const { - return m_rdb->brlGeneral()->getDouble("ACTIVELENGTH") * GeoModelKernelUnits::mm; + return m_rdb->brlGeneral()->getDouble("ACTIVELENGTH") * Gaudi::Units::mm; } bool diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx index cf2f14e12963..cee35aa92f6f 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx @@ -3,7 +3,7 @@ */ #include "SCT_GeoModel/SCT_ComponentFactory.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <string> @@ -13,7 +13,7 @@ using InDetDD::SCT_DetectorManager; SCT_DetectorManager * SCT_ComponentFactory::s_detectorManager = 0; const SCT_GeometryManager * SCT_ComponentFactory::s_geometryManager = 0; -double SCT_ComponentFactory::s_epsilon = 1.0e-6 * GeoModelKernelUnits::mm; +double SCT_ComponentFactory::s_epsilon = 1.0e-6 * Gaudi::Units::mm; SCT_ComponentFactory::SCT_ComponentFactory(const std::string & name) : m_name(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx index 3a9fdd418ed6..94b2350d3ac8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx @@ -50,8 +50,8 @@ #include "GaudiKernel/ISvcLocator.h" #include "GeoModelKernel/GeoDefinitions.h" +#include "GaudiKernel/SystemOfUnits.h" -#include "GeoModelKernel/Units.h" #include <iostream> @@ -246,7 +246,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world) GeoVPhysVol * forwardMinusPV = sctForwardMinus.build(idFwdMinus); GeoTrf::Transform3D rot; - rot = GeoTrf::RotateY3D(180 * GeoModelKernelUnits::degree); + rot = GeoTrf::RotateY3D(180 * Gaudi::Units::degree); GeoTrf::Transform3D fwdTransformMinus(sctTransform * sctGeneral->partTransform(forwardMinusLabel) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx index 5b0b4e3c9bcd..da4786130076 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx @@ -6,7 +6,7 @@ #include "SCT_GeoModel/SCT_FSIHelper.h" #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -66,8 +66,8 @@ FSIHelper::fill() // Loop through location types for (int iLocIndex = 0; iLocIndex < m_rdb->fwdFSILocationSize(); iLocIndex++) { std::string locType = m_rdb->fwdFSILocation(iLocIndex)->getString("LOCTYPE"); - double radius = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCR") * GeoModelKernelUnits::mm; - double rphi = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCPHI") * GeoModelKernelUnits::deg; + double radius = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCR") * Gaudi::Units::mm; + double rphi = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCPHI") * Gaudi::Units::deg; int side = m_rdb->fwdFSILocation(iLocIndex)->getInt("SIDE"); FSILocation * location = new FSILocation(locType, radius, rphi, side); m_locationTypes[locType] = location; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx index 9282e83020c2..615d618c2b0d 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx @@ -32,7 +32,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -224,7 +224,7 @@ SCT_Forward::build(SCT_Identifier id) const // Calculate radius to start placing power tapes. This is half way bewteen outer radius // of support fram and outer radius of forward envelope. // The -1 mm is to avoid a clash with the thermal shield. - double innerRadiusPowerTapes = 0.5*(supportFrame.outerRadius() + m_outerRadius) - 1*GeoModelKernelUnits::mm; + double innerRadiusPowerTapes = 0.5*(supportFrame.outerRadius() + m_outerRadius) - 1*Gaudi::Units::mm; // Inner radius of cylinder representing power tapes. Gets incremented for each wheel. double rStart = innerRadiusPowerTapes; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx index d1617a10e14e..fb09c3900adb 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx @@ -9,7 +9,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -31,55 +31,55 @@ SCT_ForwardModuleParameters::fwdSensorNumWafers(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorThickness(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHNEAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHNEAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHNEAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHNEAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorLengthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorLengthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorRadiusNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSNEAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSNEAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorRadiusFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSFAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSFAR") * Gaudi::Units::mm; } std::string @@ -109,19 +109,19 @@ SCT_ForwardModuleParameters::fwdSensorActiveFar(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorActiveHalfLengthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHNEAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHNEAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorActiveHalfLengthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorAngularPitch(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * GeoModelKernelUnits::radian; + return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * Gaudi::Units::radian; } int @@ -149,37 +149,37 @@ SCT_ForwardModuleParameters::fwdSensorStripShift(int iModuleType) const double SCT_ForwardModuleParameters::fwdHybridThickness() const { - return m_rdb->fwdHybrid()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdHybridInnerWidth() const { - return m_rdb->fwdHybrid()->getDouble("INNERWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("INNERWIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdHybridOuterWidth() const { - return m_rdb->fwdHybrid()->getDouble("OUTERWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("OUTERWIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdHybridLength() const { - return m_rdb->fwdHybrid()->getDouble("LENGTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("LENGTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdHybridLengthToCorner() const { - return m_rdb->fwdHybrid()->getDouble("LENGTHTOCORNER") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("LENGTHTOCORNER") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdHybridMountPointToInnerEdge() const { - return m_rdb->fwdHybrid()->getDouble("MOUNTPOINTTOINEDGE") * GeoModelKernelUnits::mm; + return m_rdb->fwdHybrid()->getDouble("MOUNTPOINTTOINEDGE") * Gaudi::Units::mm; } std::string @@ -194,26 +194,26 @@ SCT_ForwardModuleParameters::fwdHybridMaterial() const double SCT_ForwardModuleParameters::fwdSpineThickness(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineEndToModuleCenter(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("ENDTOMODULECENTER") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("ENDTOMODULECENTER") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineEndLocatorToEndMount(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("ENDLOCATORTOENDMOUNT") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("ENDLOCATORTOENDMOUNT") * Gaudi::Units::mm; } @@ -230,55 +230,55 @@ SCT_ForwardModuleParameters::fwdSpineMaterial(int iModuleType) const double SCT_ForwardModuleParameters::fwdSubSpineInnerWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERWIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineInnerLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERLENGTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineInnerRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERREFDIST") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERREFDIST") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEWIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLELENGTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLELENGTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEREFDIST") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEREFDIST") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERWIDTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERWIDTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERLENGTH") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERLENGTH") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERREFDIST") * GeoModelKernelUnits::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERREFDIST") * Gaudi::Units::mm; } std::string @@ -301,7 +301,7 @@ SCT_ForwardModuleParameters::fwdModuleNumTypes() const double SCT_ForwardModuleParameters::fwdModuleStereoAngle(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; + return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * Gaudi::Units::milliradian; } int @@ -323,25 +323,25 @@ SCT_ForwardModuleParameters::fwdModuleUpperSideNumber(int iModuleType) const double SCT_ForwardModuleParameters::fwdModuleGlueThickness(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("GLUETHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("GLUETHICKNESS") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdModuleMountPoint(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("MOUNTPOINT") * GeoModelKernelUnits::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("MOUNTPOINT") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdModuleDistBtwMountPoints(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("DISTBTWMOUNTPOINTS") * GeoModelKernelUnits::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("DISTBTWMOUNTPOINTS") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdModuleHybridEdgeToSpine(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("HYBRIDEDGETOSPINE")*GeoModelKernelUnits::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("HYBRIDEDGETOSPINE")*Gaudi::Units::mm; } bool @@ -367,19 +367,19 @@ SCT_ForwardModuleParameters::fwdModuleConnectorPresent() const double SCT_ForwardModuleParameters::fwdModuleConnectorDeltaR() const { - return m_rdb->fwdModuleConnector()->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdModuleConnector()->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdModuleConnectorRPhi() const { - return m_rdb->fwdModuleConnector()->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdModuleConnector()->getDouble("RPHI") * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdModuleConnectorThickness() const { - return m_rdb->fwdModuleConnector()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdModuleConnector()->getDouble("THICKNESS") * Gaudi::Units::mm; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx index a56ae8177ae5..80fc94334cbb 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx @@ -10,7 +10,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "SCT_GeoModel/SCT_FSIHelper.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <cmath> @@ -38,13 +38,13 @@ SCT_ForwardParameters::fwdRingNumModules(int iRing) const double SCT_ForwardParameters::fwdRingModuleStagger(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * GeoModelKernelUnits::mm; + return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingPhiOfRefModule(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; + return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * Gaudi::Units::deg; } @@ -57,7 +57,7 @@ SCT_ForwardParameters::fwdRingUsualRingSide(int iRing) const double SCT_ForwardParameters::fwdRingDistToDiscCenter(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("RINGTODISCCENTER") * GeoModelKernelUnits::mm; + return m_rdb->fwdRing(iRing)->getDouble("RINGTODISCCENTER") * Gaudi::Units::mm; } @@ -68,7 +68,7 @@ SCT_ForwardParameters::fwdRingDistToDiscCenter(int iRing) const double SCT_ForwardParameters::fwdWheelZPosition(int iWheel) const { - return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; + return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * Gaudi::Units::mm; } // Returns +/-1 @@ -167,19 +167,19 @@ SCT_ForwardParameters::fwdWheelModuleType(int iWheel, int iRing, int ec) const double SCT_ForwardParameters::fwdDiscSupportInnerRadius() const { - return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscSupportOuterRadius() const { - return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscSupportThickness() const { - return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * Gaudi::Units::mm; } std::string @@ -206,7 +206,7 @@ SCT_ForwardParameters::fwdPatchPanelType(int iLoc) const double SCT_ForwardParameters::fwdPatchPanelLocAngle(int iLoc) const { - return m_rdb->fwdPatchPanelLoc(iLoc)->getDouble("LOCANGLE") * GeoModelKernelUnits::degree; + return m_rdb->fwdPatchPanelLoc(iLoc)->getDouble("LOCANGLE") * Gaudi::Units::degree; } bool @@ -224,26 +224,26 @@ SCT_ForwardParameters::fwdNumPatchPanelTypes() const double SCT_ForwardParameters::fwdPatchPanelThickness(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPatchPanelMidRadius(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("MIDRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("MIDRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPatchPanelDeltaR(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPatchPanelRPhi(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("RPHI") * Gaudi::Units::mm; } std::string @@ -269,19 +269,19 @@ SCT_ForwardParameters::fwdPPConnectorPresent() const double SCT_ForwardParameters::fwdPPConnectorThickness() const { - return m_rdb->fwdPPConnector()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPConnector()->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPPConnectorDeltaR() const { - return m_rdb->fwdPPConnector()->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPConnector()->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPPConnectorRPhi() const { - return m_rdb->fwdPPConnector()->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPConnector()->getDouble("RPHI") * Gaudi::Units::mm; } std::string @@ -307,19 +307,19 @@ SCT_ForwardParameters::fwdPPCoolingPresent() const double SCT_ForwardParameters::fwdPPCoolingThickness() const { - return m_rdb->fwdPPCooling()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPCooling()->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPPCoolingDeltaR() const { - return m_rdb->fwdPPCooling()->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPCooling()->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdPPCoolingRPhi() const { - return m_rdb->fwdPPCooling()->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdPPCooling()->getDouble("RPHI") * Gaudi::Units::mm; } std::string @@ -347,25 +347,25 @@ SCT_ForwardParameters::fwdCoolingBlockMainOrSecondary(int iType) const double SCT_ForwardParameters::fwdCoolingBlockDeltaR(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdCoolingBlockRPhi(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("RPHI") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdCoolingBlockThickness(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdCoolingBlockOffsetFromDisc(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("OFFSETFROMDISC") * GeoModelKernelUnits::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("OFFSETFROMDISC") * Gaudi::Units::mm; } std::string @@ -381,19 +381,19 @@ SCT_ForwardParameters::fwdCoolingBlockMaterial(int iType) const double SCT_ForwardParameters::fwdDiscPowerTapeInnerRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEINNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscPowerTapeOuterRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEOUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscPowerTapeThickness(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPETHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPETHICKNESS") * Gaudi::Units::mm; } std::string @@ -410,19 +410,19 @@ SCT_ForwardParameters::fwdDiscPowerTapeMaterial(int iRing) const double SCT_ForwardParameters::fwdRingCoolingInnerRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGINNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGINNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingCoolingOuterRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGOUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGOUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingCoolingThickness(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGTHICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGTHICKNESS") * Gaudi::Units::mm; } std::string @@ -448,13 +448,13 @@ SCT_ForwardParameters::fwdDiscFixationPresent() const double SCT_ForwardParameters::fwdDiscFixationThickness() const { - return m_rdb->fwdDiscFixation()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdDiscFixation()->getDouble("THICKNESS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscFixationRadius() const { - return m_rdb->fwdDiscFixation()->getDouble("RADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdDiscFixation()->getDouble("RADIUS") * Gaudi::Units::mm; } std::string @@ -469,25 +469,25 @@ SCT_ForwardParameters::fwdDiscFixationMaterial() const double SCT_ForwardParameters::fwdSupportFrameRadialThickness() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEDELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEDELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdSupportFrameInnerRadius() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEINNERRAD") * GeoModelKernelUnits::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEINNERRAD") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdSupportFrameZMin() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMIN") * GeoModelKernelUnits::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMIN") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdSupportFrameZMax() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMAX") * GeoModelKernelUnits::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMAX") * Gaudi::Units::mm; } std::string @@ -502,7 +502,7 @@ SCT_ForwardParameters::fwdSupportFrameMaterial() const double SCT_ForwardParameters::fwdCoolingPipeRadius() const { - return m_rdb->fwdServices()->getDouble("COOLINGPIPERADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdServices()->getDouble("COOLINGPIPERADIUS") * Gaudi::Units::mm; } std::string @@ -517,7 +517,7 @@ SCT_ForwardParameters::fwdCoolingPipeMaterial() const double SCT_ForwardParameters::fwdPowerTapeCrossSectArea() const { - return m_rdb->fwdServices()->getDouble("POWERTAPECROSSSECT") * GeoModelKernelUnits::mm2; + return m_rdb->fwdServices()->getDouble("POWERTAPECROSSSECT") * Gaudi::Units::mm2; } @@ -539,21 +539,21 @@ SCT_ForwardParameters::fwdFSINumGeomTypes() const double SCT_ForwardParameters::fwdFSIGeomDeltaR(int iType) const { - return m_rdb->fwdFSIType(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdFSIType(iType)->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdFSIGeomRPhi(int iType) const { - return m_rdb->fwdFSIType(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdFSIType(iType)->getDouble("RPHI") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdFSIGeomThickness(int iType) const { // Fix for SCT-DC3-03. May be removed when ATLAS-DC3-07 is obsolete. - if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 26*GeoModelKernelUnits::mm; - return m_rdb->fwdFSIType(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 26*Gaudi::Units::mm; + return m_rdb->fwdFSIType(iType)->getDouble("THICKNESS") * Gaudi::Units::mm; } std::string @@ -566,8 +566,8 @@ double SCT_ForwardParameters::fwdFSIGeomZOffset(int iType) const { // Fix for SCT-DC3-03. May be removed when ATLAS-DC3-07 is obsolete. - if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 22*GeoModelKernelUnits::mm; - return m_rdb->fwdFSIType(iType)->getDouble("ZOFFSET") * GeoModelKernelUnits::mm; + if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 22*Gaudi::Units::mm; + return m_rdb->fwdFSIType(iType)->getDouble("ZOFFSET") * Gaudi::Units::mm; } @@ -616,7 +616,7 @@ SCT_ForwardParameters::fwdCylinderServiceLocName(int iLoc) const double SCT_ForwardParameters::fwdCylinderServiceLocAngle(int iLoc) const { - return m_rdb->fwdCylServLoc(iLoc)->getDouble("LOCANGLE") * GeoModelKernelUnits::degree; + return m_rdb->fwdCylServLoc(iLoc)->getDouble("LOCANGLE") * Gaudi::Units::degree; } int @@ -640,13 +640,13 @@ SCT_ForwardParameters::fwdCylinderServiceMaterial(int iType) const double SCT_ForwardParameters::fwdCylinderServiceDeltaR(int iType) const { - return m_rdb->fwdCylServ(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; + return m_rdb->fwdCylServ(iType)->getDouble("DELTAR") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdCylinderServiceRPhi(int iType) const { - return m_rdb->fwdCylServ(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; + return m_rdb->fwdCylServ(iType)->getDouble("RPHI") * Gaudi::Units::mm; } // @@ -667,25 +667,25 @@ SCT_ForwardParameters::fwdThermalShieldMaterial(int iElement) const double SCT_ForwardParameters::fwdThermalShieldInnerRadius(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdThermalShieldOuterRadius(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdThermalShieldZMin(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("ZMIN") * GeoModelKernelUnits::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("ZMIN") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdThermalShieldZMax(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("ZMAX") * GeoModelKernelUnits::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("ZMAX") * Gaudi::Units::mm; } @@ -701,31 +701,31 @@ SCT_ForwardParameters::fwdNumWheels() const double SCT_ForwardParameters::fwdInnerRadius() const { - return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdOuterRadius() const { - return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdZMin() const { - return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; + return m_rdb->fwdGeneral()->getDouble("ZMIN") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdZMax() const { - return m_rdb->fwdGeneral()->getDouble("ZMAX") * GeoModelKernelUnits::mm; + return m_rdb->fwdGeneral()->getDouble("ZMAX") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdTrtGapPos() const { - return m_rdb->fwdGeneral()->getDouble("TRTGAPPOS") * GeoModelKernelUnits::mm; + return m_rdb->fwdGeneral()->getDouble("TRTGAPPOS") * Gaudi::Units::mm; } // @@ -751,19 +751,19 @@ SCT_ForwardParameters::fwdOptoHarnessDiscType(int index) const double SCT_ForwardParameters::fwdOptoHarnessInnerRadius(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdOptoHarnessOuterRadius(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdOptoHarnessThickness(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("THICKNESS") * Gaudi::Units::mm; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx index 2365854c61df..bd06f571ebd0 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <cmath> @@ -47,13 +47,13 @@ GeoVPhysVol * SCT_FwdCoolingPipe::build() { // Calculate the dimensions. - // area = GeoModelKernelUnits::pi*(pipeRadius)^2 * numPipes - // also area = 2*GeoModelKernelUnits::pi*r_ave*delta_r approx= 2 * GeoModelKernelUnits::pi * rMin * delta_r + // area = Gaudi::Units::pi*(pipeRadius)^2 * numPipes + // also area = 2*Gaudi::Units::pi*r_ave*delta_r approx= 2 * Gaudi::Units::pi * rMin * delta_r // solve for delta_r // m_thickness = delta_r - double area = GeoModelKernelUnits::pi * sqr(m_pipeRadius) * m_numPipes; - m_thickness = area/(2. * GeoModelKernelUnits::pi * m_innerRadius); + double area = Gaudi::Units::pi * sqr(m_pipeRadius) * m_numPipes; + m_thickness = area/(2. * Gaudi::Units::pi * m_innerRadius); m_outerRadius = m_innerRadius + m_thickness; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx index 75544a454038..7d36ba704b34 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx @@ -17,11 +17,8 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -136,7 +133,7 @@ SCT_FwdCylinderServices::build() double coolingDPhi = m_coolingRPhi / coolingRmin; const GeoCons* coolingShape = new GeoCons(coolingRmin, coolingRmin, coolingRmax1, coolingRmax2, 0.5 * m_length, - -0.5 * coolingDPhi * GeoModelKernelUnits::radian, coolingDPhi * GeoModelKernelUnits::radian); + -0.5 * coolingDPhi * Gaudi::Units::radian, coolingDPhi * Gaudi::Units::radian); const GeoLogVol * coolingLog = new GeoLogVol("CoolingPipe", coolingShape, materials.getMaterialForVolume(m_coolingMaterialName, coolingShape->volume())); GeoPhysVol * coolingPipe = new GeoPhysVol(coolingLog); @@ -146,7 +143,7 @@ SCT_FwdCylinderServices::build() double lmtRmax2 = lmtRmin + 1.8 * m_lmtDeltaR; double lmtDPhi = m_lmtRPhi / lmtRmin; const GeoCons* lmtShape = new GeoCons(lmtRmin, lmtRmin, lmtRmax1, lmtRmax2, 0.5 * m_length, - -0.5 * lmtDPhi * GeoModelKernelUnits::radian, lmtDPhi * GeoModelKernelUnits::radian); + -0.5 * lmtDPhi * Gaudi::Units::radian, lmtDPhi * Gaudi::Units::radian); const GeoLogVol * lmtLog = new GeoLogVol("LMT", lmtShape, materials.getMaterialForVolume(m_lmtMaterialName,lmtShape->volume())); GeoPhysVol * lmt = new GeoPhysVol(lmtLog); @@ -156,7 +153,7 @@ SCT_FwdCylinderServices::build() double lmtCoolingDPhi = m_lmtCoolingRPhi / lmtCoolingRmin; double lmtLength = m_length - 2. * m_lmtCoolingZOffset; const GeoTubs* lmtCoolingShape = new GeoTubs(lmtCoolingRmin, lmtCoolingRmax, 0.5 * lmtLength, - -0.5 * lmtCoolingDPhi * GeoModelKernelUnits::radian, lmtCoolingDPhi * GeoModelKernelUnits::radian); + -0.5 * lmtCoolingDPhi * Gaudi::Units::radian, lmtCoolingDPhi * Gaudi::Units::radian); const GeoLogVol * lmtCoolingLog = new GeoLogVol("LMTCooling", lmtCoolingShape, materials.getMaterialForVolume(m_lmtCoolingMaterialName,lmtCoolingShape->volume())); GeoPhysVol * lmtCooling = new GeoPhysVol(lmtCoolingLog); @@ -166,7 +163,7 @@ SCT_FwdCylinderServices::build() double fibreRmax2 = fibreRmin + 1.8 * m_fibreDeltaR; double fibreDPhi = m_fibreRPhi / fibreRmin; const GeoCons* fibreShape = new GeoCons(fibreRmin, fibreRmin, fibreRmax1, fibreRmax2, 0.5 * m_length, - -0.5 * fibreDPhi * GeoModelKernelUnits::radian, fibreDPhi * GeoModelKernelUnits::radian); + -0.5 * fibreDPhi * Gaudi::Units::radian, fibreDPhi * Gaudi::Units::radian); const GeoLogVol * fibreLog = new GeoLogVol("Fibres", fibreShape, materials.getMaterialForVolume(m_fibreMaterialName,fibreShape->volume())); GeoPhysVol * fibres = new GeoPhysVol(fibreLog); @@ -175,7 +172,7 @@ SCT_FwdCylinderServices::build() double nPipeRmax = nPipeRmin + m_nPipeDeltaR; double nPipeDPhi = m_nPipeRPhi / nPipeRmin; const GeoTubs* nPipeShape = new GeoTubs(nPipeRmin, nPipeRmax, 0.5 * m_length, - -0.5 * nPipeDPhi * GeoModelKernelUnits::radian, nPipeDPhi * GeoModelKernelUnits::radian); + -0.5 * nPipeDPhi * Gaudi::Units::radian, nPipeDPhi * Gaudi::Units::radian); const GeoLogVol * nPipeLog = new GeoLogVol("NPipe", nPipeShape, materials.getMaterialForVolume(m_nPipeMaterialName,nPipeShape->volume())); GeoPhysVol * nPipe = new GeoPhysVol(nPipeLog); @@ -184,7 +181,7 @@ SCT_FwdCylinderServices::build() double railRmax = railRmin + m_railDeltaR; double railDPhi = m_railRPhi / railRmin; const GeoTubs* railShape = new GeoTubs(railRmin, railRmax, - 0.5 * m_length, -0.5 * railDPhi * GeoModelKernelUnits::radian, railDPhi * GeoModelKernelUnits::radian); + 0.5 * m_length, -0.5 * railDPhi * Gaudi::Units::radian, railDPhi * Gaudi::Units::radian); const GeoLogVol * railLog = new GeoLogVol("Rail", railShape, materials.getMaterialForVolume(m_railMaterialName,railShape->volume())); GeoPhysVol * rail = new GeoPhysVol(railLog); @@ -193,16 +190,16 @@ SCT_FwdCylinderServices::build() // Cooling pipe for (unsigned int iLoc = 0; iLoc < m_coolingLocAngle.size(); iLoc++) { - double coolingAngle = m_coolingLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; - // std::cout << "Placing cooling pipe at " << coolingAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + double coolingAngle = m_coolingLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; + // std::cout << "Placing cooling pipe at " << coolingAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(coolingAngle))); cylinder->add(coolingPipe); } // Low Mass Tapes and LMT Cooling are at same phi positions for (unsigned int iLoc = 0; iLoc < m_lmtLocAngle.size(); iLoc++) { - double lmtAngle = m_lmtLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; - // std::cout << "Placing LMT at " << lmtAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + double lmtAngle = m_lmtLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; + // std::cout << "Placing LMT at " << lmtAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle))); cylinder->add(lmt); cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle)*GeoTrf::TranslateZ3D(m_lmtCoolingZOffset))); @@ -211,24 +208,24 @@ SCT_FwdCylinderServices::build() // Fibres are between pairs of LMTs for (unsigned int iLoc = 0; iLoc < m_fibreLocAngle.size(); iLoc++) { - double fibreAngle = m_fibreLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; - // std::cout << "Placing fibres at " << fibreAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + double fibreAngle = m_fibreLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; + // std::cout << "Placing fibres at " << fibreAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(fibreAngle))); cylinder->add(fibres); } // N2 Pipes for (unsigned int iLoc = 0; iLoc < m_nPipeLocAngle.size(); iLoc++) { - double nPipeAngle = m_nPipeLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; - // std::cout << "Placing N2 pipe at " << nPipeAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + double nPipeAngle = m_nPipeLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; + // std::cout << "Placing N2 pipe at " << nPipeAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(nPipeAngle))); cylinder->add(nPipe); } // Rails for (unsigned int iLoc = 0; iLoc < m_railLocAngle.size(); iLoc++) { - double railAngle = m_railLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; - // std::cout << "Placing rail at " << railAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + double railAngle = m_railLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; + // std::cout << "Placing rail at " << railAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(railAngle))); cylinder->add(rail); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx index 761b82e5d9d4..fb526e58d6a8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx @@ -28,12 +28,10 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelKernel/GeoDefinitions.h" - - #include <cmath> @@ -54,9 +52,9 @@ SCT_FwdHybrid::getParameters() m_materialName = parameters->fwdHybridMaterial(); - //double GeoModelKernelUnits::radlength; - //GeoModelKernelUnits::radlength = 18.8 * GeoModelKernelUnits::cm; - // [GeoModelKernelUnits::cm] for carbon (Partickle Physics Booklet) + //double Gaudi::Units::radlength; + //Gaudi::Units::radlength = 18.8 * Gaudi::Units::cm; + // [Gaudi::Units::cm] for carbon (Partickle Physics Booklet) m_thickness = parameters->fwdHybridThickness(); m_thickness2 = m_thickness; @@ -105,7 +103,7 @@ GeoVPhysVol * SCT_FwdHybrid::build() position = -1 * position; }; double rotation = 0.; - if (m_ringType == 0) rotation = 180. * GeoModelKernelUnits::deg; + if (m_ringType == 0) rotation = 180. * Gaudi::Units::deg; const GeoShape & hybridPos2 = (*hybridShape1 << GeoTrf::RotateX3D(rotation) << GeoTrf::TranslateZ3D(position) ); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx index 7c5baa4f2af3..cd5b5cacd35c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx @@ -38,10 +38,7 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" - - - +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <sstream> @@ -104,42 +101,42 @@ const GeoLogVol * SCT_FwdModule::preBuild() const SCT_GeneralParameters * generalParameters = geometryManager()->generalParameters(); double safety = generalParameters->safety(); - double safetyTmp = safety * GeoModelKernelUnits::cm; // For compatibility with minor bug in older version - safety already in CLHEP units; + double safetyTmp = safety * Gaudi::Units::cm; // For compatibility with minor bug in older version - safety already in CLHEP units; - // module_length = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd2 + 0.33 ) * GeoModelKernelUnits::cm + safety; + // module_length = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd2 + 0.33 ) * Gaudi::Units::cm + safety; // Distance from outer bybrid edge to outer spine edge. - // FIXME: The 1.05GeoModelKernelUnits::mm is not needed - double moduleLength = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + m_spine->moduleCenterToEnd() + 1.05 * GeoModelKernelUnits::mm; + // FIXME: The 1.05Gaudi::Units::mm is not needed + double moduleLength = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + m_spine->moduleCenterToEnd() + 1.05 * Gaudi::Units::mm; m_length = moduleLength + safety; // We add a bit of safety for the envelope - // module_thickness = (zhyb->hybz0 * 2 + safety) * GeoModelKernelUnits::cm; + // module_thickness = (zhyb->hybz0 * 2 + safety) * Gaudi::Units::cm; double sensorEnvelopeThickness = 2 * m_sensor->thickness() + m_spine->thickness() + 2 * m_glueThickness; m_thickness = std::max(sensorEnvelopeThickness, m_hybrid->thickness()); - // module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l + 0.325) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 - // module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 + // module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l + 0.325) * 2.+ 0.7 + safety)*Gaudi::Units::cm; // upto to NOVA_760 + // module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 0.7 + safety)*Gaudi::Units::cm; // upto to NOVA_760 - //module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; - //module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; + //module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l) * 2.+ 0.7 + safety)*Gaudi::Units::cm; + //module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 0.7 + safety)*Gaudi::Units::cm; - m_widthInner = (m_spine->width() + 2 * m_subspineL->innerWidth() + 0.7*GeoModelKernelUnits::cm) + safetyTmp; - m_widthOuter = (m_spine->width() + 2 * m_subspineL->outerWidth() + 0.7*GeoModelKernelUnits::cm) + safetyTmp; + m_widthInner = (m_spine->width() + 2 * m_subspineL->innerWidth() + 0.7*Gaudi::Units::cm) + safetyTmp; + m_widthOuter = (m_spine->width() + 2 * m_subspineL->outerWidth() + 0.7*Gaudi::Units::cm) + safetyTmp; if (m_ringType == 3 ) { - // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 1.6 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 - // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 1.6 + safety)*GeoModelKernelUnits::cm; - m_widthOuter = m_spine->width() + 2 * m_subspineL->outerWidth() + 1.6*GeoModelKernelUnits::cm + safetyTmp; + // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 1.6 + safety)*Gaudi::Units::cm; // upto to NOVA_760 + // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 1.6 + safety)*Gaudi::Units::cm; + m_widthOuter = m_spine->width() + 2 * m_subspineL->outerWidth() + 1.6*Gaudi::Units::cm + safetyTmp; } // Calculate module shift. Distance between module physics center and center of envelope. int hybridSign = m_hybridIsOnInnerEdge ? +1: -1; - //module_shift = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd + 0.05)*GeoModelKernelUnits::cm; + //module_shift = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd + 0.05)*Gaudi::Units::cm; //module_shift = hybrid * (module_length / 2. - module_shift); - double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + 0.5*GeoModelKernelUnits::mm; - //FIXME: Should be: (ie don't need the 0.5GeoModelKernelUnits::mm) + double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + 0.5*Gaudi::Units::mm; + //FIXME: Should be: (ie don't need the 0.5Gaudi::Units::mm) // double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter ; m_moduleShift = hybridSign * (0.5 * m_length - moduleCenterToHybridOuterEdge); @@ -196,7 +193,7 @@ GeoVPhysVol * SCT_FwdModule::build(SCT_Identifier id) const rotation = 0.5 * m_stereoAngle; GeoTrf::Translation3D vecB(positionX,0,0); // Rotate so that X axis goes from backside to implant side - GeoTrf::Transform3D rotB = GeoTrf::RotateX3D(rotation)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::degree); + GeoTrf::Transform3D rotB = GeoTrf::RotateX3D(rotation)*GeoTrf::RotateZ3D(180*Gaudi::Units::degree); // First translate in z (only non-zero for truncated middle) // Then rotate and then translate in x. GeoAlignableTransform *bottomTransform @@ -223,7 +220,7 @@ GeoVPhysVol * SCT_FwdModule::build(SCT_Identifier id) const positionX=-positionX; rotation=-rotation; GeoTrf::RotateX3D rotT(rotation); - //rotT.rotateZ(180*GeoModelKernelUnits::degree); // Rotate so that X axis goes from implant side to backside + //rotT.rotateZ(180*Gaudi::Units::degree); // Rotate so that X axis goes from implant side to backside GeoTrf::Translation3D vecT(positionX,0,0); // First translate in z (only non-zero for truncated middle) // Then rotate and then translate in x. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx index d2428723b1e5..93f207cf9ee8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx @@ -14,7 +14,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <iostream> @@ -48,7 +48,7 @@ SCT_FwdModuleConnector::build() const GeoBox * moduleConnShape = new GeoBox(0.5 * m_thickness, 0.5 * m_rphi, 0.5 * m_deltaR); m_material = materials.getMaterialForVolume(m_materialName, moduleConnShape->volume()); // std::cout << "Material = " << m_material->getName() << std::endl; - // std::cout << "Density = " << m_material->getDensity()/(gram/GeoModelKernelUnits::cm3) << std::endl; + // std::cout << "Density = " << m_material->getDensity()/(gram/Gaudi::Units::cm3) << std::endl; // Shift to correct position within module double xposition = 0.5 * (parameters->fwdHybridThickness() + m_thickness); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx index 422f0087e19c..e0bb9db2588a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <iostream> @@ -58,7 +58,7 @@ SCT_FwdOptoHarness::build() m_material = materials.getMaterialForVolume(m_materialName, optoHarnessShape->volume()); // m_material = materials.getMaterial(m_materialName); // cout << "Material = " << m_material->getName() << endl; - // cout << "Density = " << m_material->getDensity()/(gram/GeoModelKernelUnits::cm3) << endl; + // cout << "Density = " << m_material->getDensity()/(gram/Gaudi::Units::cm3) << endl; const GeoLogVol * optoHarnessLog = new GeoLogVol(getName(), optoHarnessShape, m_material); GeoPhysVol * optoHarness = new GeoPhysVol(optoHarnessLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx index 136cd3e68c9e..26eb84882179 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <cmath> @@ -45,11 +45,11 @@ GeoVPhysVol * SCT_FwdPowerTape::build() { // Calculate the dimensions. - // The area = 2*GeoModelKernelUnits::pi*r_ave*delta_r approx= 2 * GeoModelKernelUnits::pi * rMin * delta_r + // The area = 2*Gaudi::Units::pi*r_ave*delta_r approx= 2 * Gaudi::Units::pi * rMin * delta_r // where m_thickness = delta_r double area = m_crossSectArea * m_numModules; - m_thickness = area/(2. * GeoModelKernelUnits::pi * m_innerRadius); + m_thickness = area/(2. * Gaudi::Units::pi * m_innerRadius); m_outerRadius = m_innerRadius + m_thickness; // Make the support disk. A simple tube. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx index d7194c036ad7..f72d096699d6 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx @@ -25,10 +25,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/PhysicalConstants.h" #include <sstream> #include <cmath> @@ -128,8 +126,8 @@ SCT_FwdRing::preBuild() // If disc is rotated then recalculate the angle. // It assumed the disc is rotated around the Y axis. // TODO: Check this assumption. - if (m_discRotated) angle = GeoModelKernelUnits::pi - angle; - double divisionAngle = 2*GeoModelKernelUnits::pi / m_numModules; + if (m_discRotated) angle = Gaudi::Units::pi - angle; + double divisionAngle = 2*Gaudi::Units::pi / m_numModules; // Now we choose module 0 as the first module with -0.5 * divAngle < phi <= 0.5 * divAngle double moduleCount = angle / divisionAngle; @@ -140,7 +138,7 @@ SCT_FwdRing::preBuild() // Determine numbering for -ve endcap. // This is for a rotation around Y axis. // After rotation we want the first module closest to phi = 0. - double angleNegEC = GeoModelKernelUnits::pi - m_startAngle; + double angleNegEC = Gaudi::Units::pi - m_startAngle; double moduleCountNegEC = angleNegEC / divisionAngle; m_moduleZero = static_cast<int>(floor(moduleCountNegEC + 0.5 - 0.0001)); @@ -151,16 +149,16 @@ SCT_FwdRing::preBuild() // std::cout << "RingType, RingSide, Stereo, rotated = " << m_iRing << " " << m_ringSide << " " // << m_stereoSign << " " << m_discRotated << std::endl; - // std::cout << "Ref Start angle and stagger " << m_refStartAngle/GeoModelKernelUnits::deg << " " << m_refFirstStagger << std::endl; - // std::cout << "First Start angle and stagger " << m_startAngle/GeoModelKernelUnits::deg << " " << m_firstStagger << std::endl; + // std::cout << "Ref Start angle and stagger " << m_refStartAngle/Gaudi::Units::deg << " " << m_refFirstStagger << std::endl; + // std::cout << "First Start angle and stagger " << m_startAngle/Gaudi::Units::deg << " " << m_firstStagger << std::endl; // std::cout << "Module zero in -ve endcap " << m_moduleZero << std::endl; makeModuleServices(); // Make envelope for ring - double moduleClearanceZ = 0.6 * GeoModelKernelUnits::mm; // Arbitrary choice - double moduleClearanceR = 0.5 * GeoModelKernelUnits::mm; + double moduleClearanceZ = 0.6 * Gaudi::Units::mm; // Arbitrary choice + double moduleClearanceR = 0.5 * Gaudi::Units::mm; m_innerRadius = m_module->innerRadius() - 0.5*m_module->stereoAngle()*(0.5*m_module->innerWidth()) - moduleClearanceR; m_outerRadius = sqrt(sqr(m_module->outerRadius()) + sqr(0.5*m_module->outerWidth())) @@ -168,15 +166,15 @@ SCT_FwdRing::preBuild() // Calculate clearance we have. NB. This is an approximate. //std::cout << "Module clearance (radial value does not take into account stereo rotation:" << std::endl; - //std::cout << " radial: " << moduleClearanceR/GeoModelKernelUnits::mm << " mm" << std::endl; - //std::cout << " away from disc in z " << moduleClearanceZ/GeoModelKernelUnits::mm << " mm" << std::endl; + //std::cout << " radial: " << moduleClearanceR/Gaudi::Units::mm << " mm" << std::endl; + //std::cout << " away from disc in z " << moduleClearanceZ/Gaudi::Units::mm << " mm" << std::endl; //std::cout << " Lo Module to cooling block: " << -m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos << std::endl; //std::cout << " Hi Module to cooling block: " << +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos << std::endl; //std::cout << " Module to Module: " << m_moduleStagger-m_module->thickness() << std::endl; //std::cout << " towards disc in z " // << std::min(m_moduleStagger-m_module->thickness(), // std::min(-m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos, - // +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos)) / GeoModelKernelUnits::mm << " mm" << std::endl; + // +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos)) / Gaudi::Units::mm << " mm" << std::endl; m_thicknessOuter = 0.5 * m_module->thickness() + m_moduleStagger + moduleClearanceZ; m_thicknessInner = m_maxModuleServicesBaseToRingCenter + 2*m_safety; @@ -209,7 +207,7 @@ SCT_FwdRing::build(SCT_Identifier id) const // Physical volume for the half ring GeoPhysVol * ring = new GeoPhysVol(m_logVolume); - double deltaPhi = 360*GeoModelKernelUnits::degree / m_numModules; + double deltaPhi = 360*Gaudi::Units::degree / m_numModules; bool negativeEndCap = (id.getBarrelEC() < 0); for (int i = 0; i < m_numModules; i++){ @@ -264,13 +262,13 @@ SCT_FwdRing::build(SCT_Identifier id) const //std::cout << "Endcap# = " <<id.getBarrelEC() // << ", idModule = " << idModule // << ", i = " << i - // << ", phi = " << phi/GeoModelKernelUnits::degree << std::endl; + // << ", phi = " << phi/Gaudi::Units::degree << std::endl; GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(phi + 0.5 * m_module->stereoAngle() * m_stereoSign); if (m_ringSide > 0) { - rot = rot*GeoTrf::RotateX3D(180*GeoModelKernelUnits::degree); + rot = rot*GeoTrf::RotateX3D(180*Gaudi::Units::degree); } - rot = rot*GeoTrf::RotateY3D(90*GeoModelKernelUnits::degree); + rot = rot*GeoTrf::RotateY3D(90*Gaudi::Units::degree); double zPos = staggerUpperLower * m_moduleStagger * m_ringSide; GeoTrf::Vector3D xyz(m_module->sensorCenterRadius(), 0, zPos); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx index a681a2f0291d..34400f89fbdb 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx @@ -31,12 +31,10 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelKernel/GeoDefinitions.h" - - #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" #include "InDetReadoutGeometry/SiDetectorElement.h" @@ -316,10 +314,10 @@ void SCT_FwdSensor::makeDesign() // This is the default and no action is required. // Can force axes not to be swapped by setting to false. // - // bool phiSyGeoModelKernelUnits::mmetric = true; - // bool etaSyGeoModelKernelUnits::mmetric = false; - // bool depthSyGeoModelKernelUnits::mmetric = true; - // m_design->setSyGeoModelKernelUnits::mmetry(phiSyGeoModelKernelUnits::mmetric, etaSyGeoModelKernelUnits::mmetric, depthSyGeoModelKernelUnits::mmetric, + // bool phiSyGaudi::Units::mmetric = true; + // bool etaSyGaudi::Units::mmetric = false; + // bool depthSyGaudi::Units::mmetric = true; + // m_design->setSyGaudi::Units::mmetry(phiSyGaudi::Units::mmetric, etaSyGaudi::Units::mmetric, depthSyGaudi::Units::mmetric, // } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx index 7e01fc5b52f6..6c6f13e57d7c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx @@ -24,16 +24,11 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" - -#include "GeoModelKernel/Units.h" - #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> - SCT_FwdSpine::SCT_FwdSpine(const std::string & name, int ringType) : SCT_SharedComponentFactory(name), m_ringType(ringType) @@ -70,7 +65,7 @@ SCT_FwdSpine::getParameters() - parameters->fwdHybridMountPointToInnerEdge() - parameters->fwdModuleHybridEdgeToSpine(m_ringType); - // (zssp[m_ringType].spndox + zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0) * GeoModelKernelUnits::cm; + // (zssp[m_ringType].spndox + zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0) * Gaudi::Units::cm; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx index c28934fe5d36..fd9d628e6db9 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx @@ -37,11 +37,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -111,12 +108,12 @@ SCT_FwdWheel::getParameters() // FIXME: Check and put these in DB or calculate them // We have a maximum width of 80.2. Make it 75 for some clearance. - //m_innerRadius = 267 * GeoModelKernelUnits::mm; - //m_outerRadius = 590 * GeoModelKernelUnits::mm; - //m_thickness = 100 * GeoModelKernelUnits::mm; + //m_innerRadius = 267 * Gaudi::Units::mm; + //m_outerRadius = 590 * Gaudi::Units::mm; + //m_thickness = 100 * Gaudi::Units::mm; // These get swapped later if the wheel is rotated. - m_thicknessFront = 30 * GeoModelKernelUnits::mm; - m_thicknessBack = 45 * GeoModelKernelUnits::mm; + m_thicknessFront = 30 * Gaudi::Units::mm; + m_thicknessBack = 45 * Gaudi::Units::mm; m_numFSITypes = parameters->fwdFSINumGeomTypes(); m_fsiVector = &(parameters->fsiVector(m_iWheel)); @@ -207,7 +204,7 @@ SCT_FwdWheel::preBuild() // If first or last wheel there is nothing protruding beyond the rings so we reduce the // envelope size. Comes to about 20 mm. Note the front becomes the back later for the last wheel. if ((m_iWheel == 0) || (m_iWheel == m_numWheels - 1)) { - m_thicknessFront = maxModuleThickness + 1*GeoModelKernelUnits::mm; // We give plenty of safety as we have the room. + m_thicknessFront = maxModuleThickness + 1*Gaudi::Units::mm; // We give plenty of safety as we have the room. // But now modified by disc fixations if(m_discFixationPresent) { m_thicknessFront = std::max(m_thicknessFront,m_discFixation->radius() + m_safety); @@ -249,7 +246,7 @@ SCT_FwdWheel::preBuild() // TODO. Have to account for FSI and patch panels //m_thickness = 2. * maxRingOffset + maxThickness; - // m_thickness = 100 * GeoModelKernelUnits::mm; + // m_thickness = 100 * Gaudi::Units::mm; // std::cout << "Wheel " << m_iWheel << ":" << std::endl; // std::cout << " innerRadius = " << m_innerRadius << std::endl; @@ -391,7 +388,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const for (int iRepeat = 0; iRepeat < numRepeat; iRepeat++) { // Calculate the location. - double patchPanelAngle = m_patchPanelLocAngle[iPPLoc] + iRepeat * 90*GeoModelKernelUnits::degree; + double patchPanelAngle = m_patchPanelLocAngle[iPPLoc] + iRepeat * 90*Gaudi::Units::degree; double patchPanelZpos = patchPanelSide * (powerTapeZMax + 0.5*m_patchPanel[ppType]->thickness() + m_safety); double patchPanelR = m_patchPanel[ppType]->midRadius(); @@ -471,8 +468,8 @@ SCT_FwdWheel::build(SCT_Identifier id) const // << "Sim type: " << (*m_fsiVector)[iFSI]->simTypeString() << ", " // << "Actual type: " << (*m_fsiVector)[iFSI]->actualType() << ", " // << "Loc type: " << (*m_fsiVector)[iFSI]->locationType() << ", " - // << "Radius(mm): " << fsiRadius/GeoModelKernelUnits::mm << ", " - // << "Phi(deg): " << fsiPhi/GeoModelKernelUnits::deg << ", " + // << "Radius(mm): " << fsiRadius/Gaudi::Units::mm << ", " + // << "Phi(deg): " << fsiPhi/Gaudi::Units::deg << ", " // << "Thickness(mm): " << m_fsiType[type]->thickness() << ", " // << "ZOffset(mm): " << m_fsiType[type]->zOffset() << ", " // << "RPhi(mm): " << m_fsiType[type]->rphi() << ", " @@ -515,7 +512,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const // The disc fixations repeat in the four quadrants. for (int iRepeat = 0; iRepeat < 4; iRepeat++) { // Calculate the location. - double discFixationAngle = m_discFixationLocAngle[iLoc] + iRepeat * 90*GeoModelKernelUnits::degree; + double discFixationAngle = m_discFixationLocAngle[iLoc] + iRepeat * 90*Gaudi::Units::degree; double discFixationR = m_ringMaxRadius + 0.5*m_discFixation->thickness() + m_safety; // Check is within wheel if (discFixationR + 0.5*m_discFixation->thickness() >= m_outerRadius) { @@ -524,7 +521,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const std::cout << " Wheel outer radius: " << m_outerRadius << std::endl; } // Add it to the wheel - wheel->add(new GeoTransform(GeoTrf::RotateY3D(90.*GeoModelKernelUnits::degree)*GeoTrf::RotateX3D(discFixationAngle)*GeoTrf::TranslateZ3D(discFixationR))); + wheel->add(new GeoTransform(GeoTrf::RotateY3D(90.*Gaudi::Units::degree)*GeoTrf::RotateX3D(discFixationAngle)*GeoTrf::TranslateZ3D(discFixationR))); wheel->add(m_discFixation->getVolume()); } } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx index f5ae06e73786..1bec07bc2435 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx @@ -6,14 +6,14 @@ #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelKernel/GeoDefinitions.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" #include <iostream> -const double SCT_SAFETY = 0.01 * GeoModelKernelUnits::mm; // Used in some places to make envelopes slightly larger to ensure +const double SCT_SAFETY = 0.01 * Gaudi::Units::mm; // Used in some places to make envelopes slightly larger to ensure // no overlaps due to rounding errors. @@ -62,9 +62,9 @@ double SCT_GeneralParameters::temperature() const { if (m_rdb->conditionsTable()->size() == 0) { - return 266.15 * GeoModelKernelUnits::kelvin; // -7 C + return 266.15 * Gaudi::Units::kelvin; // -7 C } - return (m_rdb->conditions()->getDouble("TEMPERATURE") + 273.15) * GeoModelKernelUnits::kelvin; + return (m_rdb->conditions()->getDouble("TEMPERATURE") + 273.15) * Gaudi::Units::kelvin; } @@ -72,18 +72,18 @@ double SCT_GeneralParameters::biasVoltage() const { if (m_rdb->conditionsTable()->size() == 0) { - return 100 * GeoModelKernelUnits::volt; + return 100 * Gaudi::Units::volt; } - return m_rdb->conditions()->getDouble("BIASVOLT") * GeoModelKernelUnits::volt; + return m_rdb->conditions()->getDouble("BIASVOLT") * Gaudi::Units::volt; } double SCT_GeneralParameters::depletionVoltage() const { if (m_rdb->conditionsTable()->size() == 0) { - return 20 * GeoModelKernelUnits::volt; + return 20 * Gaudi::Units::volt; } - return m_rdb->conditions()->getDouble("DEPLETIONVOLT") * GeoModelKernelUnits::volt; + return m_rdb->conditions()->getDouble("DEPLETIONVOLT") * Gaudi::Units::volt; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx index b30430ed63fc..c350e121281a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx @@ -33,7 +33,7 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -141,8 +141,8 @@ SCT_InnerSide::preBuild() // // Shown is the outer side. The inner side is the same but with a rotation of 180 deg around the z-axis. // - //GeoModelKernelUnits::HepRotation rotSensor; - //rotSensor.rotateZ(180*GeoModelKernelUnits::deg); + //Gaudi::Units::HepRotation rotSensor; + //rotSensor.rotateZ(180*Gaudi::Units::deg); //m_outerSidePos = new GeoTrf::Transform3D(rotOuter, GeoTrf::Vector3D(0.5 * (m_sensorGap + sectThickness), 0., 0.)); //m_sensorPos = new GeoTransform(GeoTrf::Transform3D(rotSensor, GeoTrf::Vector3D(sensorPosX, sensorPosY, sensorPosZ))); m_sensorPos = new GeoTransform(GeoTrf::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx index a9694cdbc689..d30351c0efc8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx @@ -14,7 +14,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" SCT_InterLink::SCT_InterLink(const std::string & name) : SCT_SharedComponentFactory(name), @@ -109,13 +109,13 @@ SCT_InterLink::build() m_interLink->ref(); // Interlink segments: - m_interLinkSegShape = new GeoTubs(m_innerRadius, m_outerRadius, 0.5*m_length, - 0.5*m_dPhi*GeoModelKernelUnits::radian, m_dPhi*GeoModelKernelUnits::radian); + m_interLinkSegShape = new GeoTubs(m_innerRadius, m_outerRadius, 0.5*m_length, - 0.5*m_dPhi*Gaudi::Units::radian, m_dPhi*Gaudi::Units::radian); m_interLinkSegLog = new GeoLogVol("InterlinkSegment", m_interLinkSegShape, materials.getMaterialForVolume(m_materialName, m_interLinkSegShape->volume())); m_interLinkSeg = new GeoPhysVol(m_interLinkSegLog); m_interLinkSeg->ref(); for(int i=0; i<m_nRepeat; i++) { - double interlinkAngle = m_phiPos + (i * 360./m_nRepeat)*GeoModelKernelUnits::deg; + double interlinkAngle = m_phiPos + (i * 360./m_nRepeat)*Gaudi::Units::deg; GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(interlinkAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); @@ -123,13 +123,13 @@ SCT_InterLink::build() } // B6 bearings - m_bearingShape = new GeoTubs(m_innerRadiusBearing, m_outerRadiusBearing, 0.5*m_lengthBearing, - 0.5*m_dPhiBearing*GeoModelKernelUnits::radian, m_dPhiBearing*GeoModelKernelUnits::radian); + m_bearingShape = new GeoTubs(m_innerRadiusBearing, m_outerRadiusBearing, 0.5*m_lengthBearing, - 0.5*m_dPhiBearing*Gaudi::Units::radian, m_dPhiBearing*Gaudi::Units::radian); m_bearingLog = new GeoLogVol("Bearing", m_bearingShape, materials.getMaterialForVolume(m_materialNameBearing, m_bearingShape->volume())); m_bearing = new GeoPhysVol(m_bearingLog); m_bearing->ref(); for(int i=0; i<m_nRepeatBearing; i++) { - double bearingAngle = m_phiPosBearing + (i * 360./m_nRepeatBearing)*GeoModelKernelUnits::deg; + double bearingAngle = m_phiPosBearing + (i * 360./m_nRepeatBearing)*Gaudi::Units::deg; GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(bearingAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); @@ -139,15 +139,15 @@ SCT_InterLink::build() // FSI Flange segments: // These exactly fill gaps between interlink segments, with smaller radial extent if(m_includeFSIFlange) { - double dPhiFSI = (360./m_nRepeat)*GeoModelKernelUnits::deg - m_dPhi; - m_FSIFlangeShape = new GeoTubs(m_innerRadiusFSIFlange, m_outerRadiusFSIFlange, 0.5*m_length, - 0.5*dPhiFSI*GeoModelKernelUnits::radian, dPhiFSI*GeoModelKernelUnits::radian); + double dPhiFSI = (360./m_nRepeat)*Gaudi::Units::deg - m_dPhi; + m_FSIFlangeShape = new GeoTubs(m_innerRadiusFSIFlange, m_outerRadiusFSIFlange, 0.5*m_length, - 0.5*dPhiFSI*Gaudi::Units::radian, dPhiFSI*Gaudi::Units::radian); m_FSIFlangeLog = new GeoLogVol("FSIFlangeSegment", m_FSIFlangeShape, materials.getMaterialForVolume(m_materialNameFSIFlange, m_FSIFlangeShape->volume())); m_FSIFlange = new GeoPhysVol(m_FSIFlangeLog); m_FSIFlange->ref(); for(int i=0; i<m_nRepeat; i++) { - double phiPosFSI = m_phiPos + (180./m_nRepeat)*GeoModelKernelUnits::deg; - double FSIFlangeAngle = phiPosFSI + (i * 360./m_nRepeat)*GeoModelKernelUnits::deg; + double phiPosFSI = m_phiPos + (180./m_nRepeat)*Gaudi::Units::deg; + double FSIFlangeAngle = phiPosFSI + (i * 360./m_nRepeat)*Gaudi::Units::deg; GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(FSIFlangeAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx index d8fbdccbe690..73758851473b 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx @@ -40,7 +40,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -149,7 +149,7 @@ SCT_Layer::preBuild() // Calculations for making active layer components - called ski. // This is the modules + doglegs + cooling blocks + coolingpipe // - double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; + double divisionAngle = 360 * Gaudi::Units::degree / m_skisPerLayer; // We define here the first module(id = 0) as the nearest module to phi = 0 with positive phi. // We allow slightly negative in case of rounding errors. @@ -199,7 +199,7 @@ SCT_Layer::preBuild() // Build the volume representing the cooling inlets, outlet and U-bends. // We cannot do this until we have the dimensions of the clamp double coolingInnerRadius = m_clamp->outerRadius(); - double clearance = 1*GeoModelKernelUnits::mm; + double clearance = 1*Gaudi::Units::mm; double coolingLength = 0.5*m_cylinderLength - 0.5*m_activeLength - clearance; m_coolingEnd = new SCT_CoolingEnd("CoolingEnd"+layerNumStr, m_iLayer, coolingInnerRadius, coolingLength); @@ -271,7 +271,7 @@ SCT_Layer::build(SCT_Identifier id) const // We make this a fullPhysVol for alignment code. GeoFullPhysVol * layer = new GeoFullPhysVol(m_logVolume); - double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; + double divisionAngle = 360 * Gaudi::Units::degree / m_skisPerLayer; // // Active Layer @@ -290,7 +290,7 @@ SCT_Layer::build(SCT_Identifier id) const double phi = m_skiPhiStart + iSki * divisionAngle; - // std::cout << "m_skiPhiStart = " << m_skiPhiStart/GeoModelKernelUnits::degree << ", phi = " << phi/GeoModelKernelUnits::degree << std::endl; + // std::cout << "m_skiPhiStart = " << m_skiPhiStart/Gaudi::Units::degree << ", phi = " << phi/Gaudi::Units::degree << std::endl; GeoTrf::Vector3D pos(m_radius, 0, 0); pos = GeoTrf::RotateZ3D(phi)*pos; @@ -379,7 +379,7 @@ SCT_Layer::build(SCT_Identifier id) const double jewelRadius = std::sqrt(m_fibreMask->innerRadius()*m_fibreMask->innerRadius() - 0.25 * m_endJewel->rPhiWidth()*m_endJewel->rPhiWidth()) - 0.5 * m_endJewel->radialWidth(); // std::cout << "jewelRadius = " << jewelRadius << std::endl; for ( int i=0; i<m_nRepeatEndJewel; i++) { - double jewelAngle = m_phiEndJewel + i * 360.*GeoModelKernelUnits::degree/m_nRepeatEndJewel; + double jewelAngle = m_phiEndJewel + i * 360.*Gaudi::Units::degree/m_nRepeatEndJewel; // std::cout << "jewelAngle = " << jewelAngle << std::endl; supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(jewelAngle)*GeoTrf::TranslateX3D(jewelRadius)*GeoTrf::TranslateZ3D(m_zEndJewel))); supportLayer->add(m_endJewel->getVolume()); @@ -391,7 +391,7 @@ SCT_Layer::build(SCT_Identifier id) const double scorpionRadius = std::sqrt(m_supportCyl->innerRadius()*m_supportCyl->innerRadius() - 0.25 * m_scorpion->rPhiWidth()*m_scorpion->rPhiWidth()) - 0.5 * m_scorpion->radialWidth(); // std::cout << "scorpionRadius = " << scorpionRadius << std::endl; for ( int i=0; i<m_nRepeatScorpion; i++) { - double scorpionAngle = m_phiScorpion + i * 360.*GeoModelKernelUnits::degree/m_nRepeatScorpion; + double scorpionAngle = m_phiScorpion + i * 360.*Gaudi::Units::degree/m_nRepeatScorpion; // std::cout << "scorpionAngle = " << scorpionAngle << std::endl; supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(scorpionAngle)*GeoTrf::TranslateX3D(scorpionRadius)*GeoTrf::TranslateZ3D(m_zScorpion))); supportLayer->add(m_scorpion->getVolume()); @@ -465,7 +465,7 @@ SCT_Layer::calcSkiPhiOffset() // First calculated for abs(m_tilt). - double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; + double divisionAngle = 360 * Gaudi::Units::degree / m_skisPerLayer; // double activeHalfWidth = 0.5 * m_skiAux->ski()->module()->activeWidth(); // double moduleHalfThickness = 0.5 * m_skiAux->ski()->module()->thickness(); @@ -495,7 +495,7 @@ SCT_Layer::calcSkiPhiOffset() //// std::cout << " Active width = " << m_skiAux->ski()->module()->activeWidth() << std::endl; //std::cout << " Module width = " << m_module->width() << std::endl; //std::cout << " Active width = " << m_module->activeWidth() << std::endl; - //std::cout << " Division angle = " << divisionAngle/GeoModelKernelUnits::degree << " GeoModelKernelUnits::deg" << std::endl; - //std::cout << " Ski phi offset = " << skiPhiOffset/GeoModelKernelUnits::degree << " GeoModelKernelUnits::deg" << std::endl; + //std::cout << " Division angle = " << divisionAngle/Gaudi::Units::degree << " Gaudi::Units::deg" << std::endl; + //std::cout << " Ski phi offset = " << skiPhiOffset/Gaudi::Units::degree << " Gaudi::Units::deg" << std::endl; return skiPhiOffset; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx index d5d853261358..6143317a4d1e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx @@ -11,6 +11,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/Bootstrap.h" #include "GaudiKernel/ISvcLocator.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -64,7 +65,7 @@ SCT_MaterialManager::loadMaterials() //const GeoMaterial *kapton = getMaterial("std::Kapton"); // 30th Aug 2005 D.Naito added. // CuKapton for Low Mass Tapes - //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*gram/GeoModelKernelUnits::cm3); + //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*gram/Gaudi::Units::cm3); //matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); //matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); //addMaterial(matCuKapton); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx index dea79f0f86d1..502e1d7d6b5d 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx @@ -33,7 +33,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" // 8th Aug 2005 S.Mima modified. #include "GeoModelKernel/GeoShapeSubtraction.h" @@ -181,28 +181,28 @@ SCT_Module::preBuild() GeoTrf::Vector3D s(0.0, r.y(), m_innerSide->hybridOffsetZ() - 0.5*innerSideHybridLength); GeoTrf::Vector3D t(0.0, q.y(), s.z()); - // All points turn +-20 mGeoModelKernelUnits::rad around physical center of module. - a = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*a; - b = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*b; - c = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*c; - d = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*d; - - e = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*e; - f = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*f; - g = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*g; - h = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*h; - - i = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*i; - //k.rotateX(m_stereoOuter/GeoModelKernelUnits::radian); - l = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*l; - m = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*m; - //n.rotateX(m_stereoOuter/GeoModelKernelUnits::radian); - p = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*p; - - q = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*q; - r = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*r; - s = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*s; - t = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*t; + // All points turn +-20 mGaudi::Units::rad around physical center of module. + a = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*a; + b = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*b; + c = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*c; + d = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*d; + + e = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*e; + f = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*f; + g = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*g; + h = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*h; + + i = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*i; + //k.rotateX(m_stereoOuter/Gaudi::Units::radian); + l = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*l; + m = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*m; + //n.rotateX(m_stereoOuter/Gaudi::Units::radian); + p = GeoTrf::RotateX3D(m_stereoOuter/Gaudi::Units::radian)*p; + + q = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*q; + r = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*r; + s = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*s; + t = GeoTrf::RotateX3D(m_stereoInner/Gaudi::Units::radian)*t; // Calculate demension of envelope1. const double z_ab = std::max(a.z(), b.z()); @@ -330,7 +330,7 @@ SCT_Module::preBuild() // // inner side // - GeoTrf::Transform3D rotInner = GeoTrf::RotateX3D(m_stereoInner) * GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rotInner = GeoTrf::RotateX3D(m_stereoInner) * GeoTrf::RotateZ3D(180*Gaudi::Units::deg); m_innerSidePos = new GeoTrf::Transform3D(GeoTrf::Transform3D(GeoTrf::Translation3D(ISPosX, 0.0, 0.0)*rotInner)); // diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx index b9b9a7b6e92c..1a4ee321aeba 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx @@ -27,10 +27,8 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" - -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -148,10 +146,10 @@ SCT_OuterSide::preBuild() // --- hybrid | // ------- sensor | x-axis // - // Shown is the outer side. The inner side is the same but with a rotation of 180 GeoModelKernelUnits::deg around the z-axis. + // Shown is the outer side. The inner side is the same but with a rotation of 180 Gaudi::Units::deg around the z-axis. // - //GeoModelKernelUnits::HepRotation rotSensor; - //rotSensor.rotateZ(180*GeoModelKernelUnits::deg); + //Gaudi::Units::HepRotation rotSensor; + //rotSensor.rotateZ(180*Gaudi::Units::deg); //m_outerSidePos = new GeoTrf::Transform3D(rotOuter, GeoTrf::Vector3D(0.5 * (m_sensorGap + sectThickness), 0., 0.)); //m_sensorPos = new GeoTransform(GeoTrf::Transform3D(rotSensor, GeoTrf::Vector3D(sensorPosX, sensorPosY, sensorPosZ))); m_sensorPos = new GeoTransform(GeoTrf::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx index 6cc41f4ffb5c..4a3b15f269e5 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx @@ -20,8 +20,7 @@ #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/SiCommonItems.h" - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" using namespace InDetDD; @@ -122,10 +121,10 @@ SCT_Sensor::makeDesign() // This is the default and no action is required. // Can force axes not to be swapped by setting to false. // - // bool phiSyGeoModelKernelUnits::mmetric = true; - // bool etaSyGeoModelKernelUnits::mmetric = true; - // bool depthSyGeoModelKernelUnits::mmetric = true; - // m_design->setSyGeoModelKernelUnits::mmetry(phiSyGeoModelKernelUnits::mmetric, etaSyGeoModelKernelUnits::mmetric, depthSyGeoModelKernelUnits::mmetric, + // bool phiSyGaudi::Units::mmetric = true; + // bool etaSyGaudi::Units::mmetric = true; + // bool depthSyGaudi::Units::mmetric = true; + // m_design->setSyGaudi::Units::mmetry(phiSyGaudi::Units::mmetric, etaSyGaudi::Units::mmetric, depthSyGaudi::Units::mmetric, // } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx index bae8c9ba459f..ef7d865734e9 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx @@ -29,7 +29,7 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -102,8 +102,8 @@ SCT_Ski::getParameters() const GeoLogVol * SCT_Ski::preBuild() { - const double rphiClearance = 0.5*GeoModelKernelUnits::mm; - const double radialClearance = 0.5*GeoModelKernelUnits::mm; + const double rphiClearance = 0.5*Gaudi::Units::mm; + const double radialClearance = 0.5*Gaudi::Units::mm; // Make components. @@ -134,7 +134,7 @@ SCT_Ski::preBuild() // *** 18:00 Fri 27th May 2005 D.Naito put some comments. // I need to calculate moduleYMax and moduleYMin for yModuleOffset, - // because the modules is asyGeoModelKernelUnits::mmetry in y direction. + // because the modules is asyGaudi::Units::mmetry in y direction. // // These are coordinates of corners of module's envelopes. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx index 9b11aeb79d5c..d9f62da5c53a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx @@ -27,7 +27,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <sstream> #include <cmath> @@ -94,7 +94,7 @@ SCT_SkiPowerTape::build() // nPos is used to stack the power tapes. Modules closest to interlink are // furthest from support. The positive and negative z positions are - // syGeoModelKernelUnits::mmetric. nPos = 5,4,3,2,1,0,0,1,2,3,4,5 for the 12 modules. + // syGaudi::Units::mmetric. nPos = 5,4,3,2,1,0,0,1,2,3,4,5 for the 12 modules. int nPos; // test sign of zpos to determine whether the tape runs to the @@ -157,7 +157,7 @@ SCT_SkiPowerTape::build() // Position the tape skiPowerTape->add(new GeoTransform(GeoTrf::Translate3D(xTapePos, yTapePos, tapeMid))); skiPowerTape->add(powerTape.getVolume()); - mass += (powerTape.getVolume()->getLogVol()->getShape()->volume()/GeoModelKernelUnits::cm3)*(powerTape.material()->getDensity()/GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + mass += (powerTape.getVolume()->getLogVol()->getShape()->volume()/Gaudi::Units::cm3)*(powerTape.material()->getDensity()/GeoModelKernelUnits::g/Gaudi::Units::cm3); ltot += tapeLength; } -- GitLab From 12ae80e7e5008ac7e104c951098d22682ceed5cd Mon Sep 17 00:00:00 2001 From: John Kenneth Anders <john.kenneth.anders@cern.ch> Date: Tue, 22 Jan 2019 12:58:57 +0000 Subject: [PATCH 052/192] Merge branch 'fix_Broken_TCT' into '21.0' Removed mc16d TCT and replaced with mc16e See merge request atlas/athena!20519 (cherry picked from commit 3629f2a94aa2156b659b5d1eaceb50f6c388d56a) 62086093 Removed mc16d TCT and replaced with mc16e --- .../CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 Tools/Tier0ChainTests/test/test_reco_mc16e.sh | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) mode change 100755 => 100644 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Tools/Tier0ChainTests/test/test_reco_mc16e.sh diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100755 new mode 100644 diff --git a/Tools/Tier0ChainTests/test/test_reco_mc16e.sh b/Tools/Tier0ChainTests/test/test_reco_mc16e.sh new file mode 100644 index 000000000000..f6ae0bf55b4f --- /dev/null +++ b/Tools/Tier0ChainTests/test/test_reco_mc16e.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# +# art-description: RecoTrf +# art-type: grid +# art-include: 21.0/Athena +# art-include: 21.0-TrigMC/Athena +# art-include: master/Athena +# art-include: 21.3/Athena +# art-include: 21.9/Athena + +Reco_tf.py --digiSteeringConf 'StandardSignalOnlyTruth' --conditionsTag 'default:OFLCOND-MC16-SDR-25' --valid 'True' --pileupFinalBunch '6' --numberOfHighPtMinBias '0.2595392' --autoConfiguration 'everything' --numberOfLowPtMinBias '99.2404608' --steering 'doRDO_TRIG' --preInclude 'HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInlcude.PileUpBunchTrainsMC16c_2017_Config1.py,RunDependentSimData/configLumi_run310000.py' --postInclude 'default:PyJobTransforms/UseFrontier.py' --postExec 'all:CfgMgr.MessageSvc().setError+=["HepMcParticleLink"]' "ESDtoAOD:fixedAttrib=[s if \"CONTAINER_SPLITLEVEL = '99'\" not in s else \"\" for s in svcMgr.AthenaPoolCnvSvc.PoolAttributes];svcMgr.AthenaPoolCnvSvc.PoolAttributes=fixedAttrib" "RDOtoRDOTrigger:conddb.addOverride(\"/CALO/Ofl/Noise/PileUpNoiseLumi\",\"CALOOflNoisePileUpNoiseLumi-mc15-mu30-dt25ns\")" 'ESDtoAOD:CILMergeAOD.removeItem("xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.LATERAL.LONGITUDINAL.SECOND_R.SECOND_LAMBDA.CENTER_MAG.CENTER_LAMBDA.FIRST_ENG_DENS.ENG_FRAC_MAX.ISOLATION.ENG_BAD_CELLS.N_BAD_CELLS.BADLARQ_FRAC.ENG_BAD_HV_CELLS.N_BAD_HV_CELLS.ENG_POS.SIGNIFICANCE.CELL_SIGNIFICANCE.CELL_SIG_SAMPLING.AVG_LAR_Q.AVG_TILE_Q.EM_PROBABILITY.PTD.BadChannelList");CILMergeAOD.add("xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.N_BAD_CELLS.ENG_BAD_CELLS.BADLARQ_FRAC.AVG_TILE_Q.AVG_LAR_Q.CENTER_MAG.ENG_POS.CENTER_LAMBDA.SECOND_LAMBDA.SECOND_R.ISOLATION.EM_PROBABILITY");StreamAOD.ItemList=CILMergeAOD()' --preExec 'all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False)' 'ESDtoAOD:from TriggerJobOpts.TriggerFlags import TriggerFlags;TriggerFlags.AODEDMSet.set_Value_and_Lock("AODSLIM");' --triggerConfig 'RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2232,86,278' --geometryVersion 'default:ATLAS-R2-2016-01-00-01' --numberOfCavernBkg '0' --inputHITSFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s3091/\* --maxEvents=100 --outputAODFile=myAOD.pool.root --outputRDOFile=myRDO.pool.root --outputESDFile=myESD.pool.root --outputTAGFile=myTAG.root --runNumber=410000 --jobNumber=1 --inputLowPtMinbiasHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361238.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_low.merge.HITS.e4981_s3087_s3089/\* --inputHighPtMinbiasHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361239.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_high.merge.HITS.e4981_s3087_s3089/\* + +echo "art-result: $? Reco" + +ArtPackage=$1 +ArtJobName=$2 +art.py compare grid --entries 10 ${ArtPackage} ${ArtJobName} +echo "art-result: $? Diff" + -- GitLab From 3cb62f1739a87ab049828c14cd8c6e50075e9b72 Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Tue, 22 Jan 2019 11:13:17 +0000 Subject: [PATCH 053/192] Merge branch 'rdopos' into '21.3' Adding local and global position to RDOs in NSW Val Alg See merge request atlas/athena!20480 (cherry picked from commit 0f8aaf02b5c185b9c2b7cb84695df45510495d9a) 14641d10 Adding local and global position to RDOs in NSW Val Alg --- .../CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 .../MuonPRDTest/src/MMRDOVariables.cxx | 55 +++++++++++++++++-- .../MuonPRDTest/src/MMRDOVariables.h | 12 +++- .../MuonPRDTest/src/sTGCRDOVariables.cxx | 51 +++++++++++++++++ .../MuonPRDTest/src/sTGCRDOVariables.h | 13 ++++- 5 files changed, 125 insertions(+), 6 deletions(-) mode change 100755 => 100644 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100755 new mode 100644 diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.cxx index 2b965366b218..4446264704aa 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.cxx +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.cxx @@ -68,9 +68,24 @@ StatusCode MMRDOVariables::fillVariables() m_NSWMM_rdo_charge->push_back(rdo->charge()); // get the readout element class where the RDO is recorded - // int isSmall = (stName[2] == 'S'); - // const MuonGM::MMReadoutElement* rdoEl = m_detManager->getMMRElement_fromIdFields(isSmall, stationEta, stationPhi, multiplet ); - + int isSmall = (stName[2] == 'S'); + const MuonGM::MMReadoutElement* rdoEl = m_detManager->getMMRElement_fromIdFields(isSmall, stationEta, stationPhi, multiplet ); + + Amg::Vector2D localStripPos(0.,0.); + if ( rdoEl->stripPosition(Id,localStripPos) ) { + m_NSWMM_rdo_localPosX->push_back(localStripPos.x()); + m_NSWMM_rdo_localPosY->push_back(localStripPos.y()); + ATH_MSG_DEBUG("MM RDO: local pos.: x=" << localStripPos[0] << ", y=" << localStripPos[1]); + } else { + ATH_MSG_WARNING("MM RDO: local Strip position not defined"); + } + + // asking the detector element to transform this local to the global position + Amg::Vector3D globalStripPos(0., 0., 0.); + rdoEl->surface(Id).localToGlobal(localStripPos,Amg::Vector3D(0.,0.,0.),globalStripPos); + m_NSWMM_rdo_globalPosX->push_back(globalStripPos.x()); + m_NSWMM_rdo_globalPosY->push_back(globalStripPos.y()); + m_NSWMM_rdo_globalPosZ->push_back(globalStripPos.z()); // rdo counter for the ntuple m_NSWMM_nrdo++; @@ -99,6 +114,13 @@ StatusCode MMRDOVariables::clearVariables() m_NSWMM_rdo_time->clear(); m_NSWMM_rdo_charge->clear(); + m_NSWMM_rdo_globalPosX->clear(); + m_NSWMM_rdo_globalPosY->clear(); + m_NSWMM_rdo_globalPosZ->clear(); + + m_NSWMM_rdo_localPosX->clear(); + m_NSWMM_rdo_localPosY->clear(); + return StatusCode::SUCCESS; } @@ -118,6 +140,13 @@ StatusCode MMRDOVariables::initializeVariables() m_NSWMM_rdo_time = new std::vector<int>(); m_NSWMM_rdo_charge = new std::vector<int>(); + m_NSWMM_rdo_localPosX = new std::vector<double>(); + m_NSWMM_rdo_localPosY = new std::vector<double>(); + + m_NSWMM_rdo_globalPosX = new std::vector<double>(); + m_NSWMM_rdo_globalPosY = new std::vector<double>(); + m_NSWMM_rdo_globalPosZ = new std::vector<double>(); + if(m_tree) { m_tree->Branch("RDO_MM_n", &m_NSWMM_nrdo); @@ -129,6 +158,14 @@ StatusCode MMRDOVariables::initializeVariables() m_tree->Branch("RDO_MM_channel", &m_NSWMM_rdo_channel); m_tree->Branch("RDO_MM_time", &m_NSWMM_rdo_time); m_tree->Branch("RDO_MM_charge", &m_NSWMM_rdo_charge); + + m_tree->Branch("RDO_MM_localPosX", &m_NSWMM_rdo_localPosX); + m_tree->Branch("RDO_MM_localPosY", &m_NSWMM_rdo_localPosY); + + m_tree->Branch("RDO_MM_globalPosX", &m_NSWMM_rdo_globalPosX); + m_tree->Branch("RDO_MM_globalPosY", &m_NSWMM_rdo_globalPosY); + m_tree->Branch("RDO_MM_globalPosZ", &m_NSWMM_rdo_globalPosZ); + } return StatusCode::SUCCESS; @@ -147,7 +184,12 @@ void MMRDOVariables::deleteVariables() delete m_NSWMM_rdo_channel; delete m_NSWMM_rdo_time; delete m_NSWMM_rdo_charge; - + delete m_NSWMM_rdo_localPosX; + delete m_NSWMM_rdo_localPosY; + delete m_NSWMM_rdo_globalPosX; + delete m_NSWMM_rdo_globalPosY; + delete m_NSWMM_rdo_globalPosZ; + m_NSWMM_nrdo = 0; m_NSWMM_rdo_stationName = nullptr; @@ -158,6 +200,11 @@ void MMRDOVariables::deleteVariables() m_NSWMM_rdo_channel = nullptr; m_NSWMM_rdo_time = nullptr; m_NSWMM_rdo_charge = nullptr; + m_NSWMM_rdo_localPosX = nullptr; + m_NSWMM_rdo_localPosY = nullptr; + m_NSWMM_rdo_globalPosX = nullptr; + m_NSWMM_rdo_globalPosY = nullptr; + m_NSWMM_rdo_globalPosZ = nullptr; return; } diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.h index 2b587179d2c9..4eac77ac855d 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.h +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/MMRDOVariables.h @@ -29,7 +29,12 @@ class MMRDOVariables : public ValAlgVariables m_NSWMM_rdo_gas_gap(0), m_NSWMM_rdo_channel(0), m_NSWMM_rdo_time(0), - m_NSWMM_rdo_charge(0) + m_NSWMM_rdo_charge(0), + m_NSWMM_rdo_localPosX(0), + m_NSWMM_rdo_localPosY(0), + m_NSWMM_rdo_globalPosX(0), + m_NSWMM_rdo_globalPosY(0), + m_NSWMM_rdo_globalPosZ(0) { setHelper(idhelper); } @@ -67,6 +72,11 @@ class MMRDOVariables : public ValAlgVariables std::vector<int> *m_NSWMM_rdo_time; std::vector<int> *m_NSWMM_rdo_charge; + std::vector<double> *m_NSWMM_rdo_localPosX; + std::vector<double> *m_NSWMM_rdo_localPosY; + std::vector<double> *m_NSWMM_rdo_globalPosX; + std::vector<double> *m_NSWMM_rdo_globalPosY; + std::vector<double> *m_NSWMM_rdo_globalPosZ; }; #endif // MMRDOVARIABLES_H diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.cxx index 02760eb31fad..1544fe8c2588 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.cxx +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.cxx @@ -5,6 +5,7 @@ #include "sTGCRDOVariables.h" #include "AthenaBaseComps/AthAlgorithm.h" +#include "MuonReadoutGeometry/sTgcReadoutElement.h" #include "MuonSimData/MuonSimDataCollection.h" #include "MuonRDO/STGC_RawDataContainer.h" @@ -70,6 +71,26 @@ StatusCode sTGCRDOVariables::fillVariables() m_NSWsTGC_rdo_bcTag->push_back(rdo->bcTag()); m_NSWsTGC_rdo_isDead->push_back(rdo->isDead()); + // get the readout element class where the RDO is recorded + int isSmall = stName[2] == 'S'; + const MuonGM::sTgcReadoutElement* rdoEl = m_detManager->getsTgcRElement_fromIdFields(isSmall, stationEta, stationPhi, multiplet ); + + Amg::Vector2D localStripPos(0.,0.); + if ( rdoEl->stripPosition(Id,localStripPos) ) { + m_NSWsTGC_rdo_localPosX->push_back(localStripPos.x()); + m_NSWsTGC_rdo_localPosY->push_back(localStripPos.y()); + ATH_MSG_DEBUG("sTGC RDO: local pos.: x=" << localStripPos[0] << ", y=" << localStripPos[1]); + } else { + ATH_MSG_WARNING("sTGC RDO: local Strip position not defined"); + } + + // asking the detector element to transform this local to the global position + Amg::Vector3D globalStripPos(0., 0., 0.); + rdoEl->surface(Id).localToGlobal(localStripPos,Amg::Vector3D(0.,0.,0.),globalStripPos); + m_NSWsTGC_rdo_globalPosX->push_back(globalStripPos.x()); + m_NSWsTGC_rdo_globalPosY->push_back(globalStripPos.y()); + m_NSWsTGC_rdo_globalPosZ->push_back(globalStripPos.z()); + // rdo counter for the ntuple m_NSWsTGC_nrdo++; } @@ -100,6 +121,13 @@ StatusCode sTGCRDOVariables::clearVariables() m_NSWsTGC_rdo_bcTag->clear(); m_NSWsTGC_rdo_isDead->clear(); + m_NSWsTGC_rdo_globalPosX->clear(); + m_NSWsTGC_rdo_globalPosY->clear(); + m_NSWsTGC_rdo_globalPosZ->clear(); + + m_NSWsTGC_rdo_localPosX->clear(); + m_NSWsTGC_rdo_localPosY->clear(); + return StatusCode::SUCCESS; } @@ -122,6 +150,12 @@ StatusCode sTGCRDOVariables::initializeVariables() m_NSWsTGC_rdo_bcTag = new std::vector<uint16_t>(); m_NSWsTGC_rdo_isDead = new std::vector<bool>(); + m_NSWsTGC_rdo_localPosX = new std::vector<double>(); + m_NSWsTGC_rdo_localPosY = new std::vector<double>(); + + m_NSWsTGC_rdo_globalPosX = new std::vector<double>(); + m_NSWsTGC_rdo_globalPosY = new std::vector<double>(); + m_NSWsTGC_rdo_globalPosZ = new std::vector<double>(); if(m_tree) { m_tree->Branch("RDO_sTGC_n", &m_NSWsTGC_nrdo); @@ -136,6 +170,13 @@ StatusCode sTGCRDOVariables::initializeVariables() m_tree->Branch("RDO_sTGC_charge", &m_NSWsTGC_rdo_charge); m_tree->Branch("RDO_sTGC_bcTag", &m_NSWsTGC_rdo_bcTag); m_tree->Branch("RDO_sTGC_isDead", &m_NSWsTGC_rdo_isDead); + + m_tree->Branch("RDO_sTGC_localPosX", &m_NSWsTGC_rdo_localPosX); + m_tree->Branch("RDO_sTGC_localPosY", &m_NSWsTGC_rdo_localPosY); + + m_tree->Branch("RDO_sTGC_globalPosX", &m_NSWsTGC_rdo_globalPosX); + m_tree->Branch("RDO_sTGC_globalPosY", &m_NSWsTGC_rdo_globalPosY); + m_tree->Branch("RDO_sTGC_globalPosZ", &m_NSWsTGC_rdo_globalPosZ); } return StatusCode::SUCCESS; @@ -157,6 +198,11 @@ void sTGCRDOVariables::deleteVariables() delete m_NSWsTGC_rdo_charge; delete m_NSWsTGC_rdo_bcTag; delete m_NSWsTGC_rdo_isDead; + delete m_NSWsTGC_rdo_localPosX; + delete m_NSWsTGC_rdo_localPosY; + delete m_NSWsTGC_rdo_globalPosX; + delete m_NSWsTGC_rdo_globalPosY; + delete m_NSWsTGC_rdo_globalPosZ; m_NSWsTGC_nrdo = 0; m_NSWsTGC_rdo_stationName = nullptr; @@ -170,6 +216,11 @@ void sTGCRDOVariables::deleteVariables() m_NSWsTGC_rdo_charge = nullptr; m_NSWsTGC_rdo_bcTag = nullptr; m_NSWsTGC_rdo_isDead = nullptr; + m_NSWsTGC_rdo_localPosX = nullptr; + m_NSWsTGC_rdo_localPosY = nullptr; + m_NSWsTGC_rdo_globalPosX = nullptr; + m_NSWsTGC_rdo_globalPosY = nullptr; + m_NSWsTGC_rdo_globalPosZ = nullptr; return; } diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.h index 2e89de331a01..f5717c023a71 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.h +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/sTGCRDOVariables.h @@ -32,7 +32,12 @@ class sTGCRDOVariables : public ValAlgVariables m_NSWsTGC_rdo_time(0), m_NSWsTGC_rdo_charge(0), m_NSWsTGC_rdo_bcTag(0), - m_NSWsTGC_rdo_isDead(0) + m_NSWsTGC_rdo_isDead(0), + m_NSWsTGC_rdo_localPosX(0), + m_NSWsTGC_rdo_localPosY(0), + m_NSWsTGC_rdo_globalPosX(0), + m_NSWsTGC_rdo_globalPosY(0), + m_NSWsTGC_rdo_globalPosZ(0) { setHelper(idhelper); } @@ -70,6 +75,12 @@ class sTGCRDOVariables : public ValAlgVariables std::vector<uint16_t> *m_NSWsTGC_rdo_bcTag; std::vector<bool> *m_NSWsTGC_rdo_isDead; + std::vector<double> *m_NSWsTGC_rdo_localPosX; + std::vector<double> *m_NSWsTGC_rdo_localPosY; + + std::vector<double> *m_NSWsTGC_rdo_globalPosX; + std::vector<double> *m_NSWsTGC_rdo_globalPosY; + std::vector<double> *m_NSWsTGC_rdo_globalPosZ; }; #endif // STGCRDOVARIABLES_H -- GitLab From 7fa3a0e01184f42c7c5ad8970fb4655956831a51 Mon Sep 17 00:00:00 2001 From: Susumu Oda <Susumu.Oda@cern.ch> Date: Wed, 23 Jan 2019 04:28:21 +0100 Subject: [PATCH 054/192] make SCT_PrepDataToxAOD and SCT_RawDataToxAOD reentrant --- .../src/SCT_PrepDataToxAOD.cxx | 22 +++++++++---------- .../src/SCT_PrepDataToxAOD.h | 10 ++++----- .../src/SCT_RawDataToxAOD.cxx | 10 ++++----- .../src/SCT_RawDataToxAOD.h | 8 +++---- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.cxx b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.cxx index 383071250237..994925b909f9 100644 --- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.cxx +++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -33,7 +33,7 @@ // ///////////////////////////////////////////////////////////////////// SCT_PrepDataToxAOD::SCT_PrepDataToxAOD(const std::string &name, ISvcLocator *pSvcLocator) : - AthAlgorithm(name,pSvcLocator), + AthReentrantAlgorithm(name,pSvcLocator), m_SCTHelper{nullptr}, m_firstEventWarnings{true} { @@ -72,12 +72,12 @@ StatusCode SCT_PrepDataToxAOD::initialize() // Execute method: // ///////////////////////////////////////////////////////////////////// -StatusCode SCT_PrepDataToxAOD::execute() -{ +StatusCode SCT_PrepDataToxAOD::execute(const EventContext& ctx) const +{ // the cluster ambiguity map std::map< Identifier, const SCT_RDORawData* > idToRAWDataMap; if (m_writeRDOinformation.value()) { - SG::ReadHandle<SCT_RDO_Container> rdoContainer(m_rdoContainer); + SG::ReadHandle<SCT_RDO_Container> rdoContainer(m_rdoContainer, ctx); if (rdoContainer.isValid()) { // get all the RIO_Collections in the container for (const auto& collection: *rdoContainer) { @@ -101,18 +101,18 @@ StatusCode SCT_PrepDataToxAOD::execute() ATH_MSG_DEBUG("Size of RDO map is "<<idToRAWDataMap.size()); // Mandatory. This is needed and required if this algorithm is scheduled. - SG::ReadHandle<InDet::SCT_ClusterContainer> sctClusterContainer(m_clustercontainer); + SG::ReadHandle<InDet::SCT_ClusterContainer> sctClusterContainer(m_clustercontainer, ctx); if (not sctClusterContainer.isValid()) { ATH_MSG_FATAL("Cannot retrieve SCT PrepDataContainer " << m_clustercontainer.key()); return StatusCode::FAILURE; } // Create the xAOD container and its auxiliary store: - SG::WriteHandle<xAOD::TrackMeasurementValidationContainer> xaod(m_xAodContainer); + SG::WriteHandle<xAOD::TrackMeasurementValidationContainer> xaod(m_xAodContainer, ctx); ATH_CHECK( xaod.record(std::make_unique<xAOD::TrackMeasurementValidationContainer>(), std::make_unique<xAOD::TrackMeasurementValidationAuxContainer>()) ); - SG::WriteHandle<std::vector<unsigned int> > offsets(m_xAodOffset); + SG::WriteHandle<std::vector<unsigned int> > offsets(m_xAodOffset, ctx); ATH_CHECK( offsets.record(std::make_unique<std::vector<unsigned int> >( m_SCTHelper->wafer_hash_max(), 0 )) ); // Loop over the container @@ -203,7 +203,7 @@ StatusCode SCT_PrepDataToxAOD::execute() // Use the MultiTruth Collection to get a list of all true particle contributing to the cluster if (m_useTruthInfo.value()) { - SG::ReadHandle<PRD_MultiTruthCollection> prdmtColl(m_multiTruth); + SG::ReadHandle<PRD_MultiTruthCollection> prdmtColl(m_multiTruth, ctx); if (prdmtColl.isValid()) { std::vector<int> barcodes; //std::pair<PRD_MultiTruthCollection::const_iterator,PRD_MultiTruthCollection::const_iterator>; @@ -218,7 +218,7 @@ StatusCode SCT_PrepDataToxAOD::execute() // Use the SDO Collection to get a list of all true particle contributing to the cluster per readout element // Also get the energy deposited by each true particle per readout element if (m_writeSDOs.value()) { - SG::ReadHandle<InDetSimDataCollection> sdoCollection(m_SDOcontainer); + SG::ReadHandle<InDetSimDataCollection> sdoCollection(m_SDOcontainer, ctx); if (sdoCollection.isValid()) { addSDOInformation( xprd, prd, &*sdoCollection); } @@ -227,7 +227,7 @@ StatusCode SCT_PrepDataToxAOD::execute() // Now Get the most detailed truth from the SiHits // Note that this could get really slow if there are a lot of hits and clusters if (m_writeSiHits.value()) { - SG::ReadHandle<SiHitCollection> sihitCollection(m_sihitContainer); + SG::ReadHandle<SiHitCollection> sihitCollection(m_sihitContainer, ctx); if (sihitCollection.isValid()) { addSiHitInformation( xprd, prd, &*sihitCollection); } diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.h b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.h index 0ad7343f69fa..9502572c9815 100644 --- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.h +++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_PrepDataToxAOD.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -10,7 +10,7 @@ #ifndef SCT_PREPDATATOXAOD_H #define SCT_PREPDATATOXAOD_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "InDetPrepRawData/SCT_ClusterContainer.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" @@ -39,7 +39,7 @@ namespace InDet } -class SCT_PrepDataToxAOD : public AthAlgorithm { +class SCT_PrepDataToxAOD : public AthReentrantAlgorithm { public: // Constructor with parameters: @@ -47,7 +47,7 @@ public: // Basic algorithm methods: virtual StatusCode initialize(); - virtual StatusCode execute(); + virtual StatusCode execute(const EventContext& ctx) const; virtual StatusCode finalize(); private: @@ -87,7 +87,7 @@ private: BooleanProperty m_writeSiHits{this, "WriteSiHits", true}; // --- private members - std::atomic_bool m_firstEventWarnings; + mutable std::atomic_bool m_firstEventWarnings; }; diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx index 0fbcdfcfe2e7..2ed5f243cb70 100644 --- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx +++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -17,7 +17,7 @@ SCT_RawDataToxAOD::SCT_RawDataToxAOD(const std::string &name, ISvcLocator *pSvcLocator) - : AthAlgorithm(name, pSvcLocator), + : AthReentrantAlgorithm(name, pSvcLocator), m_SCTHelper{nullptr} { } @@ -37,11 +37,11 @@ static SG::AuxElement::Accessor<int> phi_module_acc("phi_module"); static SG::AuxElement::Accessor<int> eta_module_acc("eta_module"); static SG::AuxElement::Accessor<int> side_acc("side"); -StatusCode SCT_RawDataToxAOD::execute() { - SG::ReadHandle<SCT_RDO_Container> rdoContainer(m_rdoContainerName); +StatusCode SCT_RawDataToxAOD::execute(const EventContext& ctx) const { + SG::ReadHandle<SCT_RDO_Container> rdoContainer(m_rdoContainerName, ctx); // Create the output xAOD container and its auxiliary store: - SG::WriteHandle<xAOD::SCTRawHitValidationContainer> xaod(m_xAodRawHitContainerName); + SG::WriteHandle<xAOD::SCTRawHitValidationContainer> xaod(m_xAodRawHitContainerName, ctx); ATH_CHECK(xaod.record(std::make_unique<xAOD::SCTRawHitValidationContainer>(), std::make_unique<xAOD::SCTRawHitValidationAuxContainer>())); diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.h b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.h index 68b635f6c756..5cb610854fb9 100644 --- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.h +++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.h @@ -1,13 +1,13 @@ // -*- C++ -*- /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_RAWDATATOXAOD_H #define SCT_RAWDATATOXAOD_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" // StoreGate Data Handle Key #include "StoreGate/ReadHandleKey.h" @@ -24,12 +24,12 @@ class SCT_ID; /** Algorithm to read RDO information from SCT ntuple and write augmented xAOD. **/ -class SCT_RawDataToxAOD : public AthAlgorithm { +class SCT_RawDataToxAOD : public AthReentrantAlgorithm { public: SCT_RawDataToxAOD(const std::string& name, ISvcLocator* pSvcLocator); StatusCode initialize(); - StatusCode execute(); + StatusCode execute(const EventContext& ctx) const; StatusCode finalize(); private: -- GitLab From 673e9b7594d06f265f9175eb243f6f725c69d62d Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Wed, 23 Jan 2019 07:47:05 +0100 Subject: [PATCH 055/192] Migrated four InDetDetDescr packages from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../BCM_GeoModel/src/BCM_Builder.cxx | 12 +- .../BCM_GeoModel/src/BCM_Module.cxx | 8 +- .../BLM_GeoModel/src/BLM_Builder.cxx | 10 +- .../BLM_GeoModel/src/BLM_Module.cxx | 9 +- .../BLM_GeoModel/src/BLM_Wall.cxx | 21 ++-- .../src/EndPlateFactory.cxx | 98 +++++++-------- .../src/EndPlateFactoryFS.cxx | 97 +++++++-------- .../src/InDetServMatBuilderToolSLHC.cxx | 5 +- .../src/InDetServMatFactory.cxx | 53 ++++---- .../src/InDetServMatFactoryDC2.cxx | 38 +++--- .../src/InDetServMatFactoryDC3.cxx | 41 ++++--- .../src/InDetServMatFactoryFS.cxx | 50 ++++---- .../src/InDetServMatFactorySLHC.cxx | 16 +-- .../src/InDetServMatGeometryManager.cxx | 30 ++--- .../src/PixelServMatFactoryDC2.cxx | 9 +- .../src/PixelServMatFactoryDC3.cxx | 16 +-- .../src/PixelServMatFactoryFS.cxx | 3 +- .../src/SCT_ServMatFactory.cxx | 59 ++++----- .../src/SCT_ServMatFactoryDC2.cxx | 56 +++++---- .../src/SCT_ServMatFactoryDC3.cxx | 70 +++++------ .../src/SCT_ServMatFactoryFS.cxx | 25 ++-- .../src/SquirrelCageFactory.cxx | 115 +++++++++--------- .../src/SquirrelCageFactoryFS.cxx | 56 ++++----- .../src/SupportRailFactory.cxx | 87 ++++++------- .../src/SupportRailFactoryFS.cxx | 44 +++---- .../src/TRT_ServMatFactory.cxx | 25 ++-- .../src/TRT_ServMatFactoryDC2.cxx | 32 ++--- .../src/TRT_ServMatFactoryDC3.cxx | 28 ++--- .../src/TRT_ServMatFactoryFS.cxx | 15 ++- .../src/SCT_BarrelModuleParameters.cxx | 34 +++--- .../src/SCT_BarrelModuleParametersOld.cxx | 55 ++++----- .../src/SCT_BarrelParameters.cxx | 52 ++++---- .../src/SCT_BarrelParametersOld.cxx | 46 +++---- .../src/SCT_ComponentFactory.cxx | 4 +- .../src/SCT_DetectorFactory.cxx | 14 +-- .../src/SCT_ForwardModuleParameters.cxx | 35 +++--- .../src/SCT_ForwardModuleParametersOld.cxx | 79 ++++++------ .../src/SCT_ForwardParameters.cxx | 36 +++--- .../src/SCT_ForwardParametersOld.cxx | 60 +++++---- .../src/SCT_FwdDiscSupport.cxx | 4 +- .../SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx | 25 ++-- .../SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx | 28 ++--- .../SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx | 15 +-- .../src/SCT_GeneralParameters.cxx | 10 +- .../SCT_SLHC_GeoModel/src/SCT_Layer.cxx | 14 +-- .../src/SCT_MaterialManager.cxx | 10 -- .../SCT_SLHC_GeoModel/src/SCT_Module.cxx | 15 +-- .../SCT_SLHC_GeoModel/src/SCT_Sensor.cxx | 6 +- .../SCT_SLHC_GeoModel/src/SCT_Ski.cxx | 6 +- 49 files changed, 833 insertions(+), 843 deletions(-) diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx index 79e8b6c9197f..98be47f59a3f 100755 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx @@ -19,6 +19,8 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" +#include "GaudiKernel/SystemOfUnits.h" + //================ Constructor ================================================= InDetDD::BCM_Builder::BCM_Builder(const std::string& t, @@ -232,11 +234,11 @@ StatusCode InDetDD::BCM_Builder::build(GeoVPhysVol* pv) //setting transformation GeoTrf::Translation3D pos(parameters->Position_X(), parameters->Position_Y(), parameters->Position_Z()); - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*GeoModelKernelUnits::deg) - * GeoTrf::RotateY3D(parameters->Rotation_Y()*GeoModelKernelUnits::deg) - * GeoTrf::RotateX3D(parameters->Rotation_X()*GeoModelKernelUnits::deg) - * GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg) - * GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*Gaudi::Units::deg) + * GeoTrf::RotateY3D(parameters->Rotation_Y()*Gaudi::Units::deg) + * GeoTrf::RotateX3D(parameters->Rotation_X()*Gaudi::Units::deg) + * GeoTrf::RotateZ3D(-90.*Gaudi::Units::deg) + * GeoTrf::RotateY3D(-90.*Gaudi::Units::deg); GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); xform->ref(); ATH_MSG_DEBUG(" --> Module " << i << " build!"); diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx index 28ba6043a842..b06e3b3ad9d8 100755 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx @@ -13,6 +13,8 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSimplePolygonBrep.h" +#include "GaudiKernel/SystemOfUnits.h" + GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_ModuleParameters* parameters, MsgStream* /*msg*/) { //module outside dimensions @@ -110,7 +112,7 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul GeoPhysVol* WallC = wall.Build(ModLength/2, ReducedModWidth/2, G10Thick, CuThick, g10, copper, mat_mgr); GeoTrf::Translation3D WallCPos(ModHeight/2 - WallThick/2, 0, 0); - GeoTrf::RotateY3D rmC(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D rmC(90.*Gaudi::Units::deg); GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(WallCPos*rmC)); GeoNameTag* tag = new GeoNameTag("Wall C"); env_bcmModPhys->add(tag); @@ -236,7 +238,7 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul GeoPhysVol* WallA = wall.Build(ModTailHeight/2, (ModLength - ModHeadLength)/2, CuThick, G10Thick, copper, g10, mat_mgr); GeoTrf::Translation3D WallAPos((ModHeight - ModTailHeight)/2 , (ReducedModWidth + WallThick)/2, -ModHeadLength/2); - GeoTrf::RotateX3D rmA(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rmA(90.*Gaudi::Units::deg); xform = new GeoTransform(GeoTrf::Transform3D(WallAPos*rmA)); tag = new GeoNameTag("Wall A"); env_bcmModPhys->add(tag); @@ -278,7 +280,7 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul // Add the BCM envelop inside the new complex encompassing volume // -------------------------------------------------------------------------------------- - GeoTrf::Transform3D rmEnv = GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rmEnv = GeoTrf::RotateY3D(90.*Gaudi::Units::deg)*GeoTrf::RotateZ3D(90.*Gaudi::Units::deg); xform = new GeoTransform(rmEnv); tag = new GeoNameTag("EnvBcmWallLog"); bcmModPhys->add(tag); diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx index 12c308b8d307..96c4d38c1039 100644 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx @@ -20,6 +20,8 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" +#include "GaudiKernel/SystemOfUnits.h" + //================ Constructor ================================================= InDetDD::BLM_Builder::BLM_Builder(const std::string& t, @@ -240,10 +242,10 @@ StatusCode InDetDD::BLM_Builder::build(GeoVPhysVol* pv) BLM_ModuleParameters* parameters = manager->Module(i); //setting transformation - GeoTrf::Translation3D pos(parameters->R()*cos(parameters->Phi()*GeoModelKernelUnits::deg), parameters->R()*sin(parameters->Phi()*GeoModelKernelUnits::deg), parameters->Z()); - GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*GeoModelKernelUnits::deg) - * GeoTrf::RotateY3D(parameters->Rotation_Y()*GeoModelKernelUnits::deg) - * GeoTrf::RotateX3D(parameters->Rotation_X()*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos(parameters->R()*cos(parameters->Phi()*Gaudi::Units::deg), parameters->R()*sin(parameters->Phi()*Gaudi::Units::deg), parameters->Z()); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*Gaudi::Units::deg) + * GeoTrf::RotateY3D(parameters->Rotation_Y()*Gaudi::Units::deg) + * GeoTrf::RotateX3D(parameters->Rotation_X()*Gaudi::Units::deg); GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); xform->ref(); //building module diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx index 5b5e88207f4e..c16ec7a1be8f 100755 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx @@ -12,6 +12,9 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" + GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_ModuleParameters* parameters, MsgStream* msg) { double CuThick = 0.015; @@ -47,7 +50,7 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul { if(msg) (*msg) << "BLM _ PEEK _ MISSING." << endmsg; - GeoMaterial* peektmp = new GeoMaterial("PEEK", 1.3*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial* peektmp = new GeoMaterial("PEEK", 1.3*GeoModelKernelUnits::gram/Gaudi::Units::cm3); GeoElement* hydrogen = new GeoElement("Hydrogen", "H", 1.0, 1.010); GeoElement* oxygen = new GeoElement("Oxygen", "O", 8.0, 16.000); GeoElement* carbon = new GeoElement("Carbon", "C", 6.0, 12.010); @@ -200,8 +203,8 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* screw6 = wall.BuildScrew(10, stainless_steel); GeoPhysVol* screw7 = wall.BuildScrew(BLM_Wall::s_holder_thickness, stainless_steel); GeoPhysVol* screw8 = wall.BuildScrew(BLM_Wall::s_holder_thickness, stainless_steel); - GeoTrf::RotateX3D screwRot(90.*GeoModelKernelUnits::deg); - GeoTrf::RotateX3D screwRot1(180.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D screwRot(90.*Gaudi::Units::deg); + GeoTrf::RotateX3D screwRot1(180.*Gaudi::Units::deg); GeoTrf::Translation3D screwPos1(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); GeoTrf::Translation3D screwPos2(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); GeoTrf::Translation3D screwPos3(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_length+BLM_Wall::s_hole_position); diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx index e2983ec4d48a..516183bcb523 100755 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx @@ -10,6 +10,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" +#include "GaudiKernel/SystemOfUnits.h" double BLM_Wall::s_width = 18; double BLM_Wall::s_length = 22; @@ -29,7 +30,7 @@ GeoPhysVol* BLM_Wall::BuildClamp(const GeoMaterial* material) const GeoBox* blmWallBox = new GeoBox(s_width/2, s_clamp_thickness/2, s_clamp_length/2); const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_clamp_thickness); //rotations - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); //position of holes GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_clamp_length/2-2.5); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_clamp_length/2-2.5); @@ -76,7 +77,7 @@ GeoPhysVol* BLM_Wall::BuildHolder(const GeoMaterial* material) const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_holder_thickness); const GeoBox* blmWallHole1 = new GeoBox(s_holder_spacing/2, s_holder_height, (s_holder_spacing_length+s_holder_thickness)/2+1); //rotations - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); //position of holes GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_holder_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_holder_length/2-s_hole_position); @@ -124,8 +125,8 @@ GeoPhysVol* BLM_Wall::BuildLayerI(double thick, const GeoMaterial* material, boo const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.9); const GeoShape* blmWallHole2 = new GeoBox(s_width/2-6.1, thick, 4); const GeoShape* blmWallHole3 = new GeoBox(3.89, thick, 3.89); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); - GeoTrf::RotateY3D rm1(45.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); + GeoTrf::RotateY3D rm1(45.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); @@ -162,7 +163,7 @@ GeoPhysVol* BLM_Wall::BuildLayerI(double thick, const GeoMaterial* material, boo { const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_extended_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); @@ -197,8 +198,8 @@ GeoPhysVol* BLM_Wall::BuildLayerII(double thick, const GeoMaterial* material) const GeoShape* blmWallHole2 = new GeoBox(s_width/2-6.1, thick, 4); //const GeoShape* blmWallHole3 = new GeoBox(1.76777, thick, 1.76777); const GeoShape* blmWallHole3 = new GeoBox(3.9, thick, 3.9); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); - GeoTrf::RotateY3D rm1(45.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); + GeoTrf::RotateY3D rm1(45.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); @@ -235,7 +236,7 @@ GeoPhysVol* BLM_Wall::BuildLayerIII(double thick, const GeoMaterial* material) const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.425); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); @@ -263,7 +264,7 @@ GeoPhysVol* BLM_Wall::BuildLayerIV(double thick, const GeoMaterial* material) const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.425); const GeoShape* blmWallHole2 = new GeoBox(s_width/2-8.1, thick, 4); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); @@ -291,7 +292,7 @@ GeoPhysVol* BLM_Wall::BuildLayerV(double thick, const GeoMaterial* material) { const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); - GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D rm(90.*Gaudi::Units::deg); GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx index 98dfcadc2716..c70c11f80613 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx @@ -23,6 +23,8 @@ #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GaudiKernel/SystemOfUnits.h" + #include <iostream> @@ -48,29 +50,29 @@ void EndPlateFactory::create(GeoPhysVol *mother) //---------------------------------------------------------------------------------- // std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; // const GeoMaterial* cylMat = materialManager()->getMaterial(matName); -// double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; +// double rmin = (*pbfi)[ii]->getFloat("RIN")*Gaudi::Units::cm; //---------------------------------------------------------------------------------- - double safety = 0.01*GeoModelKernelUnits::mm; - double maxRofEP = 1075.0*GeoModelKernelUnits::mm - safety; // Interfere with TRT PatchPanel1 - double RibConnection = 550.0*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; + double maxRofEP = 1075.0*Gaudi::Units::mm - safety; // Interfere with TRT PatchPanel1 + double RibConnection = 550.0*Gaudi::Units::mm; - maxRofEP = (*shell)[0]->getDouble("EPMAXR")*GeoModelKernelUnits::mm - safety; - RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*GeoModelKernelUnits::mm; + maxRofEP = (*shell)[0]->getDouble("EPMAXR")*Gaudi::Units::mm - safety; + RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*Gaudi::Units::mm; // // Internal shell. Default (initial) values // - double rminInt = 425.*GeoModelKernelUnits::mm; - double rmaxInt = 1040.*GeoModelKernelUnits::mm; - double thickShell = 3.*GeoModelKernelUnits::mm; - double thick2 = 10.*GeoModelKernelUnits::mm; - double zposEP = 3370.*GeoModelKernelUnits::mm; - double zleng = 42.*GeoModelKernelUnits::mm; - rminInt = (*shell)[0]->getDouble("RMININT")*GeoModelKernelUnits::mm; - rmaxInt = (*shell)[0]->getDouble("RMAXINT")*GeoModelKernelUnits::mm; - thickShell = (*shell)[0]->getDouble("THICKSHELL")*GeoModelKernelUnits::mm; - thick2 = (*shell)[0]->getDouble("THICKADD")*GeoModelKernelUnits::mm; - zposEP = (*shell)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm; - zleng = (*shell)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm; + double rminInt = 425.*Gaudi::Units::mm; + double rmaxInt = 1040.*Gaudi::Units::mm; + double thickShell = 3.*Gaudi::Units::mm; + double thick2 = 10.*Gaudi::Units::mm; + double zposEP = 3370.*Gaudi::Units::mm; + double zleng = 42.*Gaudi::Units::mm; + rminInt = (*shell)[0]->getDouble("RMININT")*Gaudi::Units::mm; + rmaxInt = (*shell)[0]->getDouble("RMAXINT")*Gaudi::Units::mm; + thickShell = (*shell)[0]->getDouble("THICKSHELL")*Gaudi::Units::mm; + thick2 = (*shell)[0]->getDouble("THICKADD")*Gaudi::Units::mm; + zposEP = (*shell)[0]->getDouble("ZSTART")*Gaudi::Units::mm; + zleng = (*shell)[0]->getDouble("ZSHIFT")*Gaudi::Units::mm; GeoPcon* shellInt = new GeoPcon(0.,2*M_PI); @@ -101,12 +103,12 @@ void EndPlateFactory::create(GeoPhysVol *mother) // // External shell (default/initial values) - double zgap = 50.*GeoModelKernelUnits::mm; - double rminExt = 250.*GeoModelKernelUnits::mm; + double zgap = 50.*Gaudi::Units::mm; + double rminExt = 250.*Gaudi::Units::mm; double rmaxExt = maxRofEP; - zgap = (*shell)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm; - rminExt = (*shell)[0]->getDouble("RMINEXT")*GeoModelKernelUnits::mm; + zgap = (*shell)[0]->getDouble("ZGAP")*Gaudi::Units::mm; + rminExt = (*shell)[0]->getDouble("RMINEXT")*Gaudi::Units::mm; const GeoTube* shellExt = new GeoTube(rminExt,rmaxExt,thickShell/2.); @@ -127,19 +129,19 @@ void EndPlateFactory::create(GeoPhysVol *mother) // // Insert - default (initial) values - double zthick = 16.0*GeoModelKernelUnits::mm; - double zinsert = 3018.*GeoModelKernelUnits::mm-zthick; - double rminins = 252.*GeoModelKernelUnits::mm; - double rmaxins = 435.*GeoModelKernelUnits::mm; - double rthick = 5.*GeoModelKernelUnits::mm; - double zlengi = 410.*GeoModelKernelUnits::mm; + double zthick = 16.0*Gaudi::Units::mm; + double zinsert = 3018.*Gaudi::Units::mm-zthick; + double rminins = 252.*Gaudi::Units::mm; + double rmaxins = 435.*Gaudi::Units::mm; + double rthick = 5.*Gaudi::Units::mm; + double zlengi = 410.*Gaudi::Units::mm; - zthick = (*insert)[0]->getDouble("ZTHICK")*GeoModelKernelUnits::mm; - zinsert = (*insert)[0]->getDouble("ZINSERT")*GeoModelKernelUnits::mm; - rminins = (*insert)[0]->getDouble("RMININS")*GeoModelKernelUnits::mm; - rmaxins = (*insert)[0]->getDouble("RMAXINS")*GeoModelKernelUnits::mm; - rthick = (*insert)[0]->getDouble("RTHICK")*GeoModelKernelUnits::mm; - zlengi = (*insert)[0]->getDouble("ZLENGINS")*GeoModelKernelUnits::mm; + zthick = (*insert)[0]->getDouble("ZTHICK")*Gaudi::Units::mm; + zinsert = (*insert)[0]->getDouble("ZINSERT")*Gaudi::Units::mm; + rminins = (*insert)[0]->getDouble("RMININS")*Gaudi::Units::mm; + rmaxins = (*insert)[0]->getDouble("RMAXINS")*Gaudi::Units::mm; + rthick = (*insert)[0]->getDouble("RTHICK")*Gaudi::Units::mm; + zlengi = (*insert)[0]->getDouble("ZLENGINS")*Gaudi::Units::mm; GeoPcon* Insert = new GeoPcon(0.,2*M_PI); Insert->addPlane(0. , rminins, rmaxins+rthick); @@ -169,15 +171,15 @@ void EndPlateFactory::create(GeoPhysVol *mother) // Short ribs - default (initial) values // Initial position is along X axis then move and rotate // - double ribY = 12.0*GeoModelKernelUnits::mm; + double ribY = 12.0*Gaudi::Units::mm; double ribZ = zgap - safety; - double ribX = 380.0*GeoModelKernelUnits::mm; - double posX = 550.0*GeoModelKernelUnits::mm+ribX/2.; + double ribX = 380.0*Gaudi::Units::mm; + double posX = 550.0*Gaudi::Units::mm+ribX/2.; - ribY = (*ribs)[0]->getDouble("SHORTWID")*GeoModelKernelUnits::mm; + ribY = (*ribs)[0]->getDouble("SHORTWID")*Gaudi::Units::mm; ribZ = zgap - safety; - ribX = (*ribs)[0]->getDouble("SHORTLENG")*GeoModelKernelUnits::mm; - posX = (*ribs)[0]->getDouble("SHORTRSTART")*GeoModelKernelUnits::mm + ribX/2.; + ribX = (*ribs)[0]->getDouble("SHORTLENG")*Gaudi::Units::mm; + posX = (*ribs)[0]->getDouble("SHORTRSTART")*Gaudi::Units::mm + ribX/2.; const GeoBox* ribShort = new GeoBox(ribX/2., ribY/2., ribZ/2.); @@ -207,22 +209,22 @@ void EndPlateFactory::create(GeoPhysVol *mother) //--------------------------------------------------------------------------------- // Long ribs (initial position is along X axis then move and rotate) // - double ribY1 = 20.0*GeoModelKernelUnits::mm; + double ribY1 = 20.0*Gaudi::Units::mm; double ribZ1 = zgap - safety; - double ribX1 = RibConnection-250.*GeoModelKernelUnits::mm; - double posX1 = 250.*GeoModelKernelUnits::mm+ribX1/2.; + double ribX1 = RibConnection-250.*Gaudi::Units::mm; + double posX1 = 250.*Gaudi::Units::mm+ribX1/2.; - double ribY2 = 30.0*GeoModelKernelUnits::mm; + double ribY2 = 30.0*Gaudi::Units::mm; double ribZ2 = zgap - safety; double ribX2 = maxRofEP - RibConnection; double posX2 = RibConnection+ribX2/2.; - ribY1 = (*ribs)[0]->getDouble("LONGWID1")*GeoModelKernelUnits::mm; + ribY1 = (*ribs)[0]->getDouble("LONGWID1")*Gaudi::Units::mm; ribZ1 = zgap - safety; - ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm; // LONGLENG1 is a RMIN of ribs - posX1 = (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! + ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*Gaudi::Units::mm; // LONGLENG1 is a RMIN of ribs + posX1 = (*ribs)[0]->getDouble("LONGLENG1")*Gaudi::Units::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! - ribY2 = (*ribs)[0]->getDouble("LONGWID2")*GeoModelKernelUnits::mm; + ribY2 = (*ribs)[0]->getDouble("LONGWID2")*Gaudi::Units::mm; ribZ2 = zgap - safety; ribX2 = maxRofEP - RibConnection; posX2 = RibConnection+ribX2/2.; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx index 508d487c5d17..56518c48da11 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx @@ -24,6 +24,7 @@ #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -64,29 +65,29 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //---------------------------------------------------------------------------------- // std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; // const GeoMaterial* cylMat = materialManager->getMaterial(matName); -// double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; +// double rmin = (*pbfi)[ii]->getFloat("RIN")*Gaudi::Units::cm; //---------------------------------------------------------------------------------- - double safety = 0.01*GeoModelKernelUnits::mm; - double maxRofEP = 1075.0*GeoModelKernelUnits::mm - safety; // Interfere with TRT PatchPanel1 - double RibConnection = 550.0*GeoModelKernelUnits::mm; + double safety = 0.01*Gaudi::Units::mm; + double maxRofEP = 1075.0*Gaudi::Units::mm - safety; // Interfere with TRT PatchPanel1 + double RibConnection = 550.0*Gaudi::Units::mm; - maxRofEP = (*shell)[0]->getDouble("EPMAXR")*GeoModelKernelUnits::mm - safety; - RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*GeoModelKernelUnits::mm; + maxRofEP = (*shell)[0]->getDouble("EPMAXR")*Gaudi::Units::mm - safety; + RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*Gaudi::Units::mm; // // Internal shell. Default (initial) values // - double rminInt = 425.*GeoModelKernelUnits::mm; - double rmaxInt = 1040.*GeoModelKernelUnits::mm; - double thickShell = 3.*GeoModelKernelUnits::mm; - double thick2 = 10.*GeoModelKernelUnits::mm; - double zposEP = 3370.*GeoModelKernelUnits::mm; - double zleng = 42.*GeoModelKernelUnits::mm; - rminInt = (*shell)[0]->getDouble("RMININT")*GeoModelKernelUnits::mm; - rmaxInt = (*shell)[0]->getDouble("RMAXINT")*GeoModelKernelUnits::mm; - thickShell = (*shell)[0]->getDouble("THICKSHELL")*GeoModelKernelUnits::mm; - thick2 = (*shell)[0]->getDouble("THICKADD")*GeoModelKernelUnits::mm; - zposEP = (*shell)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm; - zleng = (*shell)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm; + double rminInt = 425.*Gaudi::Units::mm; + double rmaxInt = 1040.*Gaudi::Units::mm; + double thickShell = 3.*Gaudi::Units::mm; + double thick2 = 10.*Gaudi::Units::mm; + double zposEP = 3370.*Gaudi::Units::mm; + double zleng = 42.*Gaudi::Units::mm; + rminInt = (*shell)[0]->getDouble("RMININT")*Gaudi::Units::mm; + rmaxInt = (*shell)[0]->getDouble("RMAXINT")*Gaudi::Units::mm; + thickShell = (*shell)[0]->getDouble("THICKSHELL")*Gaudi::Units::mm; + thick2 = (*shell)[0]->getDouble("THICKADD")*Gaudi::Units::mm; + zposEP = (*shell)[0]->getDouble("ZSTART")*Gaudi::Units::mm; + zleng = (*shell)[0]->getDouble("ZSHIFT")*Gaudi::Units::mm; GeoTube* shellInt1 = new GeoTube(rminInt,rminInt+thick2,zleng*0.5); GeoTube* shellInt2 = new GeoTube(rminInt,rmaxInt,thickShell*0.5); @@ -120,12 +121,12 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // // External shell (default/initial values) - double zgap = 50.*GeoModelKernelUnits::mm; - double rminExt = 250.*GeoModelKernelUnits::mm; + double zgap = 50.*Gaudi::Units::mm; + double rminExt = 250.*Gaudi::Units::mm; double rmaxExt = maxRofEP; - zgap = (*shell)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm; - rminExt = (*shell)[0]->getDouble("RMINEXT")*GeoModelKernelUnits::mm; + zgap = (*shell)[0]->getDouble("ZGAP")*Gaudi::Units::mm; + rminExt = (*shell)[0]->getDouble("RMINEXT")*Gaudi::Units::mm; const GeoTube* shellExt = new GeoTube(rminExt,rmaxExt,thickShell/2.); @@ -146,19 +147,19 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // // Insert - default (initial) values - double zthick = 16.0*GeoModelKernelUnits::mm; - double zinsert = 3018.*GeoModelKernelUnits::mm-zthick; - double rminins = 252.*GeoModelKernelUnits::mm; - double rmaxins = 435.*GeoModelKernelUnits::mm; - double rthick = 5.*GeoModelKernelUnits::mm; - double zlengi = 410.*GeoModelKernelUnits::mm; + double zthick = 16.0*Gaudi::Units::mm; + double zinsert = 3018.*Gaudi::Units::mm-zthick; + double rminins = 252.*Gaudi::Units::mm; + double rmaxins = 435.*Gaudi::Units::mm; + double rthick = 5.*Gaudi::Units::mm; + double zlengi = 410.*Gaudi::Units::mm; - zthick = (*insert)[0]->getDouble("ZTHICK")*GeoModelKernelUnits::mm; - zinsert = (*insert)[0]->getDouble("ZINSERT")*GeoModelKernelUnits::mm; - rminins = (*insert)[0]->getDouble("RMININS")*GeoModelKernelUnits::mm; - rmaxins = (*insert)[0]->getDouble("RMAXINS")*GeoModelKernelUnits::mm; - rthick = (*insert)[0]->getDouble("RTHICK")*GeoModelKernelUnits::mm; - zlengi = (*insert)[0]->getDouble("ZLENGINS")*GeoModelKernelUnits::mm; + zthick = (*insert)[0]->getDouble("ZTHICK")*Gaudi::Units::mm; + zinsert = (*insert)[0]->getDouble("ZINSERT")*Gaudi::Units::mm; + rminins = (*insert)[0]->getDouble("RMININS")*Gaudi::Units::mm; + rmaxins = (*insert)[0]->getDouble("RMAXINS")*Gaudi::Units::mm; + rthick = (*insert)[0]->getDouble("RTHICK")*Gaudi::Units::mm; + zlengi = (*insert)[0]->getDouble("ZLENGINS")*Gaudi::Units::mm; GeoTube* Insert1 = new GeoTube(rminins,rmaxins+rthick,zthick*0.5); GeoTube* Insert2 = new GeoTube(rmaxins,rmaxins+rthick,(zlengi-zthick)*0.5); @@ -194,15 +195,15 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // Short ribs - default (initial) values // Initial position is along X axis then move and rotate // - double ribY = 12.0*GeoModelKernelUnits::mm; + double ribY = 12.0*Gaudi::Units::mm; double ribZ = zgap - safety; - double ribX = 380.0*GeoModelKernelUnits::mm; - double posX = 550.0*GeoModelKernelUnits::mm+ribX/2.; + double ribX = 380.0*Gaudi::Units::mm; + double posX = 550.0*Gaudi::Units::mm+ribX/2.; - ribY = (*ribs)[0]->getDouble("SHORTWID")*GeoModelKernelUnits::mm; + ribY = (*ribs)[0]->getDouble("SHORTWID")*Gaudi::Units::mm; ribZ = zgap - safety; - ribX = (*ribs)[0]->getDouble("SHORTLENG")*GeoModelKernelUnits::mm; - posX = (*ribs)[0]->getDouble("SHORTRSTART")*GeoModelKernelUnits::mm + ribX/2.; + ribX = (*ribs)[0]->getDouble("SHORTLENG")*Gaudi::Units::mm; + posX = (*ribs)[0]->getDouble("SHORTRSTART")*Gaudi::Units::mm + ribX/2.; const GeoBox* ribShort = new GeoBox(ribX/2., ribY/2., ribZ/2.); @@ -232,22 +233,22 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //--------------------------------------------------------------------------------- // Long ribs (initial position is along X axis then move and rotate) // - double ribY1 = 20.0*GeoModelKernelUnits::mm; + double ribY1 = 20.0*Gaudi::Units::mm; double ribZ1 = zgap - safety; - double ribX1 = RibConnection-250.*GeoModelKernelUnits::mm; - double posX1 = 250.*GeoModelKernelUnits::mm+ribX1/2.; + double ribX1 = RibConnection-250.*Gaudi::Units::mm; + double posX1 = 250.*Gaudi::Units::mm+ribX1/2.; - double ribY2 = 30.0*GeoModelKernelUnits::mm; + double ribY2 = 30.0*Gaudi::Units::mm; double ribZ2 = zgap - safety; double ribX2 = maxRofEP - RibConnection; double posX2 = RibConnection+ribX2/2.; - ribY1 = (*ribs)[0]->getDouble("LONGWID1")*GeoModelKernelUnits::mm; + ribY1 = (*ribs)[0]->getDouble("LONGWID1")*Gaudi::Units::mm; ribZ1 = zgap - safety; - ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm; // LONGLENG1 is a RMIN of ribs - posX1 = (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! + ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*Gaudi::Units::mm; // LONGLENG1 is a RMIN of ribs + posX1 = (*ribs)[0]->getDouble("LONGLENG1")*Gaudi::Units::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! - ribY2 = (*ribs)[0]->getDouble("LONGWID2")*GeoModelKernelUnits::mm; + ribY2 = (*ribs)[0]->getDouble("LONGWID2")*Gaudi::Units::mm; ribZ2 = zgap - safety; ribX2 = maxRofEP - RibConnection; posX2 = RibConnection+ribX2/2.; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx index 87365a42dd85..c7e100403a00 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx @@ -13,6 +13,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" #include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "InDetServMatGeoModel/ServicesTracker.h" #include "InDetServMatGeoModel/ServicesTrackerBuilder.h" @@ -301,8 +302,8 @@ void InDetServMatBuilderToolSLHC::printNewVolume( const ServiceVolume& vol, << " zmin " << vol.zMin() << " zmax " << vol.zMax() << endmsg; - msg(MSG::DEBUG) << "name " << vol.name() << " density " << dens * GeoModelKernelUnits::cm3 / GeoModelKernelUnits::g - << " [g/cm3] weight " << dens*param.volume()/GeoModelKernelUnits::kg << " [kg]" << endmsg; + msg(MSG::DEBUG) << "name " << vol.name() << " density " << dens * Gaudi::Units::cm3 / GeoModelKernelUnits::g + << " [g/cm3] weight " << dens*param.volume()/Gaudi::Units::kg << " [kg]" << endmsg; } if (msgLvl(MSG::DEBUG)) { // FIXME: change to VERBOSE when done! msg(MSG::DEBUG) << "Number of elements: " << mat.getNumElements() << endmsg; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx index 6854e139abd6..b69e6c15e7d0 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx @@ -35,8 +35,7 @@ // StoreGate includes #include "StoreGate/StoreGateSvc.h" - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <iostream> @@ -90,26 +89,26 @@ void InDetServMatFactory::create(GeoPhysVol *world ) InDetMaterialManager * materialManager = new InDetMaterialManager("InDetServMatMaterialManager", getAthenaComps()); materialManager->addScalingTable(scalingTable); - double safety = 0.001 * GeoModelKernelUnits::mm; - - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm + safety; // 3470 mm - - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm + safety; // 1147 mm + double safety = 0.001 * Gaudi::Units::mm; + + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * Gaudi::Units::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * Gaudi::Units::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * Gaudi::Units::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * Gaudi::Units::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * Gaudi::Units::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * Gaudi::Units::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * Gaudi::Units::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * Gaudi::Units::cm + safety; // 3470 mm + + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * Gaudi::Units::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * Gaudi::Units::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * Gaudi::Units::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * Gaudi::Units::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * Gaudi::Units::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * Gaudi::Units::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * Gaudi::Units::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * Gaudi::Units::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * Gaudi::Units::cm + safety; // 1147 mm // Since the TRT Wheel C space is not used in some versions and is used by some // other services we simplify the volume. @@ -124,12 +123,12 @@ void InDetServMatFactory::create(GeoPhysVol *world ) bool join1 = false; bool join2 = false; - if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*GeoModelKernelUnits::mm){ + if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*Gaudi::Units::mm){ join1 = true; join2 = true; RMaxFwdTRTC = RMinPixServ; RMaxPixServ = RMinPixServ; - } else if ((RMaxFwdTRTC - 1*GeoModelKernelUnits::mm) <= RMaxPixServ) { + } else if ((RMaxFwdTRTC - 1*Gaudi::Units::mm) <= RMaxPixServ) { join1 = true; RMaxPixServ = RMaxFwdTRTC; } @@ -142,8 +141,8 @@ void InDetServMatFactory::create(GeoPhysVol *world ) const GeoShapeUnion *ServVolAux = 0; if (!join1) { - GeoPcon* pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); - GeoPcon* pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* pixServP = new GeoPcon(0.,2*Gaudi::Units::pi); + GeoPcon* pixServM = new GeoPcon(0.,2*Gaudi::Units::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -163,7 +162,7 @@ void InDetServMatFactory::create(GeoPhysVol *world ) } // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServ = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon *sctTrtServ = new GeoPcon(0.,2*Gaudi::Units::pi); // Pixel Services if (join1) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx index 43f828b400c7..a1d34bf14ff8 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx @@ -24,7 +24,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GaudiKernel/Bootstrap.h" - +#include "GaudiKernel/SystemOfUnits.h" InDetServMatFactoryDC2::InDetServMatFactoryDC2(StoreGateSvc *detStore,ServiceHandle<IRDBAccessSvc> pRDBAccess) : m_detStore(detStore), @@ -95,42 +95,42 @@ void InDetServMatFactoryDC2::create(GeoPhysVol *world) // double epsilon = 0.001; - double endZOfBTRT = (*trtb)[0]->getDouble("ZLEN")*GeoModelKernelUnits::cm; - double endZOfBSCT = (*sctg)[0]->getDouble("HLEN")*GeoModelKernelUnits::cm; - double begZOfFSCT = (*zscg)[0]->getDouble("ZLOEND")*GeoModelKernelUnits::cm; - double endZOfFSCT = (*zscg)[0]->getDouble("ZHIEND")*GeoModelKernelUnits::cm; + double endZOfBTRT = (*trtb)[0]->getDouble("ZLEN")*Gaudi::Units::cm; + double endZOfBSCT = (*sctg)[0]->getDouble("HLEN")*Gaudi::Units::cm; + double begZOfFSCT = (*zscg)[0]->getDouble("ZLOEND")*Gaudi::Units::cm; + double endZOfFSCT = (*zscg)[0]->getDouble("ZHIEND")*Gaudi::Units::cm; double endZOfFTRT = ((*trtb)[15]->getDouble("ZPOSA") + ((*trtb)[15]->getDouble("ZLEN")+(*trtb)[15]->getDouble("ZGAP"))/2. + ((*trtb)[2]->getDouble("ZPOSA")-(*trtb)[1]->getDouble("ZPOSA"))*3 - + (*trtb)[1]->getDouble("ZLEN")/2.)*GeoModelKernelUnits::cm; + + (*trtb)[1]->getDouble("ZLEN")/2.)*Gaudi::Units::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; // This is endOfEndCapVolumeAB //double begZOfSCTServInTRT = ((trtb[7].zposa + (trtb[7].zlen + trtb[7].zgap)/2.) + - // (trtb[8].zposa - trtb[7].zposa)*7 + trtb[7].zlen/2.)*GeoModelKernelUnits::cm; + // (trtb[8].zposa - trtb[7].zposa)*7 + trtb[7].zlen/2.)*Gaudi::Units::cm; // This is beginningOfEndCapVolumeC // double endZOfSCTServInTRT = (trtb[15].zposa + (trtb[15].zlen + trtb[15].zgap)/2. - - // trtb[1].zlen/2.)*GeoModelKernelUnits::cm; + // trtb[1].zlen/2.)*Gaudi::Units::cm; - // The SCT services go from 2755.306 to 2775.306 GeoModelKernelUnits::mm + // The SCT services go from 2755.306 to 2775.306 Gaudi::Units::mm // The TRT has a gap from 2712.25 to 2829.75 mm // We hard wire an envelope for these services instead. - double begZOfSCTServInTRT = 2755. * GeoModelKernelUnits::mm; - double endZOfSCTServInTRT = 2776. * GeoModelKernelUnits::mm; + double begZOfSCTServInTRT = 2755. * Gaudi::Units::mm; + double endZOfSCTServInTRT = 2776. * Gaudi::Units::mm; //std::cout << "Begin SCT services " << begZOfSCTServInTRT << std::endl; //std::cout << "End SCT services " << endZOfSCTServInTRT << std::endl; - double outROfPixel = (*zscg)[0]->getDouble("RINEND")*GeoModelKernelUnits::cm; - double inROfFTRT = (*trtb)[15]->getDouble("RI")*GeoModelKernelUnits::cm; - double outROfFSCT = (*zscg)[0]->getDouble("ROUEND")*GeoModelKernelUnits::cm; - double outROfBSCT = (*sctg)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double outROfPixelCables = (*pbfi)[0]->getFloat("ROUT")*GeoModelKernelUnits::cm; - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double outROfTRT = (*trtg)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double outROfPixel = (*zscg)[0]->getDouble("RINEND")*Gaudi::Units::cm; + double inROfFTRT = (*trtb)[15]->getDouble("RI")*Gaudi::Units::cm; + double outROfFSCT = (*zscg)[0]->getDouble("ROUEND")*Gaudi::Units::cm; + double outROfBSCT = (*sctg)[0]->getDouble("RMAX")*Gaudi::Units::cm; + double outROfPixelCables = (*pbfi)[0]->getFloat("ROUT")*Gaudi::Units::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double outROfTRT = (*trtg)[0]->getDouble("RMAX")*Gaudi::Units::cm; // // Create the envelope for the Pixel Services: diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx index 024b50ae510b..010bd1058f32 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx @@ -35,6 +35,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" +#include "GaudiKernel/PhysicalConstants.h" #include <iostream> InDetServMatFactoryDC3::InDetServMatFactoryDC3(const InDetDD::AthenaComps * athenaComps) @@ -87,24 +88,24 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) InDetMaterialManager * materialManager = new InDetMaterialManager("InDetServMatMaterialManager", getAthenaComps()); - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm; // 3490 mm + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * Gaudi::Units::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * Gaudi::Units::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * Gaudi::Units::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * Gaudi::Units::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * Gaudi::Units::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * Gaudi::Units::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * Gaudi::Units::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * Gaudi::Units::cm; // 3490 mm - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm; // 1147 mm + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * Gaudi::Units::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * Gaudi::Units::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * Gaudi::Units::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * Gaudi::Units::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * Gaudi::Units::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * Gaudi::Units::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * Gaudi::Units::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * Gaudi::Units::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * Gaudi::Units::cm; // 1147 mm @@ -112,8 +113,8 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) // Create the envelope for the Pixel Services: // const GeoMaterial* air = materialManager->getMaterial("std::Air"); - GeoPcon* pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); - GeoPcon* pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* pixServP = new GeoPcon(0.,2*Gaudi::Units::pi); + GeoPcon* pixServM = new GeoPcon(0.,2*Gaudi::Units::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -132,7 +133,7 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) const GeoShapeUnion *ServVolAux = new GeoShapeUnion(pixServP, pixServM); // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServ = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon *sctTrtServ = new GeoPcon(0.,2*Gaudi::Units::pi); // THE BEGINNING sctTrtServ->addPlane(-ZMaxIDet, RMaxFwdTRTC, RMaxIDet); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx index 4da8a0e8df60..82b6249ee5d8 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx @@ -32,7 +32,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GaudiKernel/Bootstrap.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <iostream> @@ -91,26 +91,26 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) const IRDBRecord *envelopes = (*servEnvelopeTable)[0]; - double safety = 0.001 * GeoModelKernelUnits::mm; + double safety = 0.001 * Gaudi::Units::mm; - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm + safety; // 3470 mm + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * Gaudi::Units::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * Gaudi::Units::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * Gaudi::Units::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * Gaudi::Units::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * Gaudi::Units::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * Gaudi::Units::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * Gaudi::Units::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * Gaudi::Units::cm + safety; // 3470 mm - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm + safety; // 1147 mm + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * Gaudi::Units::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * Gaudi::Units::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * Gaudi::Units::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * Gaudi::Units::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * Gaudi::Units::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * Gaudi::Units::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * Gaudi::Units::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * Gaudi::Units::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * Gaudi::Units::cm + safety; // 1147 mm // Since the TRT Wheel C space is not used in some versions and is used by some // other services we simplify the volume. @@ -125,12 +125,12 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) bool join1 = false; bool join2 = false; - if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*GeoModelKernelUnits::mm){ + if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*Gaudi::Units::mm){ join1 = true; join2 = true; RMaxFwdTRTC = RMinPixServ; RMaxPixServ = RMinPixServ; - } else if ((RMaxFwdTRTC - 1*GeoModelKernelUnits::mm) <= RMaxPixServ) { + } else if ((RMaxFwdTRTC - 1*Gaudi::Units::mm) <= RMaxPixServ) { join1 = true; RMaxPixServ = RMaxFwdTRTC; } @@ -144,8 +144,8 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) GeoPcon* pixServM = 0; if (!join1) { - pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); - pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + pixServP = new GeoPcon(0.,2*Gaudi::Units::pi); + pixServM = new GeoPcon(0.,2*Gaudi::Units::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -163,8 +163,8 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) } // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); - GeoPcon *sctTrtServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon *sctTrtServP = new GeoPcon(0.,2*Gaudi::Units::pi); + GeoPcon *sctTrtServM = new GeoPcon(0.,2*Gaudi::Units::pi); // Pixel Services if (join1) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx index 79bdc998f804..67ae46d9494b 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx @@ -35,7 +35,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" - +#include "GaudiKernel/PhysicalConstants.h" #include <iostream> InDetServMatFactorySLHC::InDetServMatFactorySLHC(const InDetServMatAthenaComps * athenaComps) @@ -75,9 +75,9 @@ void InDetServMatFactorySLHC::create(GeoPhysVol *world ) double cylLength; if (oldEnvelope()) { - innerRadius = geomDB()->getDouble("","SERVICESINNERRADIUS") * GeoModelKernelUnits::mm; - outerRadius = geomDB()->getDouble("","SERVICESOUTERRADIUS") * GeoModelKernelUnits::mm; - cylLength = geomDB()->getDouble("","SERVICESCYLLENGTH") * GeoModelKernelUnits::mm; + innerRadius = geomDB()->getDouble("","SERVICESINNERRADIUS") * Gaudi::Units::mm; + outerRadius = geomDB()->getDouble("","SERVICESOUTERRADIUS") * Gaudi::Units::mm; + cylLength = geomDB()->getDouble("","SERVICESCYLLENGTH") * Gaudi::Units::mm; } else { innerRadius = envelopeRMin(); outerRadius = envelopeRMax(); @@ -86,7 +86,7 @@ void InDetServMatFactorySLHC::create(GeoPhysVol *world ) envelopeShape = new GeoTube(innerRadius, outerRadius, 0.5*cylLength); zone = new InDetDD::TubeZone("InDetServMat", -0.5*cylLength, 0.5*cylLength, innerRadius, outerRadius); } else { - GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*Gaudi::Units::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = envelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -183,7 +183,7 @@ InDetServMatFactorySLHC::envelopeNumPlanes() const double InDetServMatFactorySLHC::envelopeZ(int i) const { - double zmin = geomDB()->getDouble(m_InDetServGenEnvelope,"Z",i) * GeoModelKernelUnits::mm; + double zmin = geomDB()->getDouble(m_InDetServGenEnvelope,"Z",i) * Gaudi::Units::mm; if (zmin < 0) msg(MSG::ERROR) << "InDetServGenEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } @@ -191,11 +191,11 @@ InDetServMatFactorySLHC::envelopeZ(int i) const double InDetServMatFactorySLHC::envelopeRMin(int i) const { - return geomDB()->getDouble(m_InDetServGenEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; + return geomDB()->getDouble(m_InDetServGenEnvelope,"RMIN",i) * Gaudi::Units::mm; } double InDetServMatFactorySLHC::envelopeRMax(int i) const { - return geomDB()->getDouble(m_InDetServGenEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; + return geomDB()->getDouble(m_InDetServGenEnvelope,"RMAX",i) * Gaudi::Units::mm; } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx index b1b87b9cf5c4..774517d103b0 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx @@ -10,7 +10,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" InDetServMatGeometryManager::InDetServMatGeometryManager(const InDetDD::AthenaComps * athenaComps) : m_athenaComps(athenaComps), @@ -158,14 +158,14 @@ int InDetServMatGeometryManager::pixelNumLayers() const // layer radius double InDetServMatGeometryManager::pixelLayerRadius(int layer) const { - return db()->getDouble(m_PixelLayer,"RLAYER",layer) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelLayer,"RLAYER",layer) * Gaudi::Units::mm; } // layer length double InDetServMatGeometryManager::pixelLayerLength(int layer) const { int staveIndex = db()->getInt(m_PixelLayer,"STAVEINDEX",layer); - return db()->getDouble(m_PixelStave,"ENVLENGTH",staveIndex) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelStave,"ENVLENGTH",staveIndex) * Gaudi::Units::mm; } // Number of staves/sectors per barrel layer @@ -264,7 +264,7 @@ int InDetServMatGeometryManager::pixelNumDisks() const // disk Z position double InDetServMatGeometryManager::pixelDiskZ(int disk) const { - return db()->getDouble(m_PixelDisk,"ZDISK",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelDisk,"ZDISK",disk) * Gaudi::Units::mm; } // disk min radius @@ -272,10 +272,10 @@ double InDetServMatGeometryManager::pixelDiskRMin(int disk) const { std::string route = pixelDiskServiceRoute(disk); if(route=="StdRoute") - return db()->getDouble(m_PixelDisk,"RMIN",disk) * GeoModelKernelUnits::mm - 11*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelDisk,"RMIN",disk) * Gaudi::Units::mm - 11*Gaudi::Units::mm; // support structures - SUP1RMIN is always closest to centre - return db()->getDouble(m_PixelDisk,"SUP1RMIN",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelDisk,"SUP1RMIN",disk) * Gaudi::Units::mm; } @@ -284,10 +284,10 @@ double InDetServMatGeometryManager::pixelDiskRMax(int disk) const { std::string route = pixelDiskServiceRoute(disk); if(route=="StdRoute") - return db()->getDouble(m_PixelDisk,"RMAX",disk) * GeoModelKernelUnits::mm + 11*GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelDisk,"RMAX",disk) * Gaudi::Units::mm + 11*Gaudi::Units::mm; // support structures - SUP3RMAX is always furthest from centre - return db()->getDouble(m_PixelDisk,"SUP3RMAX",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelDisk,"SUP3RMAX",disk) * Gaudi::Units::mm; } @@ -297,7 +297,7 @@ double InDetServMatGeometryManager::pixelDiskEOSZOffset(int disk) const if (!db()->testField(m_PixelSvcRoute, "EOSZOFFSET")) return 0.0; else - return db()->getDouble(m_PixelSvcRoute,"EOSZOFFSET",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelSvcRoute,"EOSZOFFSET",disk) * Gaudi::Units::mm; } // return name of support tube where @@ -310,7 +310,7 @@ std::string InDetServMatGeometryManager::pixelDiskServiceRoute(int disk) const double InDetServMatGeometryManager::pixelEnvelopeRMax() const { - return db()->getDouble(m_PixelEnvelope,"RMAX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_PixelEnvelope,"RMAX") * Gaudi::Units::mm; } int InDetServMatGeometryManager::pixelBarrelModuleType( int layer) const @@ -351,13 +351,13 @@ int InDetServMatGeometryManager::sctNumLayers() const // layer radius double InDetServMatGeometryManager::sctLayerRadius(int layer) const { - return db()->getDouble(m_SctBrlLayer,"RADIUS",layer) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLayer,"RADIUS",layer) * Gaudi::Units::mm; } // layer length double InDetServMatGeometryManager::sctLayerLength(int layer) const { - return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",layer) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",layer) * Gaudi::Units::mm; } // layer type. Long(0) or Short (1) strips. NEEDS CHECKING @@ -395,17 +395,17 @@ int InDetServMatGeometryManager::sctNumDisks() const // disk Z position double InDetServMatGeometryManager::sctDiskZ(int disk) const { - return db()->getDouble(m_SctFwdWheel,"ZPOSITION",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdWheel,"ZPOSITION",disk) * Gaudi::Units::mm; } // disk Z position double InDetServMatGeometryManager::sctDiskRMax(int disk) const { - return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",disk) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",disk) * Gaudi::Units::mm; } double InDetServMatGeometryManager::sctInnerSupport() const { - return db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",0) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",0) * Gaudi::Units::mm; } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx index ce929352dd21..5d9dc131c24a 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx @@ -22,6 +22,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #define SKIPCYLINDER 3 #define NUMBEROFCYLINDER 7 @@ -76,8 +77,8 @@ void PixelServMatFactoryDC2::create(GeoPhysVol *mother) std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; const GeoMaterial* cylMat = materialManager->getMaterial(matName); - double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; - double rmax = (*pbfi)[ii]->getFloat("ROUT")*GeoModelKernelUnits::cm; + double rmin = (*pbfi)[ii]->getFloat("RIN")*Gaudi::Units::cm; + double rmax = (*pbfi)[ii]->getFloat("ROUT")*Gaudi::Units::cm; double zmin = (*pbfi)[ii]->getFloat("ZIN"); double zmax = (*pbfi)[ii]->getFloat("ZOUT"); // elaborate it 'a la G3... @@ -86,9 +87,9 @@ void PixelServMatFactoryDC2::create(GeoPhysVol *mother) double rl = cylMat->getRadLength(); halflength = fabs(zmax) * rl /200. ; } else { - halflength = fabs(zmax-zmin)*GeoModelKernelUnits::cm; + halflength = fabs(zmax-zmin)*Gaudi::Units::cm; } - double zpos = fabs(zmin*GeoModelKernelUnits::cm)+halflength+epsilon; + double zpos = fabs(zmin*Gaudi::Units::cm)+halflength+epsilon; // Build the Phys Vol std::ostringstream o; o << ii; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx index 84d66d298dc2..0fe4bd0dc21b 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx @@ -22,6 +22,8 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #define SKIPCYLINDER 3 @@ -74,14 +76,14 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) std::cout << "Test Material std::Copper density="<<testMat->getDensity() <<" Rad.length="<<testMat->getRadLength()<<" Int.length="<<testMat->getIntLength()<<'\n'; - GeoMaterial* TIN = new GeoMaterial("Sn", 7.31*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); -// GeoElement *testMat = new GeoElement("Tin", "Sn", 50.0, 118.69*GeoModelKernelUnits::amu_c2); + GeoMaterial* TIN = new GeoMaterial("Sn", 7.31*GeoModelKernelUnits::gram/Gaudi::Units::cm3); +// GeoElement *testMat = new GeoElement("Tin", "Sn", 50.0, 118.69*Gaudi::Units::amu_c2); const GeoElement *tin = materialManager->getElement("Tin"); TIN->add(const_cast<GeoElement *>(tin),1.); TIN->lock(); testMat=TIN; std::cout << "Test Material Tin density="<<testMat->getDensity() <<" Rad.length="<<testMat->getRadLength()<<" Int.length="<<testMat->getIntLength()<<'\n'; - std::cout << "Atomic mass unit="<<GeoModelKernelUnits::amu_c2<<'\n'; + std::cout << "Atomic mass unit="<<Gaudi::Units::amu_c2<<'\n'; std::cout << "gram/cm3 ="<<gram/cm3<<'\n'; */ @@ -101,8 +103,8 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) // <<" Rad.length="<<cylMat->getRadLength()<<'\n'; - double rmin = (*pbfi)[jj]->getFloat("RIN")*GeoModelKernelUnits::cm; - double rmax = (*pbfi)[jj]->getFloat("ROUT")*GeoModelKernelUnits::cm; + double rmin = (*pbfi)[jj]->getFloat("RIN")*Gaudi::Units::cm; + double rmax = (*pbfi)[jj]->getFloat("ROUT")*Gaudi::Units::cm; double zmin = (*pbfi)[jj]->getFloat("ZIN"); double zmax = (*pbfi)[jj]->getFloat("ZOUT"); @@ -115,7 +117,7 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) double rl = cylMat->getRadLength(); halflength = fabs(zmax) * rl /200. ; } else { - halflength = fabs(zmax-zmin)*GeoModelKernelUnits::cm; + halflength = fabs(zmax-zmin)*Gaudi::Units::cm; } //VK Temporary!!! To bring thickness to nominal values @@ -125,7 +127,7 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) // if( ii == 0 ) zmin += 0.7; // in cm! //std::cout << "New="<<halflength<<", "<<zmin<<", "<<ii<<'\n'; - double zpos = fabs(zmin*GeoModelKernelUnits::cm)+halflength+epsilon; + double zpos = fabs(zmin*Gaudi::Units::cm)+halflength+epsilon; // Build the Phys Vol std::ostringstream o; o << ii; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx index e872b357bf66..0c8e91457035 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx @@ -28,6 +28,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -105,7 +106,7 @@ void PixelServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) servicePcon->getDPhi()); GeoCons* cons = new GeoCons(servicePcon->getRMinPlane(2),servicePcon->getRMinPlane(3), - servicePcon->getRMaxPlane(2),servicePcon->getRMaxPlane(3)+1E-9*GeoModelKernelUnits::mm, + servicePcon->getRMaxPlane(2),servicePcon->getRMaxPlane(3)+1E-9*Gaudi::Units::mm, (servicePcon->getZPlane(3)-servicePcon->getZPlane(2))*0.5, servicePcon->getSPhi(), servicePcon->getDPhi()); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx index 12d99004ab1d..9c1001f08ea6 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx @@ -25,6 +25,7 @@ #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <iostream> @@ -72,14 +73,14 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; - // double minRofGap = 1050.0*GeoModelKernelUnits::mm; - // double minRofGap = 1110.0*GeoModelKernelUnits::mm; - double minRofGap = 1089.0*GeoModelKernelUnits::mm; - double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; + // double minRofGap = 1050.0*Gaudi::Units::mm; + // double minRofGap = 1110.0*Gaudi::Units::mm; + double minRofGap = 1089.0*Gaudi::Units::mm; + double phiWid=(70.*Gaudi::Units::mm)/outROfIDet; // std::cout << "Gap phiWid = " << phiWid << std::endl; - double safetyGap=1.*GeoModelKernelUnits::mm; + double safetyGap=1.*Gaudi::Units::mm; //created by Adam Agocs @@ -131,7 +132,7 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) double volumeCut = 0; const GeoShape* serviceTube = serviceTubeTmp; const GeoShape* serviceTube2 = serviceTubeTmp; //because of asymmetry - if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiStart()*GeoModelKernelUnits::radian < phiTop) { + if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiStart()*Gaudi::Units::radian < phiTop) { // Subtract RailGap out of services if (NameOfService == "PPB1EFEG" || NameOfService == "CableTrayEFEG") { @@ -173,8 +174,8 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) GeoTransform * xform1 = new GeoTransform(trans); GeoTransform * xform1Neg = new GeoTransform(trans2); - GeoTransform * xform2 = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*trans); - GeoTransform * xform2Neg = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*trans2); + GeoTransform * xform2 = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*trans); + GeoTransform * xform2Neg = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*trans2); // std::cerr << xform1 << std::endl << xform1Neg << std::endl << xform2 << std::endl << xform2Neg << std::endl; @@ -204,12 +205,12 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*Gaudi::Units::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*Gaudi::Units::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*Gaudi::Units::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*Gaudi::Units::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*Gaudi::Units::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*Gaudi::Units::mm; NameOfMaterial = (*sctsup)[ii]->getString("MATERIAL"); DPhi = asin(WidI/2./RMinW); @@ -293,14 +294,14 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; - // double minRofGap = 1050.0*GeoModelKernelUnits::mm; - // double minRofGap = 1110.0*GeoModelKernelUnits::mm; - double minRofGap = 1089.0*GeoModelKernelUnits::mm; - double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; + // double minRofGap = 1050.0*Gaudi::Units::mm; + // double minRofGap = 1110.0*Gaudi::Units::mm; + double minRofGap = 1089.0*Gaudi::Units::mm; + double phiWid=(70.*Gaudi::Units::mm)/outROfIDet; // std::cout << "Gap phiWid = " << phiWid << std::endl; - double safetyGap=1.*GeoModelKernelUnits::mm; + double safetyGap=1.*Gaudi::Units::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -367,12 +368,12 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*Gaudi::Units::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*Gaudi::Units::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*Gaudi::Units::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*Gaudi::Units::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*Gaudi::Units::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*Gaudi::Units::mm; DPhi = asin(WidI/2./RMinW); const GeoShape* pTub1 = new GeoTubs(RMinW, RMaxW, ZHalfLengthW, 0.-DPhi, 2.*DPhi); //Basic shape diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx index 32ed55a0bbb3..c2b741161e19 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx @@ -27,6 +27,8 @@ #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" +#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include <stdexcept> #define TRTELEMENTSINEL 9 #define SCTELEMENTSINEL 8 @@ -78,20 +80,20 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) // Build SCT services in Endcap. // (Code taken from TRT_GeoModel) - double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; - double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; + double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*Gaudi::Units::cm; - double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; - double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; + double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*Gaudi::Units::cm; - double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; - double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; + double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*Gaudi::Units::cm; // For new LMT we get name from SCT table ZSCG. @@ -106,15 +108,15 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) // We define it here for now as a quick fix. // Thickness of CuK 896 tapes smeared in phi = 0.08575cm - double tapeCrossSection = (*zscg)[0]->getDouble("ALAREA")*GeoModelKernelUnits::cm2; + double tapeCrossSection = (*zscg)[0]->getDouble("ALAREA")*Gaudi::Units::cm2; double rave = 2*innerRadiusOfSCTCables*outerRadiusOfSCTCables/(innerRadiusOfSCTCables+outerRadiusOfSCTCables); - double thickness = 988*tapeCrossSection/(2*GeoModelKernelUnits::pi*rave); + double thickness = 988*tapeCrossSection/(2*Gaudi::Units::pi*rave); // We need to scale the density to fit in with space given. - //std::cout << "LMT thickness (GeoModelKernelUnits::mm) = " << thickness/GeoModelKernelUnits::mm << std::endl; + //std::cout << "LMT thickness (Gaudi::Units::mm) = " << thickness/Gaudi::Units::mm << std::endl; double densityfactor = thickness/lengthOfSCTCables; const GeoElement *copper = m_materialManager->getElement("Copper"); const GeoMaterial *kapton = m_materialManager->getMaterial("std::Kapton"); - GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); matCuKapton->lock(); @@ -167,15 +169,15 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) std::ostringstream o; o << jj; std::string logName = "SctInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTube = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); // create the material... @@ -194,16 +196,16 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm+epsilon; // place two GeoTrf::Translate3D servpos1(0.,0.,zpos); GeoTrf::Translate3D servpos2(0.,0.,-zpos); @@ -227,7 +229,7 @@ const GeoShape* SCT_ServMatFactoryDC2::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*GeoModelKernelUnits::mm; + const double epsilon = 0.001*Gaudi::Units::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx index 2f2ff0f25c4f..cc7e4f88bdf5 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx @@ -25,6 +25,8 @@ #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #define TRTELEMENTSINEL 9 #define SCTELEMENTSINEL 8 @@ -66,10 +68,10 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) //const IRDBRecordset* sctFwdServices = rdbAccessSvc()->getRecordset("SctFwdServices", sctVersionKey.tag(), sctVersionKey.node()); //VVK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; - double minRofGap = 1050.0*GeoModelKernelUnits::mm; - double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; double safetyGap=1.*GeoModelKernelUnits::mm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; + double minRofGap = 1050.0*Gaudi::Units::mm; + double phiWid=(70.*Gaudi::Units::mm)/outROfIDet; double safetyGap=1.*Gaudi::Units::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -82,25 +84,25 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) // (Code taken from TRT_GeoModel) // Hardwire min sct services for now. The database structures should be moved out of TRT anyway. - double rminSCTServ = 620*GeoModelKernelUnits::mm; + double rminSCTServ = 620*Gaudi::Units::mm; - //double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + //double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; double innerRadiusOfSCTSupport = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*Gaudi::Units::cm; - //double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + //double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; double innerRadiusOfSCTCables = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*Gaudi::Units::cm; - //double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + //double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*Gaudi::Units::cm + 2*epsilon; double innerRadiusOfSCTCooling = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*GeoModelKernelUnits::cm; - double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; - double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; + double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*Gaudi::Units::cm; + double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*Gaudi::Units::cm - epsilon; + double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*Gaudi::Units::cm; // For new LMT we get name from SCT table SctFwdServices. @@ -115,15 +117,15 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) // We define it here for now as a quick fix. // Thickness of CuK 896 tapes smeared in phi = 0.08575cm - double tapeCrossSection = (*sctFwdServices)[0]->getDouble("POWERTAPECROSSSECT")*GeoModelKernelUnits::mm2; + double tapeCrossSection = (*sctFwdServices)[0]->getDouble("POWERTAPECROSSSECT")*Gaudi::Units::mm2; double rave = 2*innerRadiusOfSCTCables*outerRadiusOfSCTCables/(innerRadiusOfSCTCables+outerRadiusOfSCTCables); - double thickness = 988*tapeCrossSection/(2*GeoModelKernelUnits::pi*rave); + double thickness = 988*tapeCrossSection/(2*Gaudi::Units::pi*rave); // We need to scale the density to fit in with space given. - //std::cout << "LMT thickness (mm) = " << thickness/GeoModelKernelUnits::mm << std::endl; + //std::cout << "LMT thickness (mm) = " << thickness/Gaudi::Units::mm << std::endl; double densityfactor = thickness/lengthOfSCTCables; const GeoElement *copper = m_materialManager->getElement("Copper"); const GeoMaterial *kapton = m_materialManager->getMaterial("std::Kapton"); - GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); matCuKapton->lock(); @@ -185,19 +187,19 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) std::ostringstream o; o << irecold++; std::string logName = "SctInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTubeTmp1 = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); const GeoShape* serviceTube = serviceTubeTmp1; - if( (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm > minRofGap || - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm > minRofGap ) { + if( (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm > minRofGap || + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm > minRofGap ) { // //VVK Subtract RailGap out of services const GeoShape* serviceTubeTmp2 = (GeoShape*) & (*serviceTubeTmp1).subtract(*railGap1); @@ -223,16 +225,16 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm+epsilon; // place two GeoTrf::Translate3D servpos1(0.,0.,zpos); GeoTrf::Translate3D servpos2(0.,0.,-zpos); @@ -257,7 +259,7 @@ const GeoShape* SCT_ServMatFactoryDC3::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*GeoModelKernelUnits::mm; + const double epsilon = 0.001*Gaudi::Units::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx index a519849def8b..6645fab3a90b 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx @@ -31,6 +31,7 @@ #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <iostream> @@ -74,11 +75,11 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; - double minRofGap = 1089.0*GeoModelKernelUnits::mm; - double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; - double safetyGap=1.*GeoModelKernelUnits::mm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; + double minRofGap = 1089.0*Gaudi::Units::mm; + double phiWid=(70.*Gaudi::Units::mm)/outROfIDet; + double safetyGap=1.*Gaudi::Units::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -159,7 +160,7 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // Shape 2. Cons component of the pcon cons = new GeoCons(servicePcon->getRMinPlane(1),servicePcon->getRMinPlane(2), - servicePcon->getRMaxPlane(1),servicePcon->getRMaxPlane(2)+1E-9*GeoModelKernelUnits::mm, + servicePcon->getRMaxPlane(1),servicePcon->getRMaxPlane(2)+1E-9*Gaudi::Units::mm, (servicePcon->getZPlane(2)-servicePcon->getZPlane(1))*0.5, 0,2*M_PI); @@ -218,12 +219,12 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*Gaudi::Units::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*Gaudi::Units::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*Gaudi::Units::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*Gaudi::Units::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*Gaudi::Units::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*Gaudi::Units::mm; DPhi = asin(WidI/2./RMinW); const GeoShape* pTub1 = new GeoTubs(RMinW, RMaxW, ZHalfLengthW, 0.-DPhi, 2.*DPhi); //Basic shape diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx index 291fc8bde535..5e82ef6e382f 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx @@ -23,6 +23,7 @@ #include "RDBAccessSvc/IRDBQuery.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GaudiKernel/PhysicalConstants.h" #include <iostream> @@ -70,37 +71,37 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // Squirrel cage rings // Default (initial) ring parameters // -// double rminInt = 1074.0*GeoModelKernelUnits::mm; -// double ringThick = 4.0*GeoModelKernelUnits::mm; -// double ringGap = 20.*GeoModelKernelUnits::mm; -// double ringWid = 40.*GeoModelKernelUnits::mm; +// double rminInt = 1074.0*Gaudi::Units::mm; +// double ringThick = 4.0*Gaudi::Units::mm; +// double ringGap = 20.*Gaudi::Units::mm; +// double ringWid = 40.*Gaudi::Units::mm; // - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; - double ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*Gaudi::Units::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*Gaudi::Units::mm; + double ringWid = (*cage)[0]->getDouble("RINGWIDTH")*Gaudi::Units::mm; // //--- Default (initial) z positions -// double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; -// double zposGap1 = 390.*GeoModelKernelUnits::mm; -// double zposGap2 = 402.*GeoModelKernelUnits::mm; -// double zposGap3 = 446.*GeoModelKernelUnits::mm; -// double zposGap4 = 331.*GeoModelKernelUnits::mm; +// double zposFirstRing = 805.0*Gaudi::Units::mm+161.0*Gaudi::Units::mm; +// double zposGap1 = 390.*Gaudi::Units::mm; +// double zposGap2 = 402.*Gaudi::Units::mm; +// double zposGap3 = 446.*Gaudi::Units::mm; +// double zposGap4 = 331.*Gaudi::Units::mm; // - double zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; - double zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; - double zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; - double zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; - double zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; + double zposFirstRing = (*cage)[0]->getDouble("ZBASE")*Gaudi::Units::mm; + double zposGap1 = (*cage)[0]->getDouble("ZGAP1")*Gaudi::Units::mm; + double zposGap2 = (*cage)[0]->getDouble("ZGAP2")*Gaudi::Units::mm; + double zposGap3 = (*cage)[0]->getDouble("ZGAP3")*Gaudi::Units::mm; + double zposGap4 = (*cage)[0]->getDouble("ZGAP4")*Gaudi::Units::mm; // // Now support ring -// double rminSup = 830.0*GeoModelKernelUnits::mm; -// double supThick = 90.0*GeoModelKernelUnits::mm; -// double supWid = 12.0*GeoModelKernelUnits::mm; +// double rminSup = 830.0*Gaudi::Units::mm; +// double supThick = 90.0*Gaudi::Units::mm; +// double supWid = 12.0*Gaudi::Units::mm; // - double rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; - double supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; - double supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; + double rminSup = (*cage)[0]->getDouble("SUPRMIN")*Gaudi::Units::mm; + double supThick = (*cage)[0]->getDouble("SUPTHICK")*Gaudi::Units::mm; + double supWid = (*cage)[0]->getDouble("SUPWIDTH")*Gaudi::Units::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; @@ -196,14 +197,14 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Inner double phiICRT = asin((yWidthUSP1/2. + yWidthUSP2 + coordY) / rminInt); - double DphiICRT = GeoModelKernelUnits::pi - 2*phiICRT; + double DphiICRT = Gaudi::Units::pi - 2*phiICRT; double phiICRB = asin((yWidthUSP1/2. + yWidthUSP2 - coordY) / rminInt); - double DphiICRB = GeoModelKernelUnits::pi - 2*phiICRB; + double DphiICRB = Gaudi::Units::pi - 2*phiICRB; GeoTubs* ICRT = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., phiICRT, DphiICRT); - GeoTubs* ICRB = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., GeoModelKernelUnits::pi + phiICRB, DphiICRB); + GeoTubs* ICRB = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., Gaudi::Units::pi + phiICRB, DphiICRB); const GeoLogVol* ICRTLog = new GeoLogVol("SQringIntTop", ICRT, ringMat); @@ -215,10 +216,10 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Outer double phiECRT = asin((yWidthUSP1/2. + yWidthUSP2 + coordY) / (rminInt+ringGap+ringThick)); - double DphiECRT = GeoModelKernelUnits::pi - 2*phiECRT; + double DphiECRT = Gaudi::Units::pi - 2*phiECRT; double phiECRB = asin((yWidthUSP1/2. + yWidthUSP2 - coordY) / (rminInt+ringGap+ringThick)); - double DphiECRB = GeoModelKernelUnits::pi - 2*phiECRB; + double DphiECRB = Gaudi::Units::pi - 2*phiECRB; // std::cerr << "phiET: " << phiECRT << ", DphiET: " << DphiECRT << std::endl; // std::cerr << "phiIT: " << phiICRT << ", DphiIT: " << DphiICRT << std::endl; @@ -226,7 +227,7 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // std::cerr << "phiIB: " << phiICRB << ", DphiIB: " << DphiICRB << std::endl; GeoTubs* ECRT = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., phiECRT, DphiECRT); - GeoTubs* ECRB = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., GeoModelKernelUnits::pi + phiECRB, DphiECRB); + GeoTubs* ECRB = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., Gaudi::Units::pi + phiECRB, DphiECRB); const GeoLogVol* ECRTLog = new GeoLogVol("SQringExtTop", ECRT, ringMat); GeoVPhysVol* ECRTPhys = new GeoPhysVol(ECRTLog); @@ -366,46 +367,46 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // Squirrel cage rings // Default (initial) ring parameters // - double rminInt = 1074.0*GeoModelKernelUnits::mm; - double ringThick = 4.0*GeoModelKernelUnits::mm; - double ringGap = 20.*GeoModelKernelUnits::mm; - double ringWid = 40.*GeoModelKernelUnits::mm; + double rminInt = 1074.0*Gaudi::Units::mm; + double ringThick = 4.0*Gaudi::Units::mm; + double ringGap = 20.*Gaudi::Units::mm; + double ringWid = 40.*Gaudi::Units::mm; // - rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; - ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; - ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; - ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; + rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; + ringThick = (*cage)[0]->getDouble("RINGTHICK")*Gaudi::Units::mm; + ringGap = (*cage)[0]->getDouble("RINGGAP")*Gaudi::Units::mm; + ringWid = (*cage)[0]->getDouble("RINGWIDTH")*Gaudi::Units::mm; // //--- Default (initial) z positions - double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; - double zposGap1 = 390.*GeoModelKernelUnits::mm; - double zposGap2 = 402.*GeoModelKernelUnits::mm; - double zposGap3 = 446.*GeoModelKernelUnits::mm; - double zposGap4 = 331.*GeoModelKernelUnits::mm; + double zposFirstRing = 805.0*Gaudi::Units::mm+161.0*Gaudi::Units::mm; + double zposGap1 = 390.*Gaudi::Units::mm; + double zposGap2 = 402.*Gaudi::Units::mm; + double zposGap3 = 446.*Gaudi::Units::mm; + double zposGap4 = 331.*Gaudi::Units::mm; // - zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; - zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; - zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; - zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; - zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; + zposFirstRing = (*cage)[0]->getDouble("ZBASE")*Gaudi::Units::mm; + zposGap1 = (*cage)[0]->getDouble("ZGAP1")*Gaudi::Units::mm; + zposGap2 = (*cage)[0]->getDouble("ZGAP2")*Gaudi::Units::mm; + zposGap3 = (*cage)[0]->getDouble("ZGAP3")*Gaudi::Units::mm; + zposGap4 = (*cage)[0]->getDouble("ZGAP4")*Gaudi::Units::mm; // // Now support ring - double rminSup = 830.0*GeoModelKernelUnits::mm; - double supThick = 90.0*GeoModelKernelUnits::mm; - double supWid = 12.0*GeoModelKernelUnits::mm; + double rminSup = 830.0*Gaudi::Units::mm; + double supThick = 90.0*Gaudi::Units::mm; + double supWid = 12.0*Gaudi::Units::mm; // - rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; - supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; - supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; + rminSup = (*cage)[0]->getDouble("SUPRMIN")*Gaudi::Units::mm; + supThick = (*cage)[0]->getDouble("SUPTHICK")*Gaudi::Units::mm; + supWid = (*cage)[0]->getDouble("SUPWIDTH")*Gaudi::Units::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; // // Now support ribbon - double ribWid = 68.0*GeoModelKernelUnits::mm ; - ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; + double ribWid = 68.0*Gaudi::Units::mm ; + ribWid = (*cage)[0]->getDouble("RIBWIDTH")*Gaudi::Units::mm; double ribLeng = ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; double ribThick = 0; - if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*GeoModelKernelUnits::mm; + if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*Gaudi::Units::mm; double safety =0.01; double ribThickMax = ringGap - 2*safety; if (ribThick == 0 || ribThick > ribThickMax) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx index 5983eed14c92..823f69cd0762 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx @@ -23,7 +23,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" - +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -74,46 +74,46 @@ void SquirrelCageFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // Squirrel cage rings // Default (initial) ring parameters // - double rminInt = 1074.0*GeoModelKernelUnits::mm; - double ringThick = 4.0*GeoModelKernelUnits::mm; - double ringGap = 20.*GeoModelKernelUnits::mm; - double ringWid = 40.*GeoModelKernelUnits::mm; + double rminInt = 1074.0*Gaudi::Units::mm; + double ringThick = 4.0*Gaudi::Units::mm; + double ringGap = 20.*Gaudi::Units::mm; + double ringWid = 40.*Gaudi::Units::mm; // - rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; - ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; - ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; - ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; + rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; + ringThick = (*cage)[0]->getDouble("RINGTHICK")*Gaudi::Units::mm; + ringGap = (*cage)[0]->getDouble("RINGGAP")*Gaudi::Units::mm; + ringWid = (*cage)[0]->getDouble("RINGWIDTH")*Gaudi::Units::mm; // //--- Default (initial) z positions - double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; - double zposGap1 = 390.*GeoModelKernelUnits::mm; - double zposGap2 = 402.*GeoModelKernelUnits::mm; - double zposGap3 = 446.*GeoModelKernelUnits::mm; - double zposGap4 = 331.*GeoModelKernelUnits::mm; + double zposFirstRing = 805.0*Gaudi::Units::mm+161.0*Gaudi::Units::mm; + double zposGap1 = 390.*Gaudi::Units::mm; + double zposGap2 = 402.*Gaudi::Units::mm; + double zposGap3 = 446.*Gaudi::Units::mm; + double zposGap4 = 331.*Gaudi::Units::mm; // - zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; - zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; - zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; - zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; - zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; + zposFirstRing = (*cage)[0]->getDouble("ZBASE")*Gaudi::Units::mm; + zposGap1 = (*cage)[0]->getDouble("ZGAP1")*Gaudi::Units::mm; + zposGap2 = (*cage)[0]->getDouble("ZGAP2")*Gaudi::Units::mm; + zposGap3 = (*cage)[0]->getDouble("ZGAP3")*Gaudi::Units::mm; + zposGap4 = (*cage)[0]->getDouble("ZGAP4")*Gaudi::Units::mm; // // Now support ring - double rminSup = 830.0*GeoModelKernelUnits::mm; - double supThick = 90.0*GeoModelKernelUnits::mm; - double supWid = 12.0*GeoModelKernelUnits::mm; + double rminSup = 830.0*Gaudi::Units::mm; + double supThick = 90.0*Gaudi::Units::mm; + double supWid = 12.0*Gaudi::Units::mm; // - rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; - supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; - supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; + rminSup = (*cage)[0]->getDouble("SUPRMIN")*Gaudi::Units::mm; + supThick = (*cage)[0]->getDouble("SUPTHICK")*Gaudi::Units::mm; + supWid = (*cage)[0]->getDouble("SUPWIDTH")*Gaudi::Units::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; // // Now support ribbon - double ribWid = 68.0*GeoModelKernelUnits::mm ; - ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; + double ribWid = 68.0*Gaudi::Units::mm ; + ribWid = (*cage)[0]->getDouble("RIBWIDTH")*Gaudi::Units::mm; double ribLeng = ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; double ribThick = 0; - if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*GeoModelKernelUnits::mm; + if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*Gaudi::Units::mm; double safety =0.01; double ribThickMax = ringGap - 2*safety; if (ribThick == 0 || ribThick > ribThickMax) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx index f6ca11d8b999..1d4404b39b6e 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx @@ -24,6 +24,7 @@ #include "RDBAccessSvc/IRDBQuery.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <math.h> @@ -68,18 +69,18 @@ void SupportRailFactory::create(GeoPhysVol *mother) // // Default(initial) values // - double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin - double railLengthB = 1600.0*GeoModelKernelUnits::mm; - double railWidthB = 5.5*GeoModelKernelUnits::mm; - double railThickB = 34.7*GeoModelKernelUnits::mm; + double RMAX_ID = 1150.0*Gaudi::Units::mm -1.0*Gaudi::Units::mm; //Some safety margin + double railLengthB = 1600.0*Gaudi::Units::mm; + double railWidthB = 5.5*Gaudi::Units::mm; + double railThickB = 34.7*Gaudi::Units::mm; // - double railLengthE = 2600.0*GeoModelKernelUnits::mm; -// double railWidthE = 14.*GeoModelKernelUnits::mm; -// double railThickE = 14.7*GeoModelKernelUnits::mm; + double railLengthE = 2600.0*Gaudi::Units::mm; +// double railWidthE = 14.*Gaudi::Units::mm; +// double railThickE = 14.7*Gaudi::Units::mm; // - double suppLength = 6800.0*GeoModelKernelUnits::mm; - double suppWidth = 54.*GeoModelKernelUnits::mm; -// double suppThick = 22.6*GeoModelKernelUnits::mm; + double suppLength = 6800.0*Gaudi::Units::mm; + double suppWidth = 54.*Gaudi::Units::mm; +// double suppThick = 22.6*Gaudi::Units::mm; // // Database // @@ -95,7 +96,7 @@ void SupportRailFactory::create(GeoPhysVol *mother) const GeoMaterial* alum = materialManager()->getMaterial((*railrec)[0]->getString("MATSUP")); //Radius of Squirrel cage - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; //Thick of U Shape Support std::unique_ptr<IRDBQuery> queryUSP = rdbAccessSvc()->getQuery("IDDetRailUSP",indetVersionKey.tag(), indetVersionKey.node()); if(!queryUSP) @@ -112,21 +113,21 @@ void SupportRailFactory::create(GeoPhysVol *mother) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - //railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; At database there is 34.7 but it could cause crash. + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + //railLengthB = (*railrec)[0]->getDouble("LENGTHB")*Gaudi::Units::mm; At database there is 34.7 but it could cause crash. - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*Gaudi::Units::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*Gaudi::Units::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB/2.; -// railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; -// railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZSHIFT")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZGAP")*Gaudi::Units::mm - railLengthB/2.; +// railWidthE = (*railrec)[0]->getDouble("WIDTHE")*Gaudi::Units::mm; +// railThickE = (*railrec)[0]->getDouble("THICKE")*Gaudi::Units::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; -// suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*Gaudi::Units::mm; +// suppThick = (*railrec)[0]->getDouble("THICKSUP")*Gaudi::Units::mm; double zLengthB = (*idSupportRails)[0]->getDouble("ZLENGTH"); double yWidthB = (*idSupportRails)[0]->getDouble("YWIDTH"); @@ -579,18 +580,18 @@ void SupportRailFactory::create(GeoPhysVol *mother) // // Default(initial) values // - double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin - double railLengthB = 1600.0*GeoModelKernelUnits::mm; - double railWidthB = 5.5*GeoModelKernelUnits::mm; - double railThickB = 34.7*GeoModelKernelUnits::mm; + double RMAX_ID = 1150.0*Gaudi::Units::mm -1.0*Gaudi::Units::mm; //Some safety margin + double railLengthB = 1600.0*Gaudi::Units::mm; + double railWidthB = 5.5*Gaudi::Units::mm; + double railThickB = 34.7*Gaudi::Units::mm; // - double railLengthE = 2600.0*GeoModelKernelUnits::mm; - double railWidthE = 14.*GeoModelKernelUnits::mm; - double railThickE = 14.7*GeoModelKernelUnits::mm; + double railLengthE = 2600.0*Gaudi::Units::mm; + double railWidthE = 14.*Gaudi::Units::mm; + double railThickE = 14.7*Gaudi::Units::mm; // - double suppLength = 6800.0*GeoModelKernelUnits::mm; - double suppWidth = 54.*GeoModelKernelUnits::mm; - double suppThick = 22.6*GeoModelKernelUnits::mm; + double suppLength = 6800.0*Gaudi::Units::mm; + double suppWidth = 54.*Gaudi::Units::mm; + double suppThick = 22.6*Gaudi::Units::mm; // // Database // @@ -613,20 +614,20 @@ void SupportRailFactory::create(GeoPhysVol *mother) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + railLengthB = (*railrec)[0]->getDouble("LENGTHB")*Gaudi::Units::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*Gaudi::Units::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*Gaudi::Units::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB/2.; - railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; - railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZSHIFT")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZGAP")*Gaudi::Units::mm - railLengthB/2.; + railWidthE = (*railrec)[0]->getDouble("WIDTHE")*Gaudi::Units::mm; + railThickE = (*railrec)[0]->getDouble("THICKE")*Gaudi::Units::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; - suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*Gaudi::Units::mm; + suppThick = (*railrec)[0]->getDouble("THICKSUP")*Gaudi::Units::mm; // // To avoid rail corner outside ID envelope RMAX_ID = sqrt(RMAX_ID*RMAX_ID-suppWidth*suppWidth/4.)-epsilon; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx index 2b51616c3c2a..7011b20cb556 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx @@ -24,7 +24,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" - +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <math.h> @@ -72,18 +72,18 @@ void SupportRailFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // // Default(initial) values // - double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin - double railLengthB = 1600.0*GeoModelKernelUnits::mm; - double railWidthB = 5.5*GeoModelKernelUnits::mm; - double railThickB = 34.7*GeoModelKernelUnits::mm; + double RMAX_ID = 1150.0*Gaudi::Units::mm -1.0*Gaudi::Units::mm; //Some safety margin + double railLengthB = 1600.0*Gaudi::Units::mm; + double railWidthB = 5.5*Gaudi::Units::mm; + double railThickB = 34.7*Gaudi::Units::mm; // - double railLengthE = 2600.0*GeoModelKernelUnits::mm; - double railWidthE = 14.*GeoModelKernelUnits::mm; - double railThickE = 14.7*GeoModelKernelUnits::mm; + double railLengthE = 2600.0*Gaudi::Units::mm; + double railWidthE = 14.*Gaudi::Units::mm; + double railThickE = 14.7*Gaudi::Units::mm; // - double suppLength = 6800.0*GeoModelKernelUnits::mm; - double suppWidth = 54.*GeoModelKernelUnits::mm; - double suppThick = 22.6*GeoModelKernelUnits::mm; + double suppLength = 6800.0*Gaudi::Units::mm; + double suppWidth = 54.*Gaudi::Units::mm; + double suppThick = 22.6*Gaudi::Units::mm; // // Database // @@ -106,20 +106,20 @@ void SupportRailFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + railLengthB = (*railrec)[0]->getDouble("LENGTHB")*Gaudi::Units::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*Gaudi::Units::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*Gaudi::Units::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm - +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB*0.5; - railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; - railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZSHIFT")*Gaudi::Units::mm + +(*endplate)[0]->getDouble("ZGAP")*Gaudi::Units::mm - railLengthB*0.5; + railWidthE = (*railrec)[0]->getDouble("WIDTHE")*Gaudi::Units::mm; + railThickE = (*railrec)[0]->getDouble("THICKE")*Gaudi::Units::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; - suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*Gaudi::Units::mm; + suppThick = (*railrec)[0]->getDouble("THICKSUP")*Gaudi::Units::mm; // // To avoid rail corner outside ID envelope RMAX_ID = sqrt(RMAX_ID*RMAX_ID-suppWidth*suppWidth/4.)-epsilon; diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx index f4738c0bd9b9..bd3fcd6a4efc 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx @@ -26,8 +26,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <iostream> @@ -79,11 +78,11 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) m_materialManager->addScalingTable(scalingTable); //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; //created by Adam Agocs IRDBRecordset_ptr commonParameters = rdbAccessSvc()->getRecordsetPtr("IDDetRailCommon",indetVersionKey.tag(), indetVersionKey.node()); @@ -120,7 +119,7 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) const GeoShape* serviceTube = serviceTubeTmp; - if( tubeHelper.volData().maxRadius() > rminInt && tubeHelper.volData().phiDelta() > 359.9*GeoModelKernelUnits::degree) + if( tubeHelper.volData().maxRadius() > rminInt && tubeHelper.volData().phiDelta() > 359.9*Gaudi::Units::degree) { // Subtract RailGap out of services serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*railGap2).subtract(*railGap1); @@ -165,8 +164,8 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) m_materialManager->addScalingTable(scalingTable); //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -179,10 +178,10 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; - double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*Gaudi::Units::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*Gaudi::Units::mm; + double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*Gaudi::Units::mm; double phiWidSQ=ribWid/(rminInt+ringThick+ringGap/2.); @@ -214,7 +213,7 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) const GeoShape* ribSup2 = new GeoTubs( tubeHelper.volData().rmin(), tubeHelper.volData().rmax(), 0.5*tubeHelper.volData().length(), -phiWidSQ/2.+M_PI, phiWidSQ); serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*ribSup1).subtract(*ribSup2); - } else if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiDelta() > 359.9*GeoModelKernelUnits::degree) { + } else if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiDelta() > 359.9*Gaudi::Units::degree) { // Subtract RailGap out of services serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*railGap2).subtract(*railGap1); } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx index 51e16b5d0992..2cd5c03876ac 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx @@ -24,7 +24,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" - +#include "GaudiKernel/SystemOfUnits.h" #define NUMBEROFPANEL 2 #define TRTELEMENTSINEL 9 @@ -75,10 +75,10 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) for (int ii=0; ii<NUMBEROFPANEL; ii++) { const GeoMaterial* cylMat = m_materialManager->getMaterial("trt::PatchOut"); - double rmin = (*ipan)[ii]->getFloat("RMIN")*GeoModelKernelUnits::cm; - double rmax = (*ipan)[ii]->getFloat("RMAX")*GeoModelKernelUnits::cm; - double zmin = (*ipan)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; - double zmax = (*ipan)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; + double rmin = (*ipan)[ii]->getFloat("RMIN")*Gaudi::Units::cm; + double rmax = (*ipan)[ii]->getFloat("RMAX")*Gaudi::Units::cm; + double zmin = (*ipan)[ii]->getFloat("ZMIN")*Gaudi::Units::cm; + double zmax = (*ipan)[ii]->getFloat("ZMAX")*Gaudi::Units::cm; double halflength = (zmax-zmin)/2.-2*epsilon; double zpos = zmin + halflength+2*epsilon; @@ -107,15 +107,15 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) std::ostringstream o; o << ii; std::string logName = "TrtInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTube = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); // create the material... // In AGE the radiation length is specified and from that the density is // calculated assuming the material is C. I do the same here for now but @@ -132,16 +132,16 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, - (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); + (*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm, + (*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*Gaudi::Units::cm+epsilon; // place two GeoTrf::Translate3D servpos1(0.,0.,zpos); GeoTrf::Translate3D servpos2(0.,0.,-zpos); @@ -165,7 +165,7 @@ const GeoShape* TRT_ServMatFactoryDC2::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*GeoModelKernelUnits::mm; + const double epsilon = 0.001*Gaudi::Units::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx index 8ea66da54eda..6975efb97484 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx @@ -23,7 +23,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" - +#include "GaudiKernel/SystemOfUnits.h" #define NUMBEROFPANEL 2 #define TRTELEMENTSINEL 9 // VK - now number of record is determined automatically @@ -63,8 +63,8 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) //VVK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -78,10 +78,10 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) for (int ii=0; ii<NUMBEROFPANEL; ii++) { const GeoMaterial* cylMat = materialManager()->getMaterial("trt::PatchOut"); - double rmin = (*ipan)[ii]->getFloat("RMIN")*GeoModelKernelUnits::cm; - double rmax = (*ipan)[ii]->getFloat("RMAX")*GeoModelKernelUnits::cm; - double zmin = (*ipan)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; - double zmax = (*ipan)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; + double rmin = (*ipan)[ii]->getFloat("RMIN")*Gaudi::Units::cm; + double rmax = (*ipan)[ii]->getFloat("RMAX")*Gaudi::Units::cm; + double zmin = (*ipan)[ii]->getFloat("ZMIN")*Gaudi::Units::cm; + double zmax = (*ipan)[ii]->getFloat("ZMAX")*Gaudi::Units::cm; double halflength = (zmax-zmin)/2.-2*epsilon; double zpos = zmin + halflength+2*epsilon; @@ -133,12 +133,12 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) o << irecold++; std::string logName = "TrtInel"+o.str(); int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); - double RMIN1=(*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm; - double RMAX1=(*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm; - double RMIN2=(*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm; - double RMAX2=(*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm; - double ZMAX= (*inel)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; - double ZMIN= (*inel)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; + double RMIN1=(*inel)[ii]->getFloat("RMIN1")*Gaudi::Units::cm; + double RMAX1=(*inel)[ii]->getFloat("RMAX1")*Gaudi::Units::cm; + double RMIN2=(*inel)[ii]->getFloat("RMIN2")*Gaudi::Units::cm; + double RMAX2=(*inel)[ii]->getFloat("RMAX2")*Gaudi::Units::cm; + double ZMAX= (*inel)[ii]->getFloat("ZMAX")*Gaudi::Units::cm; + double ZMIN= (*inel)[ii]->getFloat("ZMIN")*Gaudi::Units::cm; //VK Change of TRT barrel cables definition // if(ii == 3) { RMIN1 += 0; RMAX1=RMIN1+0.589; ZMIN=950.; ZMAX=3250;} @@ -207,7 +207,7 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) double rmax2=0.) { - const double epsilon = 0.001*GeoModelKernelUnits::mm; + const double epsilon = 0.001*Gaudi::Units::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx index 342c02f44fde..2e3a3aa3c046 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx @@ -26,8 +26,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GaudiKernel/Bootstrap.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <iostream> @@ -75,8 +74,8 @@ void TRT_ServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*Gaudi::Units::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*Gaudi::Units::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -89,10 +88,10 @@ void TRT_ServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; - double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*Gaudi::Units::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*Gaudi::Units::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*Gaudi::Units::mm; + double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*Gaudi::Units::mm; double phiWidSQ=ribWid/(rminInt+ringThick+ringGap/2.); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx index 5fed24ed9d44..f44cbbcca46f 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx @@ -6,7 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_GeometryManager.h" #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -36,7 +36,7 @@ SCT_BarrelModuleParameters::SCT_BarrelModuleParameters(const SCT_DataBase * sctd double SCT_BarrelModuleParameters::sensorThickness(int moduleType) const { - double thickness = db()->getDouble(m_SctBrlSensor, "THICKNESS", moduleType) * GeoModelKernelUnits::mm; + double thickness = db()->getDouble(m_SctBrlSensor, "THICKNESS", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "-----------2 sensorThickness mod_typ("<<moduleType<<") = "<< thickness << endmsg; return thickness; } @@ -44,7 +44,7 @@ SCT_BarrelModuleParameters::sensorThickness(int moduleType) const double SCT_BarrelModuleParameters::sensorWidth(int moduleType) const { - double width = db()->getDouble(m_SctBrlSensor, "WIDTH", moduleType) * GeoModelKernelUnits::mm; + double width = db()->getDouble(m_SctBrlSensor, "WIDTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<< width <<endmsg; return width; } @@ -52,7 +52,7 @@ SCT_BarrelModuleParameters::sensorWidth(int moduleType) const double SCT_BarrelModuleParameters::sensorLength(int moduleType) const { - double sensorLen = db()->getDouble(m_SctBrlSensor, "LENGTH", moduleType) * GeoModelKernelUnits::mm; + double sensorLen = db()->getDouble(m_SctBrlSensor, "LENGTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 SensorLength DXYZ3 mod_typ("<<moduleType<<") = "<<sensorLen <<endmsg; return sensorLen; } @@ -81,7 +81,7 @@ double SCT_BarrelModuleParameters::baseBoardThickness(int moduleType) const { //sprintf(paraName, "BRL_M%d_BBTHICK", moduleType); - double bbthick = db()->getDouble(m_SctBrlModule, "BASEBOARDTHICKNESS", moduleType) * GeoModelKernelUnits::mm; + double bbthick = db()->getDouble(m_SctBrlModule, "BASEBOARDTHICKNESS", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<< bbthick <<endmsg; return bbthick; } @@ -89,13 +89,13 @@ SCT_BarrelModuleParameters::baseBoardThickness(int moduleType) const double SCT_BarrelModuleParameters::baseBoardWidth(int moduleType) const { - double bbwidth = db()->getDouble(m_SctBrlModule, "BASEBOARDWIDTH", moduleType) * GeoModelKernelUnits::mm; + double bbwidth = db()->getDouble(m_SctBrlModule, "BASEBOARDWIDTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<< bbwidth <<endmsg; return bbwidth; } double SCT_BarrelModuleParameters::baseBoardLength(int moduleType) const{ - double bblength = db()->getDouble(m_SctBrlModule, "BASEBOARDLENGTH", moduleType) * GeoModelKernelUnits::mm; + double bblength = db()->getDouble(m_SctBrlModule, "BASEBOARDLENGTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardLength BBLEN mod_typ("<<moduleType<<") = "<<bblength <<endmsg; return bblength; } @@ -109,16 +109,16 @@ SCT_BarrelModuleParameters::baseBoardMaterial(int moduleType) const } double SCT_BarrelModuleParameters::baseBoardOffsetY(int /*moduleType*/) const{ //if(moduleType == 1) - return -5.7*GeoModelKernelUnits::mm; + return -5.7*Gaudi::Units::mm; //else - // return -5.7*GeoModelKernelUnits::mm; + // return -5.7*Gaudi::Units::mm; } double SCT_BarrelModuleParameters::baseBoardOffsetZ(int moduleType) const{ if(moduleType == 1) - return -7.1*GeoModelKernelUnits::mm; + return -7.1*Gaudi::Units::mm; else - return -1.9*GeoModelKernelUnits::mm; + return -1.9*Gaudi::Units::mm; } // @@ -127,13 +127,13 @@ double SCT_BarrelModuleParameters::baseBoardOffsetZ(int moduleType) const{ double SCT_BarrelModuleParameters::moduleStereoAngle(int moduleType) const { - return db()->getDouble(m_SctBrlModule, "STEREOANGLE", moduleType) * GeoModelKernelUnits::mrad; + return db()->getDouble(m_SctBrlModule, "STEREOANGLE", moduleType) * Gaudi::Units::mrad; } double SCT_BarrelModuleParameters::moduleInterSidesGap(int moduleType) const { - return db()->getDouble(m_SctBrlModule, "INTERSIDESGAP", moduleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlModule, "INTERSIDESGAP", moduleType) * Gaudi::Units::mm; } // Barrel Module Side Design @@ -141,7 +141,7 @@ SCT_BarrelModuleParameters::moduleInterSidesGap(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideStripPitch(int moduleType) const { - double pitch = db()->getDouble(m_SctBrlSensor, "STRIPPITCH", moduleType) * GeoModelKernelUnits::mm; + double pitch = db()->getDouble(m_SctBrlSensor, "STRIPPITCH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<pitch <<endmsg; return pitch; } @@ -149,7 +149,7 @@ SCT_BarrelModuleParameters::barrelModelSideStripPitch(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideStripLength(int moduleType) const { - double stripLen = db()->getDouble(m_SctBrlSensor, "STRIPLENGTH", moduleType) * GeoModelKernelUnits::mm; + double stripLen = db()->getDouble(m_SctBrlSensor, "STRIPLENGTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideStripLength STRIPLEN mod_typ("<<moduleType<<") = "<<stripLen <<endmsg; return stripLen; } @@ -157,7 +157,7 @@ SCT_BarrelModuleParameters::barrelModelSideStripLength(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideTotalDeadLength(int moduleType) const { - double stripdeadLen = db()->getDouble(m_SctBrlSensor, "STRIPDEADLENGTH", moduleType) * GeoModelKernelUnits::mm; + double stripdeadLen = db()->getDouble(m_SctBrlSensor, "STRIPDEADLENGTH", moduleType) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideTotalDeadLength STRIPDEADLEN mod_typ("<<moduleType<<") = "<<stripdeadLen<<endmsg; return stripdeadLen; } @@ -177,7 +177,7 @@ double SCT_BarrelModuleParameters::barrelModelSideSegmentGap(int moduleType) const { if (m_SctBrlSensor) { - return db()->getDouble(m_SctBrlSensor, "SEGMENTGAP", moduleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlSensor, "SEGMENTGAP", moduleType) * Gaudi::Units::mm; } else { return 0; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx index e71ae56a28a0..7aea7f125809 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx @@ -8,8 +8,7 @@ #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" #include "RDBAccessSvc/IRDBRecord.h" - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <cstring> @@ -41,12 +40,12 @@ void barrelModSplitString(const std::string& str, std::vector<std::string>& str_ // -const double PITCH = 80*GeoModelKernelUnits::micrometer; -const double HALF_ACTIVE_STRIP_LENGTH = 31*GeoModelKernelUnits::mm; -const double NOMINAL_WAFER_LENGTH = 63.960*GeoModelKernelUnits::mm; -const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19*GeoModelKernelUnits::mm; -const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750*GeoModelKernelUnits::mm; -const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8*GeoModelKernelUnits::mm; +const double PITCH = 80*Gaudi::Units::micrometer; +const double HALF_ACTIVE_STRIP_LENGTH = 31*Gaudi::Units::mm; +const double NOMINAL_WAFER_LENGTH = 63.960*Gaudi::Units::mm; +const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19*Gaudi::Units::mm; +const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750*Gaudi::Units::mm; +const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8*Gaudi::Units::mm; const double DISTANCE_CENTER_TO_CENTER = 2*(DISTANCE_CORNER_MARK_TO_CENTER - DISTANCE_CORNER_MARK_TO_FIDUCIAL) + REF_DISTANCE_BETWEEN_FIDUCIALS; @@ -131,7 +130,7 @@ SCT_BarrelModuleParametersOld::sensorThickness(int moduleType) const char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ1", moduleType); std::cout<<"-----------2 sensorThickness DXYZ1 mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second <<std::endl; - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; } double @@ -139,8 +138,8 @@ SCT_BarrelModuleParametersOld::sensorWidth(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ2", moduleType); - std::cout<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + std::cout<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; } double @@ -148,7 +147,7 @@ SCT_BarrelModuleParametersOld::sensorLength(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ3", moduleType); - float sensorLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + float sensorLen = (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; std::cout<<"-----------2 SensorLentgh DXYZ3 mod_typ("<<moduleType<<") = "<<sensorLen <<std::endl; return sensorLen; } @@ -171,8 +170,8 @@ SCT_BarrelModuleParametersOld::baseBoardThickness(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_BBTHICK", moduleType); - std::cout<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + std::cout<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; } double @@ -180,15 +179,15 @@ SCT_BarrelModuleParametersOld::baseBoardWidth(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_BBWID", moduleType); - std::cout<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + std::cout<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; } double SCT_BarrelModuleParametersOld::baseBoardLength(int moduleType) const{ char paraName[50]; sprintf(paraName, "BRL_M%d_BBLEN", moduleType); std::cout<<"-----------2 baseBoardLength BBLEN mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second <<std::endl; - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; } std::string @@ -202,16 +201,16 @@ SCT_BarrelModuleParametersOld::baseBoardMaterial(int moduleType) const } double SCT_BarrelModuleParametersOld::baseBoardOffsetY(int /*moduleType*/) const{ //if(moduleType == 1) - return -5.7*GeoModelKernelUnits::mm; + return -5.7*Gaudi::Units::mm; //else - // return -5.7*GeoModelKernelUnits::mm; + // return -5.7*Gaudi::Units::mm; } double SCT_BarrelModuleParametersOld::baseBoardOffsetZ(int moduleType) const{ if(moduleType == 1) - return -7.1*GeoModelKernelUnits::mm; + return -7.1*Gaudi::Units::mm; else - return -1.9*GeoModelKernelUnits::mm; + return -1.9*Gaudi::Units::mm; } // @@ -222,7 +221,7 @@ SCT_BarrelModuleParametersOld::moduleStereoAngle(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_STEREOANGLE", moduleType); - return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::milliradian; + return (m_SCT_Modules->find(paraName))->second*Gaudi::Units::milliradian; } double @@ -230,7 +229,7 @@ SCT_BarrelModuleParametersOld::moduleInterSidesGap(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_INTERSIDESGAP", moduleType); - return (double)(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Modules->find(paraName))->second*Gaudi::Units::mm; } // Barrel Module Side Design @@ -240,8 +239,8 @@ SCT_BarrelModuleParametersOld::barrelModelSideStripPitch(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_PITCH", moduleType); - std::cout<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::micrometer <<std::endl; - return (double)(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::micrometer; + std::cout<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*Gaudi::Units::micrometer <<std::endl; + return (double)(m_SCT_Modules->find(paraName))->second*Gaudi::Units::micrometer; } double @@ -249,7 +248,7 @@ SCT_BarrelModuleParametersOld::barrelModelSideStripLength(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_STRIPLEN", moduleType); - double stripLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + double stripLen = (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; std::cout<<"-----------2 barrelModelSideStripLength STRIPLEN mod_typ("<<moduleType<<") = "<<stripLen <<std::endl; return stripLen; } @@ -259,7 +258,7 @@ SCT_BarrelModuleParametersOld::barrelModelSideTotalDeadLength(int moduleType) co { char paraName[50]; sprintf(paraName, "BRL_M%d_STRIPDEADLEN", moduleType); - double stripdeadLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; + double stripdeadLen = (m_SCT_Modules->find(paraName))->second*Gaudi::Units::cm; std::cout<<"-----------2 barrelModelSideTotalDeadLength STRIPDEADLEN mod_typ("<<moduleType<<") = "<<stripdeadLen<<std::endl; return stripdeadLen; } @@ -300,7 +299,7 @@ SCT_BarrelModuleParametersOld::barrelDeadEdge(int moduleType) const char paraName2[50]; sprintf(paraName1, "BRL_M%d_DXYZ3", moduleType); sprintf(paraName2, "BRL_M%d_STRIPLEN", moduleType); - float deadEdge = 0.5*((m_SCT_Modules->find(paraName1))->second-(m_SCT_Modules->find(paraName2))->second)*GeoModelKernelUnits::mm; + float deadEdge = 0.5*((m_SCT_Modules->find(paraName1))->second-(m_SCT_Modules->find(paraName2))->second)*Gaudi::Units::mm; std::cout<<"-----------2 barrelDeadEdge DEADED mod_typ("<<moduleType<<") = "<<deadEdge<<std::endl; return deadEdge; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx index 75881f23f506..256bb398a8c8 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx @@ -6,7 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <cmath> @@ -56,7 +56,7 @@ SCT_BarrelParameters::SCT_BarrelParameters(const SCT_DataBase * sctdb, const SCT moduleIdVec = new std::vector<int>; m_moduleIdMap[type] = moduleIdVec; } - zposVec->push_back(db()->getDouble(m_SctBrlSkiZ,"ZPOSITION",i)*GeoModelKernelUnits::mm); + zposVec->push_back(db()->getDouble(m_SctBrlSkiZ,"ZPOSITION",i)*Gaudi::Units::mm); moduleIdVec->push_back(db()->getInt(m_SctBrlSkiZ,"MODULEID",i)); } } @@ -100,9 +100,9 @@ SCT_BarrelParameters::skiFirstStagger() const{ double SCT_BarrelParameters::skiRadialSep(int ilayer) const{ - // return 2.8*GeoModelKernelUnits::mm;//GeoModelKernelUnits::mm + // return 2.8*Gaudi::Units::mm;//Gaudi::Units::mm int ladType = ladderType(ilayer); - return db()->getDouble(m_SctBrlLadder,"MODULESRADIALSEP",ladType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLadder,"MODULESRADIALSEP",ladType) * Gaudi::Units::mm; } @@ -145,17 +145,17 @@ SCT_BarrelParameters::skiZPosition(int ilayer, int module) const{ int break_mod = modulesPerSki(ilayer) / 2; double zsep = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType); //CALCULATE NEGATIVE END POSITION FIRST, TO KEEP MODULE ORDERING THE SAME - double first_pos = (-cylInnerZMin(ilayer) - (break_mod - 0.5)*zsep) * GeoModelKernelUnits::mm; + double first_pos = (-cylInnerZMin(ilayer) - (break_mod - 0.5)*zsep) * Gaudi::Units::mm; //PSOTION OF FIRST MODULE AFTER THE BREAK - double break_pos = cylInnerZMin(ilayer) * GeoModelKernelUnits::mm ; + double break_pos = cylInnerZMin(ilayer) * Gaudi::Units::mm ; - if(module < break_mod ) zpos = first_pos + (zsep * module) * GeoModelKernelUnits::mm; - else zpos = (break_pos + (zsep * (module - break_mod + 0.5))) * GeoModelKernelUnits::mm; + if(module < break_mod ) zpos = first_pos + (zsep * module) * Gaudi::Units::mm; + else zpos = (break_pos + (zsep * (module - break_mod + 0.5))) * Gaudi::Units::mm; } else{ int ladType = ladderType(ilayer); - zpos = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType) * (module - 0.5*(modulesPerSki(ilayer) - 1)) * GeoModelKernelUnits::mm; + zpos = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType) * (module - 0.5*(modulesPerSki(ilayer) - 1)) * Gaudi::Units::mm; } } else { std::map<int, std::vector<double> *>::const_iterator iter = m_zpositionMap.find(zpostype); @@ -208,25 +208,25 @@ SCT_BarrelParameters::skiModuleIdentifier(int ilayer, int module) const{ // double SCT_BarrelParameters::tilt(int ilayer) const{ - double tilt = db()->getDouble(m_SctBrlLayer,"TILT",ilayer) * GeoModelKernelUnits::degree; - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 tilt layer TILT("<<ilayer<<") = "<< tilt/GeoModelKernelUnits::degree << endmsg; + double tilt = db()->getDouble(m_SctBrlLayer,"TILT",ilayer) * Gaudi::Units::degree; + if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 tilt layer TILT("<<ilayer<<") = "<< tilt/Gaudi::Units::degree << endmsg; return tilt; } double SCT_BarrelParameters::radius(int ilayer) const{ - double rlay = db()->getDouble(m_SctBrlLayer,"RADIUS",ilayer) * GeoModelKernelUnits::mm; + double rlay = db()->getDouble(m_SctBrlLayer,"RADIUS",ilayer) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 radius layer RLAY("<<ilayer<<") = "<<rlay<<endmsg; return rlay; } double SCT_BarrelParameters::cylLength(int ilayer) const{ - return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",ilayer) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",ilayer) * Gaudi::Units::mm; } double SCT_BarrelParameters::cylInnerZMin(int ilayer) const{ - return db()->getDouble(m_SctBrlLayer,"CYLINNERZMIN",ilayer) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLayer,"CYLINNERZMIN",ilayer) * Gaudi::Units::mm; } bool SCT_BarrelParameters::doubleSided(int ilayer) const{ @@ -257,7 +257,7 @@ SCT_BarrelParameters::staveLayout(int ilayer) const { double SCT_BarrelParameters::stereoOuter(int ilayer) const { if (m_SctBrlLayer) { - return db()->getDouble(m_SctBrlLayer,"STEREOOUTER",ilayer) * GeoModelKernelUnits::mrad; + return db()->getDouble(m_SctBrlLayer,"STEREOOUTER",ilayer) * Gaudi::Units::mrad; } else { return 0; } @@ -266,7 +266,7 @@ SCT_BarrelParameters::stereoOuter(int ilayer) const { double SCT_BarrelParameters::stereoInner(int ilayer) const{ if (m_SctBrlLayer) { - return db()->getDouble(m_SctBrlLayer,"STEREOINNER",ilayer) * GeoModelKernelUnits::mrad; + return db()->getDouble(m_SctBrlLayer,"STEREOINNER",ilayer) * Gaudi::Units::mrad; } else { return 0; } @@ -277,7 +277,7 @@ SCT_BarrelParameters::staveSupportWidth(int ilayer) const{ if (m_SctBrlLayer) { int ladType = ladderType(ilayer); if (db()->testField(m_SctBrlLadder,"SUPPORTWIDTH",ladType)) { - return db()->getDouble(m_SctBrlLadder,"SUPPORTWIDTH",ladType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLadder,"SUPPORTWIDTH",ladType) * Gaudi::Units::mm; } } return 0; @@ -289,7 +289,7 @@ SCT_BarrelParameters::staveSupportThickness(int ilayer) const{ if (m_SctBrlLayer) { int ladType = ladderType(ilayer); if (db()->testField(m_SctBrlLadder,"SUPPORTTHICK",ladType)) { - return db()->getDouble(m_SctBrlLadder,"SUPPORTTHICK",ladType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlLadder,"SUPPORTTHICK",ladType) * Gaudi::Units::mm; } } return 0; @@ -308,14 +308,14 @@ SCT_BarrelParameters::staveSupportMaterial(int ilayer) const{ double SCT_BarrelParameters::supportCylInnerRadius(int ilayer) const{ - double risup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",ilayer) * GeoModelKernelUnits::mm; + double risup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",ilayer) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<< risup <<endmsg; return risup; } double SCT_BarrelParameters::supportCylOuterRadius(int ilayer) const{ - double rosup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLOUTERRAD",ilayer) * GeoModelKernelUnits::mm; + double rosup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLOUTERRAD",ilayer) * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<rosup<<endmsg; return rosup; } @@ -337,35 +337,35 @@ SCT_BarrelParameters::numLayers() const{ double SCT_BarrelParameters::barrelInnerRadius() const{ - double rmin = db()->getDouble(m_SctBrlGeneral,"INNERRADIUS") * GeoModelKernelUnits::mm; + double rmin = db()->getDouble(m_SctBrlGeneral,"INNERRADIUS") * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelInnerRadius RMIN = "<<rmin<<endmsg; return rmin; } double SCT_BarrelParameters::barrelIntermediateRadius() const{ - double rinter = db()->getDouble(m_SctBrlGeneral,"RINTERMEDIATE") * GeoModelKernelUnits::mm; + double rinter = db()->getDouble(m_SctBrlGeneral,"RINTERMEDIATE") * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<rinter<<endmsg; return rinter; } double SCT_BarrelParameters::barrelOuterRadius() const{ - double rmax = db()->getDouble(m_SctBrlGeneral,"OUTERRADIUS") * GeoModelKernelUnits::mm; + double rmax = db()->getDouble(m_SctBrlGeneral,"OUTERRADIUS") * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelOuterRadius RMAX = "<<rmax<<endmsg; return rmax; } double SCT_BarrelParameters::barrelLength() const{ - double length = db()->getDouble(m_SctBrlGeneral,"LENGTH") * GeoModelKernelUnits::mm; + double length = db()->getDouble(m_SctBrlGeneral,"LENGTH") * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelLength B_LEN = "<<length<<endmsg; return length; } double SCT_BarrelParameters::barrelIntermediateLength() const{ - double interlen = db()->getDouble(m_SctBrlGeneral,"INTERMEDIATELEN") * GeoModelKernelUnits::mm; + double interlen = db()->getDouble(m_SctBrlGeneral,"INTERMEDIATELEN") * Gaudi::Units::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelIntermediateLength B_IntermediateLEN = " <<interlen<<endmsg; return interlen; @@ -373,7 +373,7 @@ SCT_BarrelParameters::barrelIntermediateLength() const{ double SCT_BarrelParameters::barrelServicesMaterialCylinderLength() const { - return db()->getDouble(m_SctBrlGeneral,"BRLSERVMATTHICK") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctBrlGeneral,"BRLSERVMATTHICK") * Gaudi::Units::mm; } double diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx index d45829122a27..f0390b07e21f 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx @@ -5,7 +5,7 @@ #include "SCT_SLHC_GeoModel/SCT_BarrelParametersOld.h" #include "SCT_SLHC_GeoModel/SCT_GeometryManager.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <cmath> #include <stdio.h> @@ -219,10 +219,10 @@ SCT_BarrelParametersOld::skiFirstStagger() const{ double SCT_BarrelParametersOld::skiRadialSep(int ilayer) const{ - // return 2.8*GeoModelKernelUnits::mm;//mm + // return 2.8*Gaudi::Units::mm;//mm char paraName[50]; sprintf(paraName, "L%d_MODULESRADIALSEPARATION", ilayer); - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::mm; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::mm; } int @@ -256,22 +256,22 @@ double SCT_BarrelParametersOld::tilt(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_TILT", ilayer); - std::cout<<"---------2 tilt layer TILT("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::degree<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::degree; + std::cout<<"---------2 tilt layer TILT("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*Gaudi::Units::degree<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::degree; } double SCT_BarrelParametersOld::radius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_RLAY", ilayer); - std::cout<<"---------2 radius layer RLAY("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; + std::cout<<"---------2 radius layer RLAY("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*Gaudi::Units::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::cylLength(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_CYLLENTGH", ilayer); - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::cm; } bool SCT_BarrelParametersOld::doubleSided(int ilayer) const{ @@ -302,16 +302,16 @@ double SCT_BarrelParametersOld::supportCylInnerRadius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_RISUP", ilayer); - std::cout<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; + std::cout<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*Gaudi::Units::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::supportCylOuterRadius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_ROSUP", ilayer); - std::cout<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; + std::cout<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*Gaudi::Units::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * Gaudi::Units::cm; } std::string SCT_BarrelParametersOld::supportCylMaterial(int ilayer) const{ @@ -331,45 +331,45 @@ SCT_BarrelParametersOld::numLayers() const{ double SCT_BarrelParametersOld::barrelInnerRadius() const{ - std::cout<<"---------2 barrelInnerRadius RMIN = "<<(m_SCT_Parameters->find("B_RMIN"))->second * GeoModelKernelUnits::cm<<std::endl; + std::cout<<"---------2 barrelInnerRadius RMIN = "<<(m_SCT_Parameters->find("B_RMIN"))->second * Gaudi::Units::cm<<std::endl; - return (m_SCT_Parameters->find("B_RMIN"))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find("B_RMIN"))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelIntermediateRadius() const{ - std::cout<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<(m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * GeoModelKernelUnits::cm<<std::endl; + std::cout<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<(m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * Gaudi::Units::cm<<std::endl; - return (m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelOuterRadius() const{ - std::cout<<"---------2 barrelOuterRadius RMAX = "<<(m_SCT_Parameters->find("B_RMAX"))->second * GeoModelKernelUnits::cm<<std::endl; + std::cout<<"---------2 barrelOuterRadius RMAX = "<<(m_SCT_Parameters->find("B_RMAX"))->second * Gaudi::Units::cm<<std::endl; - return (m_SCT_Parameters->find("B_RMAX"))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find("B_RMAX"))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelLength() const{ std::cout<<"---------2 barrelLength B_LEN = " - <<(m_SCT_Parameters->find("B_LEN"))->second * GeoModelKernelUnits::cm<<std::endl; + <<(m_SCT_Parameters->find("B_LEN"))->second * Gaudi::Units::cm<<std::endl; - return (m_SCT_Parameters->find("B_LEN"))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find("B_LEN"))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelIntermediateLength() const{ std::cout<<"---------2 barrelIntermediateLength B_IntermediateLEN = " - <<(m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * GeoModelKernelUnits::cm<<std::endl; + <<(m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * Gaudi::Units::cm<<std::endl; - return (m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * GeoModelKernelUnits::cm; + return (m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelServicesMaterialCylinderLength() const { char paraName[50]; sprintf(paraName, "BARRELSERVICESMATERIALCYLINDERLENGTH"); - return (double)(m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; + return (double)(m_SCT_Parameters->find(paraName))->second * Gaudi::Units::cm; } double SCT_BarrelParametersOld::barrelServicesMaterialIncreaseFactor() const { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx index 7b22c81779b1..77d48286700e 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx @@ -3,7 +3,7 @@ */ #include "SCT_SLHC_GeoModel/SCT_ComponentFactory.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <string> @@ -15,7 +15,7 @@ namespace InDetDDSLHC { SCT_DetectorManager * SCT_ComponentFactory::s_detectorManager = 0; const SCT_GeometryManager * SCT_ComponentFactory::s_geometryManager = 0; -double SCT_ComponentFactory::s_epsilon = 1.0e-6 * GeoModelKernelUnits::mm; +double SCT_ComponentFactory::s_epsilon = 1.0e-6 * Gaudi::Units::mm; SCT_ComponentFactory::SCT_ComponentFactory(const std::string & name) : m_name(name) diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx index 3010efc905c8..8d180d7f56da 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx @@ -45,7 +45,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "GeoModelKernel/GeoDefinitions.h" - +#include "GaudiKernel/PhysicalConstants.h" #include "GeoModelKernel/Units.h" #include <iostream> @@ -169,7 +169,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ sctEnvelope = sctEnvelopeTmp; } else { // Build as PCon - GeoPcon* sctEnvelopeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* sctEnvelopeTmp = new GeoPcon(0.,2*Gaudi::Units::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = generalParameters->envelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -238,7 +238,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ idFwdMinus.setBarrelEC(-2); GeoVPhysVol* forwardMinus = sctForward.build(idFwdMinus); GeoTrf::Transform3D rot; - rot = GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree); + rot = GeoTrf::RotateY3D(180*Gaudi::Units::degree); GeoTrf::Transform3D fwdTransformMinus = rot*fwdTransformPlus; GeoAlignableTransform* fwdGeoTransformMinus = new GeoAlignableTransform(fwdTransformMinus); sct->add(new GeoNameTag("ForwardMinus")); @@ -246,7 +246,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ sct->add(forwardMinus); //services material between barrel and endcap - double safety = 1*GeoModelKernelUnits::mm;//1mm, just to avoid any clash + double safety = 1*Gaudi::Units::mm;//1mm, just to avoid any clash double length = sctForward.zCenter()-0.5*sctForward.length()-0.5*sctBarrel.length()-safety;// double barrelServicesCylinderLength = barrelParameters->barrelServicesMaterialCylinderLength(); //use user lenght paramters only if small than the gap @@ -264,11 +264,11 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ double materialIncreaseFactor = barrelParameters->barrelServicesMaterialIncreaseFactor(); if (barrelServicesCylinderLength > 0 && materialIncreaseFactor > 0 && !barrelParameters->barrelServicesMaterial().empty()) { - //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; - //msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" cf_density (GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) "<<cf_density/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/Gaudi::Units::cm3; + //msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" cf_density (GeoModelKernelUnits::g/Gaudi::Units::cm3) "<<cf_density/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; //const GeoMaterial* barrel_serivesMaterial = materials->getMaterial(barrelParameters->barrelServicesMaterial(), cf_density, "UpgradeSCTBarrel_ServicesMaterial"); const GeoMaterial* barrel_serivesMaterial = materials->getMaterialScaled(barrelParameters->barrelServicesMaterial(), materialIncreaseFactor, "UpgradeSCTBarrel_ServicesMaterial"); - msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" density (GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) "<< barrel_serivesMaterial->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" density (GeoModelKernelUnits::g/Gaudi::Units::cm3) "<< barrel_serivesMaterial->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; const GeoTube* barrelPos_servicesMaterialShape = new GeoTube(inner_radius, outer_radius, 0.5*barrelServicesCylinderLength); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx index fde5723f6813..650b1e4d8729 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx @@ -6,8 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <iostream> @@ -42,55 +41,55 @@ SCT_ForwardModuleParameters::fwdSensorNumWafers(int iModuleType) const double SCT_ForwardModuleParameters::moduleInterSidesGap(int iModuleType) const { - return db()->getDouble(m_SctFwdModule,"INTERSIDESGAP",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdModule,"INTERSIDESGAP",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorThickness(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"THICKNESS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"THICKNESS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"LENGTH",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"LENGTH",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidth(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"INNERWIDTH",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"INNERWIDTH",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidth(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"OUTERWIDTH",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"OUTERWIDTH",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"INNERRADIUS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"INNERRADIUS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"OUTERRADIUS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"OUTERRADIUS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorMiddleRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"MIDDLERADIUS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"MIDDLERADIUS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorDeltaPhi(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"DELTAPHI",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"DELTAPHI",iModuleType) * Gaudi::Units::mm; } std::string @@ -102,13 +101,13 @@ SCT_ForwardModuleParameters::fwdSensorMaterial(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorActiveHalfLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"ACTIVEHALFLENGTH",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSensor,"ACTIVEHALFLENGTH",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSensorAngularPitch(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"ANGULARPITCH",iModuleType) * GeoModelKernelUnits::radian; + return db()->getDouble(m_SctFwdSensor,"ANGULARPITCH",iModuleType) * Gaudi::Units::radian; } int @@ -120,7 +119,7 @@ SCT_ForwardModuleParameters::fwdSensorNumReadoutStrips(int iModuleType) const double SCT_ForwardModuleParameters::fwdModuleStereoAngle(int iModuleType) const { - return db()->getDouble(m_SctFwdModule,"STEREOANGLE",iModuleType) * GeoModelKernelUnits::milliradian; + return db()->getDouble(m_SctFwdModule,"STEREOANGLE",iModuleType) * Gaudi::Units::milliradian; } int @@ -138,24 +137,24 @@ SCT_ForwardModuleParameters::fwdSensorChargeCarrier(int iModuleType) const double SCT_ForwardModuleParameters::fwdSpineThickness(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"THICKNESS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSpine,"THICKNESS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"LENGTH",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSpine,"LENGTH",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineMiddleRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"MIDDLERADIUS",iModuleType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdSpine,"MIDDLERADIUS",iModuleType) * Gaudi::Units::mm; } double SCT_ForwardModuleParameters::fwdSpineDeltaPhi(int iModuleType) const{ - return db()->getDouble(m_SctFwdSpine,"DELTAPHI",iModuleType) * GeoModelKernelUnits::radian; + return db()->getDouble(m_SctFwdSpine,"DELTAPHI",iModuleType) * Gaudi::Units::radian; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx index 07e4cc36fd25..c822eb747541 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx @@ -6,8 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <iostream> @@ -116,7 +115,7 @@ SCT_ForwardModuleParametersOld::moduleInterSidesGap(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_INTERSIDESGAP", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; } double @@ -124,9 +123,9 @@ SCT_ForwardModuleParametersOld::fwdSensorThickness(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORTHICKNESS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return 2.0 * m_rdb->zsmo()->getDouble("DZSC") * GeoModelKernelUnits::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return 2.0 * m_rdb->zsmo()->getDouble("DZSC") * Gaudi::Units::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double @@ -134,23 +133,23 @@ SCT_ForwardModuleParametersOld::fwdSensorLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORLENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RLF") * GeoModelKernelUnits::cm; -//---return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RLF") * Gaudi::Units::cm; +//---return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParametersOld::fwdSensorInnerWidth(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORINNERWIDTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; } double SCT_ForwardModuleParametersOld::fwdSensorOuterWidth(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSOROUTERWIDTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; } double @@ -158,9 +157,9 @@ SCT_ForwardModuleParametersOld::fwdSensorInnerRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORINNERRADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RINNERF") * GeoModelKernelUnits::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RINNERF") * Gaudi::Units::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * Gaudi::Units::mm; } double @@ -168,9 +167,9 @@ SCT_ForwardModuleParametersOld::fwdSensorOuterRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSOROUTERRADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * GeoModelKernelUnits::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * Gaudi::Units::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * Gaudi::Units::mm; } double @@ -178,15 +177,15 @@ SCT_ForwardModuleParametersOld::fwdSensorMiddleRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORMIDDLERADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * GeoModelKernelUnits::cm; -//---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * Gaudi::Units::cm; +//---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * Gaudi::Units::mm; } double SCT_ForwardModuleParametersOld::fwdSensorDeltaPhi(int iModuleType) const{ char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORDELTAPHI", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::radian; } std::string @@ -203,9 +202,9 @@ SCT_ForwardModuleParametersOld::fwdSensorActiveHalfLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_ACTIVEHALFLENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RSEF") * GeoModelKernelUnits::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RSEF") * Gaudi::Units::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * Gaudi::Units::mm; } double @@ -213,9 +212,9 @@ SCT_ForwardModuleParametersOld::fwdSensorAngularPitch(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_ANGULARPITCH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; - //---return m_rdb->zsmi(iModuleType)->getDouble("PHISTR") * GeoModelKernelUnits::radian; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * GeoModelKernelUnits::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::radian; + //---return m_rdb->zsmi(iModuleType)->getDouble("PHISTR") * Gaudi::Units::radian; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * Gaudi::Units::radian; } int @@ -233,9 +232,9 @@ SCT_ForwardModuleParametersOld::fwdModuleStereoAngle(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_STEREOANGLE", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::milliradian; - //---return 40 * GeoModelKernelUnits::milliradian; - //---return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::milliradian; + //---return 40 * Gaudi::Units::milliradian; + //---return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * Gaudi::Units::milliradian; } // @@ -246,9 +245,9 @@ SCT_ForwardModuleParametersOld::fwdSpineThickness(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINETHICKNESS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //---return 1*GeoModelKernelUnits::mm; - //---return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //---return 1*Gaudi::Units::mm; + //---return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * Gaudi::Units::mm; } double @@ -256,11 +255,11 @@ SCT_ForwardModuleParametersOld::fwdSpineLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINELENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; - //return 8*GeoModelKernelUnits::cm; - //--- return (m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * GeoModelKernelUnits::mm - //--- + m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm + 2*GeoModelKernelUnits::cm); -//return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; + //return 8*Gaudi::Units::cm; + //--- return (m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * Gaudi::Units::mm + //--- + m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * Gaudi::Units::mm + 2*Gaudi::Units::cm); +//return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * Gaudi::Units::mm; } double @@ -268,13 +267,13 @@ SCT_ForwardModuleParametersOld::fwdSpineMiddleRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINEMIDDLERADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::mm; } double SCT_ForwardModuleParametersOld::fwdSpineDeltaPhi(int iModuleType) const{ char paraName[50]; sprintf(paraName, "FWD_M%d_SPINEDELTAPHI", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*Gaudi::Units::radian; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx index 7b9d76a7f0bd..3c7af8b84e5c 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx @@ -7,9 +7,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" - - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <cmath> @@ -72,7 +70,7 @@ SCT_ForwardParameters::fwdNumWheels() const double SCT_ForwardParameters::fwdWheelZPosition(int iWheel) const { - return db()->getDouble(m_SctFwdWheel,"ZPOSITION",iWheel) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdWheel,"ZPOSITION",iWheel) * Gaudi::Units::mm; } int @@ -107,19 +105,19 @@ SCT_ForwardParameters::getRingMapIndex(int iWheel, int iRingIndex) const double SCT_ForwardParameters::fwdDiscSupportInnerRadius(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"INNERRADIUS",iWheel) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdDiscSupport,"INNERRADIUS",iWheel) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscSupportOuterRadius(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",iWheel) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",iWheel) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdDiscSupportThickness(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"THICKNESS",iWheel) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdDiscSupport,"THICKNESS",iWheel) * Gaudi::Units::mm; } std::string @@ -142,37 +140,37 @@ SCT_ForwardParameters::fwdRingNumModules(int iRingType) const double SCT_ForwardParameters::fwdRingInnerRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"INNERRADIUS",iRingType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdRing,"INNERRADIUS",iRingType) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingMiddleRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"MIDDLERADIUS",iRingType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdRing,"MIDDLERADIUS",iRingType) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingOuterRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"OUTERRADIUS",iRingType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdRing,"OUTERRADIUS",iRingType) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingOffset(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"OFFSET",iRingType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdRing,"OFFSET",iRingType) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingModuleStagger(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"MODULESTAGGER",iRingType) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdRing,"MODULESTAGGER",iRingType) * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdRingPhiOfRefModule(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"PHIOFREFMODULE",iRingType) * GeoModelKernelUnits::radian; + return db()->getDouble(m_SctFwdRing,"PHIOFREFMODULE",iRingType) * Gaudi::Units::radian; } int @@ -205,37 +203,37 @@ SCT_ForwardParameters::fwdWheelStereoType(m_iWheel, int iRing) const double SCT_ForwardParameters::fwdInnerRadius() const { - return db()->getDouble(m_SctFwdGeneral,"INNERRADIUS") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdIntermediateRadius() const { - return db()->getDouble(m_SctFwdGeneral,"RINTERMEDIATE") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"RINTERMEDIATE") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdOuterRadius() const { - return db()->getDouble(m_SctFwdGeneral,"OUTERRADIUS") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"OUTERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdZMin() const { - return db()->getDouble(m_SctFwdGeneral,"ZMIN") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"ZMIN") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdZIntermediate() const { - return db()->getDouble(m_SctFwdGeneral,"ZINTERMEDIATE") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"ZINTERMEDIATE") * Gaudi::Units::mm; } double SCT_ForwardParameters::fwdZMax() const { - return db()->getDouble(m_SctFwdGeneral,"ZMAX") * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctFwdGeneral,"ZMAX") * Gaudi::Units::mm; } } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx index 71ee405b5f41..c24a6dbc5408 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx @@ -8,9 +8,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" - - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> #include <cmath> @@ -190,8 +188,8 @@ SCT_ForwardParametersOld::fwdWheelZPosition(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKZPOSITION", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; - //return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; + //return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * Gaudi::Units::mm; } int @@ -217,8 +215,8 @@ SCT_ForwardParametersOld::fwdDiscSupportInnerRadius(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKINNERRADIUS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double @@ -226,8 +224,8 @@ SCT_ForwardParametersOld::fwdDiscSupportOuterRadius(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKOUTERRADIUS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } double @@ -235,8 +233,8 @@ SCT_ForwardParametersOld::fwdDiscSupportThickness(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKTHICKNESS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * Gaudi::Units::mm; } std::string @@ -267,7 +265,7 @@ SCT_ForwardParametersOld::fwdRingInnerRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_INNERRADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; } double @@ -275,14 +273,14 @@ SCT_ForwardParametersOld::fwdRingMiddleRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_MIDDLERADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; } double SCT_ForwardParametersOld::fwdRingOuterRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_OUTERRADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; } double @@ -290,7 +288,7 @@ SCT_ForwardParametersOld::fwdRingOffset(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_OFFSET", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; } double @@ -298,8 +296,8 @@ SCT_ForwardParametersOld::fwdRingModuleStagger(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_MODULESTAGGER", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; - //---return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::mm; + //---return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * Gaudi::Units::mm; } double @@ -307,8 +305,8 @@ SCT_ForwardParametersOld::fwdRingPhiOfRefModule(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_PHIOFREFMODULE", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::radian; - //---return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*Gaudi::Units::radian; + //---return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * Gaudi::Units::deg; } int @@ -348,22 +346,22 @@ SCT_ForwardParametersOld::fwdWheelStereoType(m_iWheel, int iRing) const double SCT_ForwardParametersOld::fwdInnerRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_INNERRADIUS"))->second*GeoModelKernelUnits::mm; - // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_INNERRADIUS"))->second*Gaudi::Units::mm; + // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParametersOld::fwdIntermediateRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_INTERMEDIATERADIUS"))->second*GeoModelKernelUnits::mm; - // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_INTERMEDIATERADIUS"))->second*Gaudi::Units::mm; + // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * Gaudi::Units::mm; } double SCT_ForwardParametersOld::fwdOuterRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_OUTERRADIUS"))->second*GeoModelKernelUnits::mm; - // return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_OUTERRADIUS"))->second*Gaudi::Units::mm; + // return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * Gaudi::Units::mm; } @@ -372,22 +370,22 @@ SCT_ForwardParametersOld::fwdOuterRadius() const double SCT_ForwardParametersOld::fwdZMin() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMIN"))->second*GeoModelKernelUnits::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMIN"))->second*Gaudi::Units::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMIN") * Gaudi::Units::mm; } double SCT_ForwardParametersOld::fwdZIntermediate() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZINTERMEDIATE"))->second*GeoModelKernelUnits::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZINTERMEDIATE"))->second*Gaudi::Units::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMIN") * Gaudi::Units::mm; } double SCT_ForwardParametersOld::fwdZMax() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMAX"))->second*GeoModelKernelUnits::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMAX") * GeoModelKernelUnits::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMAX"))->second*Gaudi::Units::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMAX") * Gaudi::Units::mm; } } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx index 7a409fbfa5b0..0637ff630376 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx @@ -10,7 +10,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" namespace InDetDDSLHC { @@ -31,7 +31,7 @@ void SCT_FwdDiscSupport::getParameters(){ //m_material = materials.getMaterial(parameters->fwdDiscSupportMaterial(m_iWheel)); //0.1265 is taken from oracle database (DiskSupport) double materialIncreaseFactor = parameters->materialIncreaseFactor(m_iWheel); - //double cf_density = 0.1265*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + //double cf_density = 0.1265*materialIncreaseFactor*GeoModelKernelUnits::g/Gaudi::Units::cm3; //m_material = materials->getMaterial(parameters->fwdDiscSupportMaterial(m_iWheel), cf_density); m_material = materials->getMaterialScaled(parameters->fwdDiscSupportMaterial(m_iWheel), materialIncreaseFactor); } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx index a6f5a6354ff7..5762fe08b400 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx @@ -23,11 +23,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" - -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> #include <sstream> @@ -71,23 +68,23 @@ const GeoLogVol * SCT_FwdModule::preBuild(){ m_sensor = new SCT_FwdSensor("ECSensor0", m_ring); //prepare the module envelope volume - m_length = std::max(m_sensor->length(), m_spine->length()) + 0.50*GeoModelKernelUnits::cm;//0.01mm safety necessary (for stereo angle) + m_length = std::max(m_sensor->length(), m_spine->length()) + 0.50*Gaudi::Units::cm;//0.01mm safety necessary (for stereo angle) m_middleRadius = m_sensor->middleRadius(); m_innerRadius = m_middleRadius - 0.5*m_length; m_outerRadius = m_middleRadius + 0.5*m_length; m_deltaPhi = std::max(m_sensor->deltaPhi(), m_spine->deltaPhi()); if(m_doubleSided){ double interSidesGap = std::max(m_spine->thickness(), m_interSidesGap); - m_thickness = 2*m_sensor->thickness() + interSidesGap + 0.01*GeoModelKernelUnits::mm;//0.01mm safety necessary - //the term 10*GeoModelKernelUnits::degree*3.14/180, is to accommodate the stereo rotation - m_deltaPhi = m_deltaPhi + 10*GeoModelKernelUnits::degree*3.14/180.; + m_thickness = 2*m_sensor->thickness() + interSidesGap + 0.01*Gaudi::Units::mm;//0.01mm safety necessary + //the term 10*Gaudi::Units::degree*3.14/180, is to accommodate the stereo rotation + m_deltaPhi = m_deltaPhi + 10*Gaudi::Units::degree*3.14/180.; //add 1cm, to accomodate for stereo rotation (to be dealt correctly with later) - //m_innerRadius = m_innerRadius - 0.5*GeoModelKernelUnits::cm; - //m_outerRadius = m_outerRadius + 0.5*GeoModelKernelUnits::cm; - m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()) + 2*GeoModelKernelUnits::cm; - m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()) + 2*GeoModelKernelUnits::cm; + //m_innerRadius = m_innerRadius - 0.5*Gaudi::Units::cm; + //m_outerRadius = m_outerRadius + 0.5*Gaudi::Units::cm; + m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()) + 2*Gaudi::Units::cm; + m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()) + 2*Gaudi::Units::cm; }else{ - m_thickness = m_sensor->thickness() + m_spine->thickness() + 0.01*GeoModelKernelUnits::mm;//0.01mm safety necessary + m_thickness = m_sensor->thickness() + m_spine->thickness() + 0.01*Gaudi::Units::mm;//0.01mm safety necessary m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()); m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()); } @@ -125,7 +122,7 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ GeoTrf::Translation3D inner_Xpos(Xpos, 0.0, 0.0); innerSidePos = GeoTrf::Transform3D(inner_Xpos*inner_Rot); //outer side (shift towards X positive) - GeoTrf::Transform3D outer_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D outer_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*Gaudi::Units::deg); Xpos = -0.5*(interSidesGap + m_sensor->thickness()); //protection if(fabs(Xpos)+0.5*m_sensor->thickness() > 0.5*m_thickness){ diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx index e1f6a79ada43..e5ea50d2eecc 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx @@ -20,10 +20,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/PhysicalConstants.h" #include <sstream> #include <cmath> @@ -68,11 +66,11 @@ const GeoLogVol* SCT_FwdRing::preBuild(){ m_module = new SCT_FwdModule("FwdModule"+intToString(m_iRing), m_iRing, m_doubleSided); - //m_innerRadius = m_innerRadius - 0.51*GeoModelKernelUnits::cm;//0.01mm safety necessary - //m_outerRadius = m_outerRadius + 0.51*GeoModelKernelUnits::cm;//0.01mm safety necessary - m_innerRadius = m_innerRadius - 5*GeoModelKernelUnits::mm;//0.01mm safety necessary - m_outerRadius = m_outerRadius + 7*GeoModelKernelUnits::mm;//0.01mm safety necessary - m_thickness = m_module->thickness() + m_moduleStagger + 0.01*GeoModelKernelUnits::mm;//safety necessary + //m_innerRadius = m_innerRadius - 0.51*Gaudi::Units::cm;//0.01mm safety necessary + //m_outerRadius = m_outerRadius + 0.51*Gaudi::Units::cm;//0.01mm safety necessary + m_innerRadius = m_innerRadius - 5*Gaudi::Units::mm;//0.01mm safety necessary + m_outerRadius = m_outerRadius + 7*Gaudi::Units::mm;//0.01mm safety necessary + m_thickness = m_module->thickness() + m_moduleStagger + 0.01*Gaudi::Units::mm;//safety necessary m_length = m_outerRadius - m_innerRadius; //protection along R! if(m_length<m_module->length()){ @@ -101,7 +99,7 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ // Physical volume for the half ring GeoPhysVol* ring = new GeoPhysVol(m_logVolume); - double divisionAngle = 360*GeoModelKernelUnits::degree/m_numModules; + double divisionAngle = 360*Gaudi::Units::degree/m_numModules; bool negativeEndCap = (id.getBarrelEC() < 0); int staggerUpperLower = m_firstStagger; for(int imod=0; imod<m_numModules; imod++){ @@ -121,15 +119,15 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ double phi = m_refStartAngle + imod*divisionAngle; //std::cerr<<"endcap "<<id.getBarrelEC()<<", ring "<<m_iRing<<", startAngle"<<m_refStartAngle<<", phi "<<phi<<std::endl; //put the module along the radius of the ring, along X for example (remeber, it is along Z) - GeoTrf::Transform3D rot = GeoTrf::RotateY3D(90*GeoModelKernelUnits::degree); + GeoTrf::Transform3D rot = GeoTrf::RotateY3D(90*Gaudi::Units::degree); if (negativeEndCap) { //rotate the module so that to keep the local frame orientation as in the positive end - //rot.rotateZ(180*GeoModelKernelUnits::degree); + //rot.rotateZ(180*Gaudi::Units::degree); //start in the oppsite phi and turn in the oppsite direction - if(phi < GeoModelKernelUnits::pi) - phi = GeoModelKernelUnits::pi - phi; + if(phi < Gaudi::Units::pi) + phi = Gaudi::Units::pi - phi; else - phi = 3*GeoModelKernelUnits::pi - phi; + phi = 3*Gaudi::Units::pi - phi; } rot = GeoTrf::RotateZ3D(phi) * rot; //std::cerr<<"endcap "<<id.getBarrelEC()<<", wheel "<<m_iWheel<<", ring "<<m_iRing<<", mod "<<imod<<", phi "<<phi<<", startAng "<<m_refStartAngle<<std::endl; @@ -147,7 +145,7 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ xyz = GeoTrf::RotateZ3D(phi)*xyz; GeoTrf::Transform3D modulePos = GeoTrf::Translate3D(xyz.x(),xyz.y(),xyz.z())*rot; //protection along R! - const double epsilon = 0.0001*GeoModelKernelUnits::mm; //beyound meansurment precision?! + const double epsilon = 0.0001*Gaudi::Units::mm; //beyound meansurment precision?! if(m_innerRadius-epsilon>m_module->innerRadius() || m_outerRadius+epsilon<m_module->outerRadius()){ std::cout<<"SCT_FwdRing.cxx: problem with module position along R: " diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx index 6ce2e2b66778..8539f97ffa9b 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx @@ -22,11 +22,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -65,7 +62,7 @@ void SCT_FwdWheel::getParameters(){ m_ringOffset.push_back(parameters->fwdRingOffset(ringType)); m_ringTypes.push_back(ringType); } - m_staggerGap = 0.001* GeoModelKernelUnits::mm; + m_staggerGap = 0.001* Gaudi::Units::mm; // Set numerology detectorManager()->numerology().setNumRingsForDisk(m_iWheel,m_numRings); @@ -85,10 +82,10 @@ const GeoLogVol* SCT_FwdWheel::preBuild(){ } //Calculate the extent of the envelope //start the support disc - //m_outerRadius = m_discSupport->outerRadius() + 0.52*GeoModelKernelUnits::cm;//0.01mm safety necessary - //m_innerRadius = m_discSupport->innerRadius() - 0.52*GeoModelKernelUnits::cm;//0.01mm safety necessary - m_outerRadius = m_discSupport->outerRadius() + 9*GeoModelKernelUnits::mm;//0.01mm safety necessary - m_innerRadius = m_discSupport->innerRadius() - 9*GeoModelKernelUnits::mm;//0.01mm safety necessary + //m_outerRadius = m_discSupport->outerRadius() + 0.52*Gaudi::Units::cm;//0.01mm safety necessary + //m_innerRadius = m_discSupport->innerRadius() - 0.52*Gaudi::Units::cm;//0.01mm safety necessary + m_outerRadius = m_discSupport->outerRadius() + 9*Gaudi::Units::mm;//0.01mm safety necessary + m_innerRadius = m_discSupport->innerRadius() - 9*Gaudi::Units::mm;//0.01mm safety necessary //then comsider rings double wheelThickness_neg = -1.0;//negative value! see code below double wheelThickness_pos = -1.0; diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx index 3a3a28a4f8e3..811b0068f53e 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx @@ -7,7 +7,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelKernel/GeoDefinitions.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" @@ -15,7 +15,7 @@ namespace InDetDDSLHC { -const double SCT_SAFETY = 0.01 * GeoModelKernelUnits::mm; // Used in some places to make envelopes slightly larger to ensure +const double SCT_SAFETY = 0.01 * Gaudi::Units::mm; // Used in some places to make envelopes slightly larger to ensure // no overlaps due to rounding errors. SCT_GeneralParameters::SCT_GeneralParameters(const SCT_DataBase * sctdb, const SCT_GeoModelAthenaComps * athenaComps) @@ -124,19 +124,19 @@ unsigned int SCT_GeneralParameters::envelopeNumPlanes() const double SCT_GeneralParameters::envelopeZ(int i) const { - double zmin = db()->getDouble(m_SctEnvelope,"Z",i) * GeoModelKernelUnits::mm; + double zmin = db()->getDouble(m_SctEnvelope,"Z",i) * Gaudi::Units::mm; if (zmin < 0) msg(MSG::ERROR) << "SctEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } double SCT_GeneralParameters::envelopeRMin(int i) const { - return db()->getDouble(m_SctEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctEnvelope,"RMIN",i) * Gaudi::Units::mm; } double SCT_GeneralParameters::envelopeRMax(int i) const { - return db()->getDouble(m_SctEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; + return db()->getDouble(m_SctEnvelope,"RMAX",i) * Gaudi::Units::mm; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx index 83c6076022c6..7643acb8ff9f 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx @@ -23,10 +23,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeSubtraction.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -72,7 +70,7 @@ void SCT_Layer::getParameters(){ //---m_supportMaterial = materials->getMaterial(parameters->supportCylMaterial(m_iLayer)); //0.189 is taken from oracle database (CFiberSupport) double materialIncreaseFactor = parameters->materialIncreaseFactor(m_iLayer); - //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/Gaudi::Units::cm3; //m_supportMaterial = materials->getMaterial(parameters->supportCylMaterial(m_iLayer), cf_density); m_supportMaterial = materials->getMaterialScaled(parameters->supportCylMaterial(m_iLayer), materialIncreaseFactor); @@ -93,7 +91,7 @@ const GeoLogVol* SCT_Layer::preBuild(){ //Create the logical volume: a sphape + material std::string layerNumStr = intToString(m_iLayer); //Calculations to make the ski(s) - double divisionAngle = 360*GeoModelKernelUnits::degree/m_skisPerLayer; + double divisionAngle = 360*Gaudi::Units::degree/m_skisPerLayer; m_skiPhiStart = 0.5*divisionAngle; //Make the ski: this is made from modules m_ski = new SCT_Ski("Ski"+layerNumStr, m_modulesPerSki, m_iLayer, @@ -134,7 +132,7 @@ GeoVPhysVol* SCT_Layer::build(SCT_Identifier id) const{ SCT_MaterialManager * materials = geometryManager()->materialManager(); //We make this a fullPhysVol for alignment code. GeoFullPhysVol* layer = new GeoFullPhysVol(m_logVolume); - double divisionAngle = 360*GeoModelKernelUnits::degree/m_skisPerLayer; + double divisionAngle = 360*Gaudi::Units::degree/m_skisPerLayer; //Make envelope for active layer const GeoTube* activeLayerEnvelope = new GeoTube(m_activeInnerRadius, m_activeOuterRadius, 0.5*m_cylLength); @@ -196,9 +194,9 @@ void SCT_Layer::activeEnvelopeExtent(double & rmin, double & rmax){ double thickness = 0.5*m_ski->thickness(); double width = 0.5*m_ski->width(); double tilt = std::abs(m_tilt); - double width_rot = width * cos(tilt/GeoModelKernelUnits::radian) - thickness * sin(tilt/GeoModelKernelUnits::radian); + double width_rot = width * cos(tilt/Gaudi::Units::radian) - thickness * sin(tilt/Gaudi::Units::radian); - double thickness_rot = width * sin(tilt/GeoModelKernelUnits::radian) + thickness * cos(tilt/GeoModelKernelUnits::radian); + double thickness_rot = width * sin(tilt/Gaudi::Units::radian) + thickness * cos(tilt/Gaudi::Units::radian); rmax = sqrt(sqr(m_radius + thickness_rot) + sqr(width_rot)); rmin = sqrt(sqr(m_radius - thickness_rot) + sqr(width_rot)); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx index ded6eb732035..a295ec2a2160 100755 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx @@ -30,16 +30,6 @@ SCT_MaterialManager::SCT_MaterialManager(const SCT_DataBase * sctdb, const SCT_G void SCT_MaterialManager::loadMaterials() { - //const GeoElement *copper = getElement("Copper"); - - //const GeoMaterial *kapton = getMaterial("std::Kapton"); // 30th Aug 2005 D.Naito added. - - // CuKapton for Low Mass Tapes - //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); - //matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); - //matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); - //addMaterial(matCuKapton); - } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx index e08c43799a20..4b98d6e0ba45 100755 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx @@ -24,11 +24,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoShapeSubtraction.h" - -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <cmath> @@ -83,13 +80,13 @@ const GeoLogVol* SCT_Module::preBuild(){ // Sensor only if placing sensors directly on stave m_width = m_innerSide->width(); m_length = m_innerSide->length(); - m_thickness = m_innerSide->thickness() + 0.01*GeoModelKernelUnits::mm;// Not really necessary but doesn't hurt + m_thickness = m_innerSide->thickness() + 0.01*Gaudi::Units::mm;// Not really necessary but doesn't hurt } else if(m_doubleSided){ sideWidth = std::max(m_innerSide->width(), m_outerSide->width()); sideLength = std::max(m_innerSide->length(), m_outerSide->length()); - m_width = std::max(sideWidth*cos(half_stereo/GeoModelKernelUnits::radian) + sideLength*sin(half_stereo/GeoModelKernelUnits::radian), + m_width = std::max(sideWidth*cos(half_stereo/Gaudi::Units::radian) + sideLength*sin(half_stereo/Gaudi::Units::radian), m_baseBoard->width()); - m_length = std::max(sideWidth*sin(half_stereo/GeoModelKernelUnits::radian) + sideLength*cos(half_stereo/GeoModelKernelUnits::radian), + m_length = std::max(sideWidth*sin(half_stereo/Gaudi::Units::radian) + sideLength*cos(half_stereo/Gaudi::Units::radian), m_baseBoard->length()); double interSidesGap = std::max(m_baseBoard->thickness(), m_interSidesGap); m_thickness = m_innerSide->thickness() + m_outerSide->thickness() + interSidesGap + 0.01;//0.01mm safety necessary @@ -127,7 +124,7 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ GeoTrf::Transform3D outerSidePos(GeoTrf::Transform3D::Identity()); if (m_doubleSided){ //inner side position (shift this side towards the intreaction point, ie X negative) - GeoTrf::Transform3D inner_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D inner_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*Gaudi::Units::deg); double interSidesGap = std::max(m_baseBoard->thickness(), m_interSidesGap); double Xpos = -0.5*(interSidesGap + m_innerSide->thickness()); //std::cerr<<"inner Xpos "<<Xpos<<" thickness "<<m_innerSide->thickness()<<std::endl; @@ -158,7 +155,7 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ outerSidePos = GeoTrf::Transform3D(outer_Xpos*outer_Rot); } else { //inner side position (shift this side towards the intreaction point, ie X negative) - GeoTrf::RotateZ3D inner_Rot(180*GeoModelKernelUnits::deg); + GeoTrf::RotateZ3D inner_Rot(180*Gaudi::Units::deg); double Xpos = -0.5*m_baseBoard->thickness(); //protection if(fabs(Xpos)+0.5*m_innerSide->thickness() > 0.5*m_thickness){ diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx index eeeec98686f7..9af70b5fd442 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx @@ -21,9 +21,7 @@ #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/SiCommonItems.h" - - -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" using namespace InDetDD; @@ -78,7 +76,7 @@ SCT_Sensor::preBuild() // Build the subsensor logical volume (same for all segments). // We reduce the size by a small amount to avoid touching volumes. - double epsilon = 1e-7*GeoModelKernelUnits::mm; + double epsilon = 1e-7*Gaudi::Units::mm; const GeoBox * subSensorShape = new GeoBox(0.5*m_thickness-epsilon, 0.5*m_width-epsilon, 0.5*m_subSensorLength-epsilon); m_subSensorLog = new GeoLogVol(getName(), subSensorShape, m_material); m_subSensorLog->ref(); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx index d814453a02f2..241fc567a339 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx @@ -24,10 +24,8 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoDefinitions.h" - - +#include "GaudiKernel/SystemOfUnits.h" #include <sstream> #include <cmath> @@ -219,7 +217,7 @@ SCT_Ski::placeModule(GeoPhysVol * ski, SCT_Identifier id, int iModule, int side, } GeoTrf::Transform3D rot = GeoTrf::RotateX3D(stereoAngle); //the module is rotated, around X axis, one way or the other (u or v) - if (flip) rot = rot * GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + if (flip) rot = rot * GeoTrf::RotateZ3D(180*Gaudi::Units::deg); GeoTrf::Translation3D pos(xModulePos, 0.0, zModulePos); GeoTrf::Transform3D modulePos = GeoTrf::Transform3D(pos*rot); -- GitLab From 34c75b1ab32787967307b5295d290a2689dd6afb Mon Sep 17 00:00:00 2001 From: Susumu Oda <Susumu.Oda@cern.ch> Date: Wed, 23 Jan 2019 09:14:10 +0100 Subject: [PATCH 056/192] Make SCT_DetectorElementCondAlg reentrant --- .../src/SCT_DetectorElementCondAlg.cxx | 8 ++++---- .../src/SCT_DetectorElementCondAlg.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.cxx index 50341442031a..0b7b74c562cd 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.cxx @@ -12,7 +12,7 @@ #include <map> SCT_DetectorElementCondAlg::SCT_DetectorElementCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_readKey{"SCTAlignmentStore", "SCTAlignmentStore"} , m_condSvc{"CondSvc", name} , m_detManager{nullptr} @@ -39,12 +39,12 @@ StatusCode SCT_DetectorElementCondAlg::initialize() return StatusCode::SUCCESS; } -StatusCode SCT_DetectorElementCondAlg::execute() +StatusCode SCT_DetectorElementCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // ____________ Construct Write Cond Handle and check its validity ____________ - SG::WriteCondHandle<InDetDD::SiDetectorElementCollection> writeHandle{m_writeKey}; + SG::WriteCondHandle<InDetDD::SiDetectorElementCollection> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { @@ -65,7 +65,7 @@ StatusCode SCT_DetectorElementCondAlg::execute() EventIDRange rangeW; // ____________ Get Read Cond Object ____________ - SG::ReadCondHandle<GeoAlignmentStore> readHandle{m_readKey}; + SG::ReadCondHandle<GeoAlignmentStore> readHandle{m_readKey, ctx}; const GeoAlignmentStore* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object of " << m_readKey.key()); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h index 1cae060980f5..a24a5f1db327 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h @@ -5,7 +5,7 @@ #ifndef SCT_CONDITIONSALGORITHMS_SCT_DETECTORELEMENTCONDALG_H #define SCT_CONDITIONSALGORITHMS_SCT_DETECTORELEMENTCONDALG_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelUtilities/GeoAlignmentStore.h" @@ -19,14 +19,14 @@ namespace InDetDD { class SCT_DetectorManager; } -class SCT_DetectorElementCondAlg : public AthAlgorithm +class SCT_DetectorElementCondAlg : public AthReentrantAlgorithm { public: SCT_DetectorElementCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_DetectorElementCondAlg() override = default; virtual StatusCode initialize() override; - virtual StatusCode execute() override; + virtual StatusCode execute(const EventContext& ctx) const override; virtual StatusCode finalize() override; private: -- GitLab From 933ba302823d54a0b25fd6c72446261e41e00391 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 23 Jan 2019 11:06:06 +0100 Subject: [PATCH 057/192] Monitored: Explicit fill will disable automatic filling Calling `Monitored::Group::fill()` will now disable the automatic filling to avoid double filling when the group goes out of scope. Added a test-case in the unit tests and updated documentation. --- .../AthenaMonitoring/MonitoredGroup.h | 33 +++++++++++-------- Control/AthenaMonitoring/doc/Monitored_page.h | 2 +- .../test/GenericMonFilling_test.cxx | 22 ++++++++++--- 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/MonitoredGroup.h b/Control/AthenaMonitoring/AthenaMonitoring/MonitoredGroup.h index 88844d2caef6..0ecb084d3d77 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/MonitoredGroup.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/MonitoredGroup.h @@ -58,29 +58,36 @@ namespace Monitored { } /** - * @brief explicitely fill the monitoring output + * @brief Explicitly fill the monitoring histograms and disable autoFill + * + * This will fill the monitoring histograms and also call setAutoFill(false) + * in order to disable the automatic filling when the Monitored::Group goes + * out of scope. A typical use-pattern is in tight loops in order not to + * re-create the Monitored::Group object many times: + * + * \code + * auto pt = Monitored::Scalar("pt"); + * auto mon = Monitored::Group(m_monTool, pt); + * for (...) { + * pt = ...; // assign pt + * mon.fill(); // fill pt histogram + * } + * \endcode + * **/ virtual void fill() { + setAutoFill(false); for (auto filler : m_histogramsFillers) { filler->fill(); } } + /** * @brief enables/disables filling when Monitored::Group leaves the scope * * By default Monitored::Group will perform a one time fill each time it goes - * out of scope. In tight loops one may want to re-use the same Monitored::Group - * and instead trigger the filling manually: - * - * \code - * auto pt = Monitored::Scalar("pt"); - * auto mon = Monitored::Group(m_monTool, pt); - * mon.setAutoFill(false); - * for (...) { - * // fill pt - * mon.fill(); - * } - * \endcode + * out of scope. This feature can be disabled by calling setAutoFill(false). + * The same is achieved by calling fill() manually. **/ void setAutoFill(bool isEnabled) { m_autoFill = isEnabled; } diff --git a/Control/AthenaMonitoring/doc/Monitored_page.h b/Control/AthenaMonitoring/doc/Monitored_page.h index d72db19fca17..e2f86319ce3e 100644 --- a/Control/AthenaMonitoring/doc/Monitored_page.h +++ b/Control/AthenaMonitoring/doc/Monitored_page.h @@ -67,7 +67,7 @@ ## Advanced usage ## ### Filling in tight loops ### - @copydetails Monitored::impl::Group::setAutoFill() + @copydetails Monitored::impl::Group::fill() ### Monitoring of collections (of objects) ### Existing iterable collections can be monitored directly without the need to create temporaries. diff --git a/Control/AthenaMonitoring/test/GenericMonFilling_test.cxx b/Control/AthenaMonitoring/test/GenericMonFilling_test.cxx index d2c4adfd6f13..1d49367f1061 100644 --- a/Control/AthenaMonitoring/test/GenericMonFilling_test.cxx +++ b/Control/AthenaMonitoring/test/GenericMonFilling_test.cxx @@ -168,6 +168,8 @@ bool fillExplcitelyWorked( ToolHandle<GenericMonitoringTool>& monTool, ITHistSvc resetHists( histSvc ); auto roiPhi = Monitored::Scalar( "Phi", -99.0 ); auto roiEta = Monitored::Scalar( "Eta", -99.0 ); + + // Check disabling of filling { auto monitorIt = Monitored::Group( monTool, roiEta, roiPhi ); monitorIt.setAutoFill( false ); @@ -178,15 +180,25 @@ bool fillExplcitelyWorked( ToolHandle<GenericMonitoringTool>& monTool, ITHistSvc VALUE( getHist( histSvc, "/EXPERT/TestGroup/Eta" )->GetEntries() ) EXPECTED( 0 ); // auto filling was disabled so no entries VALUE( getHist( histSvc, "/EXPERT/TestGroup/Phi" )->GetEntries() ) EXPECTED( 0 ); // auto filling was disabled so no entries - auto monitorIt = Monitored::Group( monTool, roiEta, roiPhi ); - monitorIt.setAutoFill( false ); - for ( size_t i = 0; i < 3; ++i ) { - monitorIt.fill(); + // Check explicit fill in loops + { + auto monitorIt = Monitored::Group( monTool, roiEta, roiPhi ); + for ( size_t i = 0; i < 3; ++i ) { + monitorIt.fill(); // this will fill and disable autoFill + } } VALUE( getHist( histSvc, "/EXPERT/TestGroup/Eta_vs_Phi" )->GetEntries() ) EXPECTED( 3 ); VALUE( getHist( histSvc, "/EXPERT/TestGroup/Eta" )->GetEntries() ) EXPECTED( 3 ); VALUE( getHist( histSvc, "/EXPERT/TestGroup/Phi" )->GetEntries() ) EXPECTED( 3 ); - + + // Check explicit one-time fill via temporary Group instance + { + Monitored::Group( monTool, roiEta, roiPhi ).fill(); + } + VALUE( getHist( histSvc, "/EXPERT/TestGroup/Eta_vs_Phi" )->GetEntries() ) EXPECTED( 4 ); + VALUE( getHist( histSvc, "/EXPERT/TestGroup/Eta" )->GetEntries() ) EXPECTED( 4 ); + VALUE( getHist( histSvc, "/EXPERT/TestGroup/Phi" )->GetEntries() ) EXPECTED( 4 ); + return true; } -- GitLab From 1ceb6ded5f14972469367b9f3b97be387c6d8c6b Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Thu, 10 Jan 2019 14:54:41 +0100 Subject: [PATCH 058/192] Switch BCM_DigitizationTool to use IAthRNGSvc --- .../python/BCM_DigitizationConfig.py | 3 -- .../src/BCM_DigitizationTool.cxx | 29 +++++++++---------- .../src/BCM_DigitizationTool.h | 8 ++--- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfig.py b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfig.py index 240096c81080..426a37ff5cf9 100644 --- a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfig.py +++ b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfig.py @@ -29,9 +29,6 @@ def BCM_DigitizationTool(name="BCM_DigitizationTool",**kwargs): kwargs.setdefault("MIPDeposit", 0.33) # BCM with diamond #kwargs.setdefault("MIPDeposit", 0.25) # BCM with graphite - kwargs.setdefault("RndmSvc", digitizationFlags.rndmSvc() ) - digitizationFlags.rndmSeedList.addSeed("BCM_Digitization", 49261510, 105132394) - if digitizationFlags.doXingByXingPileUp(): kwargs.setdefault("FirstXing", BCM_FirstXing() ) kwargs.setdefault("LastXing", BCM_LastXing() ) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx index 72219086b3cf..7a3b6daec228 100644 --- a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx @@ -5,8 +5,12 @@ #include "BCM_DigitizationTool.h" #include "AthenaKernel/errorcheck.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "AthenaKernel/RNGWrapper.h" + +// CLHEP includes +#include "CLHEP/Random/RandomEngine.h" #include "CLHEP/Random/RandGaussZiggurat.h" + #include "GeneratorObjects/HepMcParticleLink.h" #include "InDetBCM_RawData/BCM_RawData.h" #include "InDetBCM_RawData/BCM_RDO_Collection.h" @@ -23,19 +27,15 @@ //---------------------------------------------------------------------- BCM_DigitizationTool::BCM_DigitizationTool(const std::string &type, const std::string &name, const IInterface *parent) : PileUpToolBase(type,name,parent), - m_rndmEngine(NULL), m_mipDeposit(0.0f), m_effPrmDistance(0.0f), m_effPrmSharpness(0.0f), m_timeDelay(0.0f), m_rdoContainer(NULL), m_simDataCollMap(NULL), - m_rndmEngineName("BCM_Digitization"), - m_mergeSvc(NULL), //("PileUpMergeSvc",name), - m_atRndmGenSvc("AtRndmGenSvc",name) + m_mergeSvc(NULL) //("PileUpMergeSvc",name) { //declareProperty("PileupMergeSvc", m_mergeSvc, "Pileup merging service"); - declareProperty("RndmSvc", m_atRndmGenSvc, "Random number service used in BCM digitization"); declareProperty("HitCollName", m_hitCollName="BCMHits", "Input simulation hits collection name"); declareProperty("ModNoise", m_modNoise, "RMS noise averaged over modules"); declareProperty("ModSignal", m_modSignal, "Average MIP signal in modules"); @@ -54,12 +54,7 @@ StatusCode BCM_DigitizationTool::initialize() ATH_MSG_VERBOSE ( "initialize()"); // get random service - CHECK(m_atRndmGenSvc.retrieve()); - m_rndmEngine = m_atRndmGenSvc->GetEngine(m_rndmEngineName) ; - if (m_rndmEngine==0) { - ATH_MSG_ERROR ( "Could not find RndmEngine : " << m_rndmEngineName ); - return StatusCode::FAILURE ; - } + ATH_CHECK(m_rndmGenSvc.retrieve()); return StatusCode::SUCCESS; } @@ -122,11 +117,15 @@ void BCM_DigitizationTool::processSiHit(const SiHit ¤tHit, double eventTim //---------------------------------------------------------------------- void BCM_DigitizationTool::createRDOsAndSDOs() { + // Set the RNG to use for this event. + ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this); + rngWrapper->setSeed( name(), Gaudi::Hive::currentContext() ); + // Digitize hit info and create RDO for each module for (int iMod=0; iMod<8; ++iMod) { if (m_depositVect[iMod].size()) m_simDataCollMap->insert(std::make_pair(Identifier(iMod), InDetSimData(m_depositVect[iMod]))); std::vector<float> analog = createAnalog(iMod,m_enerVect[iMod],m_timeVect[iMod]); - addNoise(iMod,analog); + addNoise(iMod,analog, *rngWrapper); for (int iGain=0; iGain<2; ++iGain) { std::bitset<64> digital = applyThreshold(iGain*8+iMod,analog); int p1x,p1w,p2x,p2w; @@ -300,9 +299,9 @@ std::vector<float> BCM_DigitizationTool::createAnalog(int iMod, std::vector<floa //---------------------------------------------------------------------- // AddNoise method: //---------------------------------------------------------------------- -void BCM_DigitizationTool::addNoise(int iMod, std::vector<float> &analog) +void BCM_DigitizationTool::addNoise(int iMod, std::vector<float> &analog, CLHEP::HepRandomEngine* randomEngine) { - for (unsigned int iBin=0; iBin<analog.size(); ++iBin) analog[iBin]+=CLHEP::RandGaussZiggurat::shoot(m_rndmEngine,0.,m_modNoise[iMod]); + for (unsigned int iBin=0; iBin<analog.size(); ++iBin) analog[iBin]+=CLHEP::RandGaussZiggurat::shoot(randomEngine,0.,m_modNoise[iMod]); } //---------------------------------------------------------------------- diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h index 009159db1cfb..865eca3c6602 100644 --- a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h +++ b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h @@ -6,7 +6,7 @@ #define BCM_DIGITIZATION_BCM_DIGITIZATIONTOOL_H #include "PileUpTools/PileUpToolBase.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "AthenaKernel/IAthRNGSvc.h" #include "GaudiKernel/ServiceHandle.h" @@ -62,7 +62,7 @@ class BCM_DigitizationTool : public PileUpToolBase { std::vector<float> createAnalog(int mod, std::vector<float> enerVect, std::vector<float> timeVect); /** Add noise to analog waveform */ - void addNoise(int mod, std::vector<float> &analog); + void addNoise(int mod, std::vector<float> &analog, CLHEP::HepRandomEngine *randomEngine); /** Do ToT digitization */ std::bitset<64> applyThreshold(int chan, std::vector<float> analog); @@ -76,7 +76,6 @@ class BCM_DigitizationTool : public PileUpToolBase { /** Create raw data object and put it in the container */ void fillRDO(unsigned int chan, int p1x, int p1w, int p2x, int p2w); - CLHEP::HepRandomEngine *m_rndmEngine; //!< Random number engine used // Digitization parameters std::string m_hitCollName; //!< Input simulation hit collection name std::vector<float> m_modNoise; //!< RMS Gaussian noise @@ -91,9 +90,8 @@ class BCM_DigitizationTool : public PileUpToolBase { BCM_RDO_Container* m_rdoContainer; //!< Output RDO container InDetSimDataCollection* m_simDataCollMap; //!< Output SDO map - std::string m_rndmEngineName; //!< Name of random engine PileUpMergeSvc* m_mergeSvc; //!< Handle for pileup merging service - ServiceHandle<IAtRndmGenSvc> m_atRndmGenSvc; //!< Handle for random number service + ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "RndmSvc", "AthRNGSvc", ""}; //!< Random number service // Vectors to store G4 hit information std::vector<float> m_enerVect[8]; //!< G4 hit energies, weighted -- GitLab From 0b6d910f1c79d9e65815f9bd9564113f5190b6a2 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 23 Jan 2019 12:02:19 +0000 Subject: [PATCH 059/192] Remove obsolete include of MonitoredScope.h --- .../TrigMissingETHypo/src/TrigMissingETHypoAlgMT.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.cxx index e79752ca8af5..a95be0d0bc0f 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/src/TrigMissingETHypoAlgMT.cxx @@ -6,7 +6,6 @@ #include "GaudiKernel/Property.h" #include "DecisionHandling/HLTIdentifier.h" #include "DecisionHandling/TrigCompositeUtils.h" -#include "AthenaMonitoring/MonitoredScope.h" #include "TrigEFMissingET/EFMissingETAlgMT.h" using namespace TrigCompositeUtils; -- GitLab From 75889c26149944dc1331eeeeed7dae3f424b15b1 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Wed, 23 Jan 2019 13:43:37 +0100 Subject: [PATCH 060/192] Update BCM Digitization ComponentAccumulator test This commit updates the BCM_Digitization unit test to work with the thread-safe random number service. The test script has also been moved to a separate test directory. --- .../BCM_Digitization/CMakeLists.txt | 4 ++-- .../python/BCM_DigitizationConfigNew.py | 2 +- .../BCM_DigitizationConfigNew_test.py | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) rename InnerDetector/InDetDigitization/BCM_Digitization/{python => test}/BCM_DigitizationConfigNew_test.py (67%) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/CMakeLists.txt b/InnerDetector/InDetDigitization/BCM_Digitization/CMakeLists.txt index 62b62dc31802..8c4c6016b578 100644 --- a/InnerDetector/InDetDigitization/BCM_Digitization/CMakeLists.txt +++ b/InnerDetector/InDetDigitization/BCM_Digitization/CMakeLists.txt @@ -29,10 +29,10 @@ atlas_add_component( BCM_Digitization LINK_LIBRARIES ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps AthenaKernel PileUpToolsLib xAODEventInfo GeneratorObjects InDetBCM_RawData InDetSimData InDetSimEvent ) atlas_add_test( BCM_DigitizationConfigNew_test - SCRIPT python/BCM_DigitizationConfigNew_test.py + SCRIPT test/BCM_DigitizationConfigNew_test.py PROPERTIES TIMEOUT 300 ) # Install files from the package: atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/*.py ) +atlas_install_joboptions( share/*.py test/*.py ) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py index 41f343c39fa1..5ebae43ed338 100755 --- a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py +++ b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py @@ -23,7 +23,7 @@ def BCM_DigitizationToolCfg(configFlags, name="BCM_DigitizationTool", **kwargs): Engine = configFlags.Random.Engine acc.merge(RNG(Engine)) # Build the argument dict - kwargs.setdefault("RndmSvc", AthEngines[Engine]) + kwargs.setdefault("RndmSvc", "AthRNGSvc") kwargs.setdefault("HitCollName", "BCMHits") if configFlags.Digitization.DoInnerDetectorNoise: kwargs.setdefault("ModNoise", [90.82] * 8) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew_test.py b/InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py similarity index 67% rename from InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew_test.py rename to InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py index 77bfe9c49316..17b3469e2e68 100755 --- a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew_test.py +++ b/InnerDetector/InDetDigitization/BCM_Digitization/test/BCM_DigitizationConfigNew_test.py @@ -11,28 +11,30 @@ from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaConfiguration.MainServicesConfig import MainServicesSerialCfg from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg -from BCM_DigitizationConfigFlags import createBCMCfgFlags -from BCM_DigitizationConfigNew import BCM_DigitizationCfg +from BCM_Digitization.BCM_DigitizationConfigFlags import createBCMCfgFlags +from BCM_Digitization.BCM_DigitizationConfigNew import BCM_DigitizationCfg +from TrigUpgradeTest.InDetConfig import InDetGMConfig # FIXME This module would ideally be located somewhere else # Set up logging and new style config log.setLevel(DEBUG) Configurable.configurableRun3Behavior = True # Provide input dataDir = "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art" inputDir = os.environ.get("ATLAS_REFERENCE_DATA", dataDir) -fileDir = "/SimCoreTests/e_E50_eta34_49.EVNT.pool.root" +fileDir = "/Tier0ChainTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s3091/HITS.10504490._000425.pool.root.1" ConfigFlags.Input.Files = [inputDir + fileDir] # Specify output -ConfigFlags.Output.HITFileName = "myHITS.pool.root" +ConfigFlags.Output.RDOFileName = "myRDO.pool.root" ConfigFlags.lock() # Construct ComponentAccumulator cfg = MainServicesSerialCfg() cfg.merge(PoolReadCfg(ConfigFlags)) +cfg.merge(InDetGMConfig(ConfigFlags)) # FIXME This sets up the whole ID geometry would be nicer just to set up min required for BCM # Use BCM tools BCMflags = createBCMCfgFlags() acc = BCM_DigitizationCfg(BCMflags) cfg.merge(acc) # Add configuration to write HITS pool file -outConfig = OutputStreamCfg(ConfigFlags, "HITS", +outConfig = OutputStreamCfg(ConfigFlags, "RDO", ItemList=["InDetSimDataCollection#*", "BCM_RDO_Container#*"]) cfg.merge(outConfig) cfg.getService("StoreGateSvc").Dump=True -- GitLab From 37258f9300014f8f2549ce03f8e4b651a1607ad1 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Wed, 23 Jan 2019 13:47:35 +0100 Subject: [PATCH 061/192] Minor optimization to the BCM_DigitizationTool::processSiHit method Avoid call to the `InDetSimData::Deposit` copy-constructor by using `emplace_back`. --- .../BCM_Digitization/src/BCM_DigitizationTool.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx index 7a3b6daec228..d484569bc47a 100644 --- a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.cxx @@ -96,19 +96,19 @@ StatusCode BCM_DigitizationTool::createOutputContainers() //---------------------------------------------------------------------- void BCM_DigitizationTool::processSiHit(const SiHit ¤tHit, double eventTime, unsigned int evtIndex) { - int moduleNo = currentHit.getLayerDisk(); - float enerDep = computeEnergy(currentHit.energyLoss(), currentHit.localStartPosition(), currentHit.localEndPosition()); - float hitTime = currentHit.meanTime() + eventTime + m_timeDelay; + const int moduleNo = currentHit.getLayerDisk(); + const float enerDep = computeEnergy(currentHit.energyLoss(), currentHit.localStartPosition(), currentHit.localEndPosition()); + const float hitTime = currentHit.meanTime() + eventTime + m_timeDelay; // Fill vectors with hit info m_enerVect[moduleNo].push_back(enerDep); m_timeVect[moduleNo].push_back(hitTime); // Create new deposit and add to vector - InDetSimData::Deposit deposit(HepMcParticleLink(currentHit.trackNumber(), evtIndex),currentHit.energyLoss()); - int barcode = deposit.first.barcode(); + HepMcParticleLink particleLink(currentHit.trackNumber(), evtIndex); + const int barcode = particleLink.barcode(); if (barcode == 0 || barcode == 10001){ return; } - m_depositVect[moduleNo].push_back(deposit); + m_depositVect[moduleNo].emplace_back(particleLink,currentHit.energyLoss()); return; } -- GitLab From 92b0db4036cec783e16bc024031fdd3797655835 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Wed, 23 Jan 2019 14:53:28 +0100 Subject: [PATCH 062/192] added functions to configure tools from chain dicts - for menu integration --- .../python/TrigL2CaloHypoTool.py | 23 ++------------- .../python/TrigL2ElectronHypoTool.py | 28 +++++++++++++------ .../python/TrigL2PhotonHypoTool.py | 26 +++++++++++------ 3 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py index 88793c56174d..1bc6848ebe03 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py @@ -1,13 +1,7 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -import re -_pattern = "(?P<mult>\d*)(e(?P<threshold1>\d+))(e(?P<threshold2>\d+))*" -_cpattern = re.compile( _pattern ) +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaCommon.SystemOfUnits import GeV - - - def _IncTool(name, threshold, sel): from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2CaloHypoToolInc @@ -119,19 +113,6 @@ def _MultTool(name): return TrigL2CaloHypoToolMult( name ) -def decodeThreshold( threshold ): - """ decodes the thresholds of the form e10, 2e10, e10e15, ... """ - print "TrigL2CaloHypoToolFromName: decoding threshold ", threshold - if threshold[0].isdigit(): # is if the from NeX, return as list [X,X,X...N times...] - assert threshold[1] == 'e', "Two digit multiplicity not supported" - return [ threshold[2:] ] * int( threshold[0] ) - - if threshold.count('e') > 1: # is of the form eXeYeZ, return as [X, Y, Z] - return threshold.strip('e').split('e') - - # inclusive, return as 1 element list - return [ threshold[1:] ] - def TrigL2CaloHypoToolFromDict( d ): """ Use menu decoded chain dictionary to configure the tool """ @@ -165,7 +146,7 @@ def TrigL2CaloHypoToolFromName( name, conf ): """ To be phased out """ from AthenaCommon.Constants import DEBUG """ set the name of the HypoTool (name=chain) and figure out the threshold and selection from conf """ - #print "Configuring ", name + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName decoder = DictFromChainName() decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py index a6e7fb677baa..6831db6944ce 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py @@ -1,14 +1,11 @@ +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -def TrigL2ElectronHypoToolFromName( name, conf ): - """ provides configuration of the hypo tool giben the chain name - The argument will be replaced by "parsed" chain dict. For now it only serves simplest chain HLT_eXYZ. - """ - bname = conf.split('_') - - threshold = bname[1] - from TrigEgammaHypo.TrigL2CaloHypoTool import decodeThreshold - thresholds = decodeThreshold( threshold ) +def TrigL2ElectronHypoToolFromDict( chainDict ): + """ Use menu decoded chain dictionary to configure the tool """ + thresholds = sum([ [cpart['threshold']]*int(cpart['multiplicity']) for cpart in chainDict['chainParts']], []) + name = chainDict['chainName'] + from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2ElectronHypoTool tool = TrigL2ElectronHypoTool(name) tool.RespectPreviousDecision = True @@ -58,6 +55,19 @@ def TrigL2ElectronHypoToolFromName( name, conf ): return tool +def TrigL2ElectronHypoToolFromName( name, conf ): + """ provides configuration of the hypo tool giben the chain name + The argument will be replaced by "parsed" chain dict. For now it only serves simplest chain HLT_eXYZ. + """ + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name # override + + return TrigL2ElectronHypoToolFromDict( decodedDict ) + + + if __name__ == "__main__": tool = TrigL2ElectronHypoToolFromName("HLT_e3_etcut", "HLT_e3_etcut") assert tool, "Not configured simple tool" diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py index d27183989671..41045436c2cb 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py @@ -1,15 +1,12 @@ -def TrigL2PhotonHypoToolFromName( name, conf ): - """ provides configuration of the hypo tool giben the chain name - The argument will be replaced by "parsed" chain dict. For now it only serves simplest chain HLT_eXYZ. - """ - bname = conf.split('_') +def TrigL2PhotonHypoToolFromDict( chainDict ): + """ Use menu decoded chain dictionary to configure the tool """ + thresholds = sum([ [cpart['threshold']]*int(cpart['multiplicity']) for cpart in chainDict['chainParts']], []) - threshold = bname[1] - from TrigEgammaHypo.TrigL2CaloHypoTool import decodeThreshold - thresholds = decodeThreshold( threshold ) + name = chainDict['chainName'] + from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2PhotonHypoTool tool = TrigL2PhotonHypoTool(name) tool.MonTool = "" @@ -47,6 +44,19 @@ def TrigL2PhotonHypoToolFromName( name, conf ): return tool +def TrigL2PhotonHypoToolFromName( name, conf ): + """ provides configuration of the hypo tool giben the chain name + The argument will be replaced by "parsed" chain dict. For now it only serves simplest chain HLT_eXYZ. + """ + + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name # override + + return TrigL2PhotonHypoToolFromDict( decodedDict ) + + if __name__ == "__main__": tool = TrigL2PhotonHypoToolFromName("HLT_g5_etcut", "HLT_g5_etcut") assert tool, "Not configured simple tool" -- GitLab From a5782b6b41ae834fe08b8b79dc8047e4605eef79 Mon Sep 17 00:00:00 2001 From: Marcin Nowak <Marcin.Nowak@cern.ch> Date: Wed, 23 Jan 2019 15:45:41 +0100 Subject: [PATCH 063/192] Disambiguate between EventSelector::Context and EventContext --- .../AthenaServices/src/AthenaEventLoopMgr.cxx | 32 +++++++++---------- .../AthenaServices/src/AthenaEventLoopMgr.h | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx index 8e1470482a73..a09eef98d060 100644 --- a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx +++ b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx @@ -54,7 +54,7 @@ AthenaEventLoopMgr::AthenaEventLoopMgr(const std::string& nam, : MinimalEventLoopMgr(nam, svcLoc), m_incidentSvc ( "IncidentSvc", nam ), m_eventStore( "StoreGateSvc", nam ), - m_evtSelector(nullptr), m_evtContext(nullptr), + m_evtSelector(nullptr), m_evtSelCtxt(nullptr), m_histoDataMgrSvc( "HistogramDataSvc", nam ), m_histoPersSvc ( "HistogramPersistencySvc", nam ), m_activeStoreSvc ( "ActiveStoreSvc", nam ), @@ -252,7 +252,7 @@ StatusCode AthenaEventLoopMgr::initialize() m_evtSelector = theEvtSel; // reset iterator - if (m_evtSelector->createContext(m_evtContext).isFailure()) { + if (m_evtSelector->createContext(m_evtSelCtxt).isFailure()) { fatal() << "Can not create the event selector Context." << endmsg; return StatusCode::FAILURE; @@ -408,7 +408,7 @@ StatusCode AthenaEventLoopMgr::finalize() m_evtSelector = releaseInterface(m_evtSelector); m_incidentSvc.release().ignore(); - delete m_evtContext; m_evtContext = nullptr; + delete m_evtSelCtxt; m_evtSelCtxt = nullptr; if(m_useTools) { tool_iterator firstTool = m_tools.begin(); @@ -621,7 +621,7 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/) const EventInfo* pEvent(nullptr); std::unique_ptr<EventInfo> pEventPtr; unsigned int conditionsRun = EventIDBase::UNDEFNUM; - if ( m_evtContext ) + if ( m_evtSelCtxt ) { // Deal with the case when an EventSelector is provided // Retrieve the Event object const AthenaAttributeList* pAttrList = eventStore()->tryConstRetrieve<AthenaAttributeList>(); @@ -908,12 +908,12 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt) //----------------------------------------------------------------------- // we need an EventInfo Object to fire the incidents. //----------------------------------------------------------------------- - if ( m_evtContext ) + if ( m_evtSelCtxt ) { // Deal with the case when an EventSelector is provided IOpaqueAddress* addr = nullptr; - sc = m_evtSelector->next(*m_evtContext); + sc = m_evtSelector->next(*m_evtSelCtxt); if ( !sc.isSuccess() ) { @@ -923,7 +923,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt) break; } - if (m_evtSelector->createAddress(*m_evtContext, addr).isFailure()) { + if (m_evtSelector->createAddress(*m_evtSelCtxt, addr).isFailure()) { error() << "Could not create an IOpaqueAddress" << endmsg; break; @@ -992,15 +992,15 @@ StatusCode AthenaEventLoopMgr::seek (int evt) return StatusCode::FAILURE; } - if (!m_evtContext) { - if (m_evtSelector->createContext(m_evtContext).isFailure()) { + if (!m_evtSelCtxt) { + if (m_evtSelector->createContext(m_evtSelCtxt).isFailure()) { fatal() << "Can not create the event selector Context." << endmsg; return StatusCode::FAILURE; } } - StatusCode sc = is->seek (*m_evtContext, evt); + StatusCode sc = is->seek (*m_evtSelCtxt, evt); if (sc.isSuccess()) { m_nevt = evt; } @@ -1031,15 +1031,15 @@ int AthenaEventLoopMgr::size() return -1; } - if (!m_evtContext) { - if (m_evtSelector->createContext(m_evtContext).isFailure()) { + if (!m_evtSelCtxt) { + if (m_evtSelector->createContext(m_evtSelCtxt).isFailure()) { fatal() << "Can not create the event selector Context." << endmsg; return -1; } } - return cs->size (*m_evtContext); + return cs->size (*m_evtSelCtxt); } void AthenaEventLoopMgr::handle(const Incident& inc) @@ -1047,7 +1047,7 @@ void AthenaEventLoopMgr::handle(const Incident& inc) if(inc.type()!="BeforeFork") return; - if(!m_evtContext || !m_firstRun) { + if(!m_evtSelCtxt || !m_firstRun) { warning() << "Skipping BeforeFork handler. Either no event selector is provided or begin run has already passed" << endmsg; } @@ -1061,12 +1061,12 @@ void AthenaEventLoopMgr::handle(const Incident& inc) // Construct EventInfo const EventInfo* pEvent(nullptr); IOpaqueAddress* addr = nullptr; - sc = m_evtSelector->next(*m_evtContext); + sc = m_evtSelector->next(*m_evtSelCtxt); if(!sc.isSuccess()) { info() << "No more events in event selection " << endmsg; return; } - sc = m_evtSelector->createAddress(*m_evtContext, addr); + sc = m_evtSelector->createAddress(*m_evtSelCtxt, addr); if (sc.isFailure()) { error() << "Could not create an IOpaqueAddress" << endmsg; return; diff --git a/Control/AthenaServices/src/AthenaEventLoopMgr.h b/Control/AthenaServices/src/AthenaEventLoopMgr.h index 356b46b5ad4e..015be5173cac 100644 --- a/Control/AthenaServices/src/AthenaEventLoopMgr.h +++ b/Control/AthenaServices/src/AthenaEventLoopMgr.h @@ -80,8 +80,8 @@ protected: /// Reference to the Event Selector IEvtSelector* m_evtSelector; - /// Gaudi event selector Context (may be used as a cursor by the evt selector) - EvtContext* m_evtContext; + /// Gaudi EventSelector Context (may be used as a cursor by the evt selector) + IEvtSelector::Context* m_evtSelCtxt; /// @property Event selector Name. If empty string (default) take value from ApplicationMgr StringProperty m_evtsel; -- GitLab From 289e5676ea43bebe0f2e1125c88c2a70627c252f Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Wed, 23 Jan 2019 15:03:25 +0000 Subject: [PATCH 064/192] Remove outdated imports in BCM_DigitizationConfigNew.py. Relocate RandomServices_test.py to the test directory. --- Control/RngComps/CMakeLists.txt | 2 +- Control/RngComps/{python => test}/RandomServices_test.py | 2 +- .../BCM_Digitization/python/BCM_DigitizationConfigNew.py | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) rename Control/RngComps/{python => test}/RandomServices_test.py (92%) diff --git a/Control/RngComps/CMakeLists.txt b/Control/RngComps/CMakeLists.txt index 8100c2c4fc18..51df943724ae 100644 --- a/Control/RngComps/CMakeLists.txt +++ b/Control/RngComps/CMakeLists.txt @@ -70,7 +70,7 @@ atlas_add_test( RNGWrapper_test GaudiKernel AtlasCLHEP_RandomGenerators ) atlas_add_test( RandomServices_test - SCRIPT python/RandomServices_test.py ) + SCRIPT test/RandomServices_test.py ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Control/RngComps/python/RandomServices_test.py b/Control/RngComps/test/RandomServices_test.py similarity index 92% rename from Control/RngComps/python/RandomServices_test.py rename to Control/RngComps/test/RandomServices_test.py index 71d8eb0d4206..085746ca40da 100755 --- a/Control/RngComps/python/RandomServices_test.py +++ b/Control/RngComps/test/RandomServices_test.py @@ -6,7 +6,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaCommon.Logging import log from AthenaCommon.Constants import DEBUG from AthenaCommon.Configurable import Configurable -from RandomServices import dSFMT, Ranlux64, Ranecu, RNG +from RngComps.RandomServices import dSFMT, Ranlux64, Ranecu, RNG # Set up logging and new style config log.setLevel(DEBUG) diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py index 41f343c39fa1..a7855a708877 100755 --- a/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py +++ b/InnerDetector/InDetDigitization/BCM_Digitization/python/BCM_DigitizationConfigNew.py @@ -5,8 +5,6 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaCommon import CfgMgr from RngComps.RandomServices import RNG, AthEngines from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator -from Digitization.DigitizationFlags import digitizationFlags -from OverlayCommonAlgs.OverlayFlags import overlayFlags # The earliest and last bunch crossing times for which interactions will be sent # to the BCM Digitization code. -- GitLab From 37aa860bb42dac7b0f6afebbd02b5f187ec77cb9 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Wed, 23 Jan 2019 09:55:06 -0600 Subject: [PATCH 065/192] resolve issues with offline monitoring MR 1. implement a manual fill wrapper for offline monitoring 2. revert change in GenericMonitoringTool default path to 'EXPERT'. This will be fixed in another MR 3. Update example AthMonitorAlgorithm daughter class for changes to base class --- .../AthenaMonitoring/AthMonitorAlgorithm.h | 42 ++++++++++++++++--- .../ExampleMonitorAlgorithm.h | 5 +-- .../python/GenericMonitoringTool.py | 2 +- .../src/AthMonitorAlgorithm.cxx | 15 ++++--- .../src/ExampleMonitorAlgorithm.cxx | 15 ++++--- 5 files changed, 56 insertions(+), 23 deletions(-) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h index cdb1d6b12cdf..7154ccad7070 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -23,6 +23,7 @@ #include "AthenaMonitoring/IDQFilterTool.h" #include "AthenaMonitoring/IMonitorToolBase.h" #include "AthenaMonitoring/ITriggerTranslatorTool.h" +#include "AthenaMonitoring/Monitored.h" #include "LumiBlockComps/ILuminosityTool.h" #include "TrigDecisionInterface/ITrigDecisionTool.h" @@ -34,7 +35,6 @@ class AthMonitorAlgorithm : public AthReentrantAlgorithm { public: - /** * Constructor */ @@ -76,6 +76,38 @@ public: virtual StatusCode fillHistograms(const EventContext& ctx) const = 0; + /** + * Adds variables from an event to a group by name. + * + * At the end of the fillHistograms routine, one should save the monitored variables + * to the group. This function wraps the process of getting the desired group by a + * call to AthMonitorAlgorithm::getGroup() and a call to Monitored::Group::fill(), + * which also disables the auto-fill feature to avoid double-filling. Note, users + * should avoid using this specific function name in daughter classes. + * + * @param groupName The string name of the GenericMonitoringTool + * @param variables Variables desired to be saved. + * @return StatusCode + */ + template <typename... T> + void fill( const std::string& groupName, T&&... variables ) const { + Monitored::Group(getGroup(groupName),std::forward<T>(variables)...).fill(); + } + + + /** + * Adds variables from an event to a group by object reference. + * + * @param groupHandle A reference of the GenericMonitoringTool to which add variables. + * @param variables Variables desired to be saved + * @return StatusCode + */ + template <typename... T> + void fill( const ToolHandle<GenericMonitoringTool>& groupHandle, T&&... variables ) const { + Monitored::Group(groupHandle,std::forward<T>(variables)...).fill(); + } + + /** * Specifies the processing environment. * @@ -148,14 +180,13 @@ public: * Get a specific monitoring tool from the tool handle array. * * Finds a specific GenericMonitoringTool instance from the list of monitoring - * tools (a ToolHandleArray). Throws a FATAL warning if the object found is a - * null pointer. + * tools (a ToolHandleArray). Throws a FATAL warning if the object found is + * empty. * * @param name string name of the desired tool * @return reference to the desired monitoring tool */ - GenericMonitoringTool& getGroup( const std::string& name ) const; - + ToolHandle<GenericMonitoringTool> getGroup( const std::string& name ) const; /** * Get the trigger decision tool member. @@ -262,7 +293,6 @@ public: protected: // Using the new way to declare JO properties: Gaudi::Property<int> m_myProperty {this,"MyProperty",0}; - ToolHandleArray<GenericMonitoringTool> m_tools {this,"GMTools",{}}; ///< Array of Generic Monitoring Tools ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool {this,"TrigDecisionTool",""}; ///< Tool to tell whether a specific trigger is passed ToolHandle<ITriggerTranslatorTool> m_trigTranslator {this,"TriggerTranslatorTool",""}; ///< Tool to unpack trigger categories into a trigger list diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h index 0d959860d56a..c08f685c9828 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h @@ -6,10 +6,7 @@ #define EXAMPLEMONITORALGORITHM_H #include "AthenaMonitoring/AthMonitorAlgorithm.h" - -#include "AthenaMonitoring/MonitoredScope.h" -#include "AthenaMonitoring/MonitoredScalar.h" -#include "AthenaMonitoring/MonitoredCollection.h" +#include "AthenaMonitoring/Monitored.h" #include "TRandom3.h" diff --git a/Control/AthenaMonitoring/python/GenericMonitoringTool.py b/Control/AthenaMonitoring/python/GenericMonitoringTool.py index 6ee23ef76637..d291ed59def4 100644 --- a/Control/AthenaMonitoring/python/GenericMonitoringTool.py +++ b/Control/AthenaMonitoring/python/GenericMonitoringTool.py @@ -25,7 +25,7 @@ class GenericMonitoringTool(_GenericMonitoringTool): # @param title Histogram title and optional axis title (same syntax as in TH constructor) # @param opt Histrogram options (see GenericMonitoringTool) # @param labels List of bin labels (for a 2D histogram, sequential list of x- and y-axis labels) -def defineHistogram(varname, type='TH1F', path='DEFAULT', +def defineHistogram(varname, type='TH1F', path='EXPERT', title=None, xbins=100, xmin=0, xmax=1, ybins=None, ymin=None, ymax=None, zmin=None, zmax=None, opt='', labels=None): diff --git a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx index 044cf89f2205..bcfda26e746e 100644 --- a/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/AthMonitorAlgorithm.cxx @@ -93,8 +93,9 @@ StatusCode AthMonitorAlgorithm::execute( const EventContext& ctx ) const { return fillHistograms(ctx); } + SG::ReadHandle<xAOD::EventInfo> AthMonitorAlgorithm::GetEventInfo( const EventContext& ctx ) const { - return SG::ReadHandle<xAOD::EventInfo>(m_EventInfoKey, ctx); + return SG::ReadHandle<xAOD::EventInfo>(m_EventInfoKey, ctx); } @@ -160,16 +161,18 @@ AthMonitorAlgorithm::DataType_t AthMonitorAlgorithm::dataTypeStringToEnum( const } -GenericMonitoringTool& AthMonitorAlgorithm::getGroup( const std::string& name ) const { - // get the pointer to the tool, check that it exists, and return - GenericMonitoringTool* tool = &(*(*m_tools[name])); - if (tool == nullptr) { +ToolHandle<GenericMonitoringTool> AthMonitorAlgorithm::getGroup( const std::string& name ) const { + // get the pointer to the tool, and check that it exists + const ToolHandle<GenericMonitoringTool> toolHandle = *(m_tools[name]); + if ( toolHandle.empty() ) { ATH_MSG_FATAL("The tool "<<name<<" could not be found in the monitoring algorithm's tool array."<<endmsg); } - return *tool; + // return the tool handle + return toolHandle; } + const ToolHandle<Trig::ITrigDecisionTool>& AthMonitorAlgorithm::getTrigDecisionTool() { return m_trigDecTool; } diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index bc0167f758a5..5fd6a5c9e916 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -24,20 +24,23 @@ StatusCode ExampleMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co // Declare the quantities which should be monitored auto lumiPerBCID = MonitoredScalar::declare<float>("lumiPerBCID",0.0); auto lb = MonitoredScalar::declare<int>("lb",0); - auto random = MonitoredScalar::declare<float>("random",0.0); - + auto run = MonitoredScalar::declare<int>("run",0); + auto random = MonitoredScalar::declare<float>("random",0.0); // Set the values of the monitored variables for the event lumiPerBCID = lbAverageInteractionsPerCrossing(); lb = GetEventInfo(ctx)->lumiBlock(); + run = GetEventInfo(ctx)->runNumber(); if (m_doRandom) { TRandom r; random = r.Rndm(); } - // Use the getGroup method to get your instance of the GenericMonitoringTool by name - auto& tool = getGroup("ExampleMonitor"); - // Save. First argument is the tool, all others are the variables to be saved. - Monitored::save(&tool,lumiPerBCID,lb,random); + // Fill. First argument is the tool name, all others are the variables to be saved. + fill("ExampleMonitor",lumiPerBCID,lb,random); + + // Alternative fill method. Get the group yourself, and pass it to the fill function. + auto tool = getGroup("ExampleMonitor"); + fill(tool,run); return StatusCode::SUCCESS; } -- GitLab From 1d90a104d44fa04a8ea70d15372193d6f60a134b Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 23 Jan 2019 17:34:19 +0100 Subject: [PATCH 066/192] Fix copyright line. --- Control/StoreGate/src/VarHandleKey.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/StoreGate/src/VarHandleKey.cxx b/Control/StoreGate/src/VarHandleKey.cxx index 3ff38a2080ac..9eeae80388a5 100644 --- a/Control/StoreGate/src/VarHandleKey.cxx +++ b/Control/StoreGate/src/VarHandleKey.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id$ -- GitLab From b34e98db5ac1b111533c256e58c09f1d47ba8953 Mon Sep 17 00:00:00 2001 From: Charles Burton <cdb97@cornell.edu> Date: Wed, 23 Jan 2019 10:46:33 -0600 Subject: [PATCH 067/192] cosmetic changes 1. update example AthMonitorAlgorithm to use new Monitored interface names 2. refactor fill() function to avoid code duplication --- .../AthenaMonitoring/AthMonitorAlgorithm.h | 16 ++++++++-------- .../python/ExampleMonitorAlgorithm.py | 3 ++- .../src/ExampleMonitorAlgorithm.cxx | 8 ++++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h index 7154ccad7070..c1b3c8ff979a 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/AthMonitorAlgorithm.h @@ -79,24 +79,24 @@ public: /** * Adds variables from an event to a group by name. * - * At the end of the fillHistograms routine, one should save the monitored variables - * to the group. This function wraps the process of getting the desired group by a - * call to AthMonitorAlgorithm::getGroup() and a call to Monitored::Group::fill(), - * which also disables the auto-fill feature to avoid double-filling. Note, users - * should avoid using this specific function name in daughter classes. - * * @param groupName The string name of the GenericMonitoringTool * @param variables Variables desired to be saved. * @return StatusCode */ template <typename... T> void fill( const std::string& groupName, T&&... variables ) const { - Monitored::Group(getGroup(groupName),std::forward<T>(variables)...).fill(); + fill(getGroup(groupName),std::forward<T>(variables)...); } /** - * Adds variables from an event to a group by object reference. + * Adds variables from an event to a group by the group's object reference. + * + * At the end of the fillHistograms routine, one should save the monitored variables + * to the group. This function wraps the process of getting the desired group by a + * call to AthMonitorAlgorithm::getGroup() and a call to Monitored::Group::fill(), + * which also disables the auto-fill feature to avoid double-filling. Note, users + * should avoid using this specific function name in daughter classes. * * @param groupHandle A reference of the GenericMonitoringTool to which add variables. * @param variables Variables desired to be saved diff --git a/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py b/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py index 88b8fffe90ee..0c50180230ce 100644 --- a/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py +++ b/Control/AthenaMonitoring/python/ExampleMonitorAlgorithm.py @@ -87,7 +87,8 @@ def ExampleMonitoringConfig(inputFlags): anotherGroup.defineHistogram('lbWithFilter;lbWithFilter',title='Lumi;lb;Events', path='top',xbins=1000,xmin=-0.5,xmax=999.5) - + anotherGroup.defineHistogram('run;run',title='Run Number;run;Events', + path='top',xbins=1000000,xmin=-0.5,xmax=999999.5) ### STEP 6 ### # Finalize. The return value should be a tuple of the ComponentAccumulator diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index 5fd6a5c9e916..2494e52059bc 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -22,10 +22,10 @@ StatusCode ExampleMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co using namespace Monitored; // Declare the quantities which should be monitored - auto lumiPerBCID = MonitoredScalar::declare<float>("lumiPerBCID",0.0); - auto lb = MonitoredScalar::declare<int>("lb",0); - auto run = MonitoredScalar::declare<int>("run",0); - auto random = MonitoredScalar::declare<float>("random",0.0); + auto lumiPerBCID = Monitored::Scalar<float>("lumiPerBCID",0.0); + auto lb = Monitored::Scalar<int>("lb",0); + auto run = Monitored::Scalar<int>("run",0); + auto random = Monitored::Scalar<float>("random",0.0); // Set the values of the monitored variables for the event lumiPerBCID = lbAverageInteractionsPerCrossing(); lb = GetEventInfo(ctx)->lumiBlock(); -- GitLab From 92c9029ce6b4a00ddcc0002ad48a144165cf2ed2 Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Wed, 23 Jan 2019 17:06:51 +0000 Subject: [PATCH 068/192] Add test directory to python atlas_install_python_modules --- Control/RngComps/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/RngComps/CMakeLists.txt b/Control/RngComps/CMakeLists.txt index 51df943724ae..1775d29dd7af 100644 --- a/Control/RngComps/CMakeLists.txt +++ b/Control/RngComps/CMakeLists.txt @@ -73,5 +73,5 @@ atlas_add_test( RandomServices_test SCRIPT test/RandomServices_test.py ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py test/*.py ) atlas_install_joboptions( share/*.py ) -- GitLab From af6d3e4ec6c7135dbb3d8e2a2fe91f45748ab59a Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Wed, 23 Jan 2019 17:12:58 +0000 Subject: [PATCH 069/192] Correct test directory from python to joboptions --- Control/RngComps/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control/RngComps/CMakeLists.txt b/Control/RngComps/CMakeLists.txt index 1775d29dd7af..44ec2be9e3cd 100644 --- a/Control/RngComps/CMakeLists.txt +++ b/Control/RngComps/CMakeLists.txt @@ -73,5 +73,5 @@ atlas_add_test( RandomServices_test SCRIPT test/RandomServices_test.py ) # Install files from the package: -atlas_install_python_modules( python/*.py test/*.py ) -atlas_install_joboptions( share/*.py ) +atlas_install_python_modules( python/*.py ) +atlas_install_joboptions( share/*.py test/*.py ) -- GitLab From 6483294dfb8f695b09cda713f0d0fc38adc245a2 Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Wed, 23 Jan 2019 18:42:00 +0100 Subject: [PATCH 070/192] Fixed copyright should be first line --- .../TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h index e6da63e47fc1..d164dea9e88c 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h +++ b/Trigger/TrigT1/TrigT1CaloCalibConditions/TrigT1CaloCalibConditions/L1CaloDerivedRunPars.h @@ -1,8 +1,7 @@ -// -*- C++ -*- -#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H /* Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ +#ifndef TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H #define TRIGT1CALOCALIBCONDITIONS_L1CALODERIVEDRUNPARS_H #include <string> -- GitLab From 7b099a9828ffd98538184a13f8cca1713f21b3be Mon Sep 17 00:00:00 2001 From: Dmitry Popov <Dmitry.Popov@cern.ch> Date: Wed, 23 Jan 2019 18:42:42 +0100 Subject: [PATCH 071/192] Updated msg() to ATH_MSG --- Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx index f6c561bb9fe8..204b57c586d8 100755 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/MistimedStreamMon.cxx @@ -77,8 +77,7 @@ MistimedStreamMon::~MistimedStreamMon() StatusCode MistimedStreamMon::initialize() /*---------------------------------------------------------*/ { - msg(MSG::INFO) << "Initializing " << name() << " - package version " - << PACKAGE_VERSION << endmsg; + ATH_MSG_INFO("Initializing " << name() << " - package version " << PACKAGE_VERSION); CHECK(ManagedMonitorToolBase::initialize()); CHECK(m_errorTool.retrieve()); -- GitLab From a9ea2670bc820eecc9241cea757948173c86504e Mon Sep 17 00:00:00 2001 From: Susumu Oda <susumu.oda@cern.ch> Date: Wed, 23 Jan 2019 19:26:21 +0000 Subject: [PATCH 072/192] Make SCTEventFlagWriter and SCTRawDataProvider reentrant (ATLASRECTS-4824) --- .../ISCT_ByteStreamErrorsTool.h | 9 ++++--- .../src/SCT_ByteStreamErrorsTool.cxx | 18 ++++++------- .../src/SCT_ByteStreamErrorsTool.h | 4 +-- .../src/SCTEventFlagWriter.cxx | 12 ++++----- .../src/SCTEventFlagWriter.h | 8 +++--- .../src/SCTRawDataProvider.cxx | 25 ++++++++----------- .../src/SCTRawDataProvider.h | 8 +++--- 7 files changed, 42 insertions(+), 42 deletions(-) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h index a229b5f9db6a..0350b90af779 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -11,12 +11,14 @@ #ifndef ISCT_ByteStreamErrorsTool_h #define ISCT_ByteStreamErrorsTool_h -#include <set> - #include "InDetConditionsSummaryService/InDetHierarchy.h" #include "SCT_ConditionsTools/ISCT_ConditionsTool.h" #include "SCT_ConditionsData/SCT_ByteStreamErrors.h" +#include "GaudiKernel/EventContext.h" + +#include <set> + class Identifier; class IdentifierHash; @@ -38,6 +40,7 @@ class ISCT_ByteStreamErrorsTool: virtual public ISCT_ConditionsTool { //@} virtual const std::set<IdentifierHash>* getErrorSet(int errorType) const =0; + virtual const std::set<IdentifierHash>* getErrorSet(int errorType, const EventContext& ctx) const =0; virtual bool isRODSimulatedData() const =0; virtual bool isRODSimulatedData(const IdentifierHash& elementIdHash) const =0; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx index 44330c086328..c2994778c4b1 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -111,8 +111,8 @@ SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash) const { bool result{true}; for (SCT_ByteStreamErrors::errorTypes badError: SCT_ByteStreamErrors::BadErrors) { - const std::set<IdentifierHash>& errorSet{getErrorSet(badError, ctx)}; - result = (errorSet.count(elementIdHash)==0); + const std::set<IdentifierHash>* errorSet{getErrorSet(badError, ctx)}; + result = (errorSet->count(elementIdHash)==0); if (not result) return result; } @@ -265,9 +265,9 @@ const std::set<IdentifierHash>* SCT_ByteStreamErrorsTool::getErrorSet(int errorType) const { const EventContext& ctx{Gaudi::Hive::currentContext()}; if (errorType>=0 and errorType<SCT_ByteStreamErrors::NUM_ERROR_TYPES) { - return &getErrorSet(static_cast<SCT_ByteStreamErrors::errorTypes>(errorType), ctx); + return getErrorSet(errorType, ctx); } - return 0; + return nullptr; } //////////////////////////////////////////////////////////////////////// @@ -383,8 +383,8 @@ SCT_ByteStreamErrorsTool::isRODSimulatedData() const { bool SCT_ByteStreamErrorsTool::isRODSimulatedData(const IdentifierHash& elementIdHash) const { const EventContext& ctx{Gaudi::Hive::currentContext()}; - const std::set<IdentifierHash>& errorSet{getErrorSet(SCT_ByteStreamErrors::RODSimulatedData, ctx)}; - return (errorSet.count(elementIdHash)!=0); + const std::set<IdentifierHash>* errorSet{getErrorSet(SCT_ByteStreamErrors::RODSimulatedData, ctx)}; + return (errorSet->count(elementIdHash)!=0); } /////////////////////////////////////////////////////////////////////////////// @@ -436,13 +436,13 @@ const InDetDD::SiDetectorElement* SCT_ByteStreamErrorsTool::getDetectorElement(c return m_detectorElements->getDetectorElement(waferHash); } -const std::set<IdentifierHash>& SCT_ByteStreamErrorsTool::getErrorSet(SCT_ByteStreamErrors::errorTypes errorType, const EventContext& ctx) const { +const std::set<IdentifierHash>* SCT_ByteStreamErrorsTool::getErrorSet(int errorType, const EventContext& ctx) const { StatusCode sc{fillData(ctx)}; if (sc.isFailure()) { ATH_MSG_ERROR("fillData in getErrorSet fails"); } - return m_bsErrors[errorType][ctx.slot()]; + return &m_bsErrors[errorType][ctx.slot()]; } const std::map<Identifier, unsigned int>& SCT_ByteStreamErrorsTool::getTempMaskedChips(const EventContext& ctx) const { diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h index b4c37254fb88..3a7b2dfbff71 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -62,6 +62,7 @@ public: virtual bool isGood(const IdentifierHash& elementIdHash) const override; const std::set<IdentifierHash>* getErrorSet(int errorType) const override; // Used by SCTRawDataProviderTool and others + const std::set<IdentifierHash>* getErrorSet(int errorType, const EventContext& ctx) const override; // Used by SCTRawDataProviderTool and others virtual unsigned int tempMaskedChips(const Identifier& moduleId) const override; // Internally used virtual unsigned int abcdErrorChips(const Identifier& moduleId) const override; // Internally used @@ -111,7 +112,6 @@ private: const SCT_ByteStreamFractionContainer* getFracData() const; const InDetDD::SiDetectorElement* getDetectorElement(const IdentifierHash& waferHash) const; - const std::set<IdentifierHash>& getErrorSet(SCT_ByteStreamErrors::errorTypes errorType, const EventContext& ctx) const; const std::map<Identifier, unsigned int>& getTempMaskedChips(const EventContext& ctx) const; const std::map<Identifier, unsigned int>& getAbcdErrorChips(const EventContext& ctx) const; }; diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.cxx index aac33e7c254e..7c1a0d70120c 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCTEventFlagWriter.h" @@ -9,7 +9,7 @@ // Constructor SCTEventFlagWriter::SCTEventFlagWriter(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) + AthReentrantAlgorithm(name, pSvcLocator) { } @@ -25,14 +25,14 @@ StatusCode SCTEventFlagWriter::initialize() // Execute -StatusCode SCTEventFlagWriter::execute() +StatusCode SCTEventFlagWriter::execute(const EventContext& ctx) const { - long unsigned int nLVL1IDErrors{m_bsErrTool->getErrorSet(SCT_ByteStreamErrors::LVL1IDError)->size()}; - long unsigned int nROBFragmentErrors{m_bsErrTool->getErrorSet(SCT_ByteStreamErrors::ROBFragmentError)->size()}; + long unsigned int nLVL1IDErrors{m_bsErrTool->getErrorSet(SCT_ByteStreamErrors::LVL1IDError, ctx)->size()}; + long unsigned int nROBFragmentErrors{m_bsErrTool->getErrorSet(SCT_ByteStreamErrors::ROBFragmentError, ctx)->size()}; if ((nLVL1IDErrors > 500) or (nROBFragmentErrors > 1000)) { // Check if number of errors exceed threshold bool setOK_xAOD{false}; - SG::ReadHandle<xAOD::EventInfo> xAODEvtInfo{m_xAODEvtInfoKey}; // Retrive xAOD EventInfo + SG::ReadHandle<xAOD::EventInfo> xAODEvtInfo{m_xAODEvtInfoKey, ctx}; // Retrive xAOD EventInfo if (xAODEvtInfo.isValid()) { // Retriving xAOD EventInfo successful setOK_xAOD = xAODEvtInfo->updateErrorState(xAOD::EventInfo::SCT, xAOD::EventInfo::Error); } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.h index 665085c3611e..ad1afd761fd5 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTEventFlagWriter.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_RAWDATABYTESTREAMCNV_SCTEVENTFLAGWRITER_H #define SCT_RAWDATABYTESTREAMCNV_SCTEVENTFLAGWRITER_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "xAODEventInfo/EventInfo.h" #include "StoreGate/ReadHandleKey.h" @@ -21,7 +21,7 @@ class ISCT_ByteStreamErrorsTool; * This algorithm flags an event bad if it has >500 LVL1ID errors or * >1000 ROBFragment errors. */ -class SCTEventFlagWriter : public AthAlgorithm +class SCTEventFlagWriter : public AthReentrantAlgorithm { public: @@ -35,7 +35,7 @@ class SCTEventFlagWriter : public AthAlgorithm virtual StatusCode initialize() override; /** Execute */ - virtual StatusCode execute() override; + virtual StatusCode execute(const EventContext& ctx) const override; private: diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx index 32acf01264ba..25604d4d4ba5 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCTRawDataProvider.h" @@ -17,7 +17,7 @@ using OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment; // Constructor SCTRawDataProvider::SCTRawDataProvider(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_regionSelector{"RegSelSvc", name}, m_robDataProvider{"ROBDataProviderSvc", name}, m_sctID{nullptr}, @@ -63,28 +63,27 @@ typedef EventContainers::IdentifiableContTemp<InDetRawDataCollection<SCT_RDORawD // Execute -StatusCode SCTRawDataProvider::execute() +StatusCode SCTRawDataProvider::execute(const EventContext& ctx) const { m_rawDataTool->beginNewEvent(); - SG::WriteHandle<SCT_RDO_Container> rdoContainer(m_rdoContainerKey); + SG::WriteHandle<SCT_RDO_Container> rdoContainer(m_rdoContainerKey, ctx); bool externalCacheRDO = !m_rdoContainerCacheKey.key().empty(); if (not externalCacheRDO) { ATH_CHECK(rdoContainer.record (std::make_unique<SCT_RDO_Container>(m_sctID->wafer_hash_max()))); ATH_MSG_DEBUG("Created container for " << m_sctID->wafer_hash_max()); } else { - SG::UpdateHandle<SCT_RDO_Cache> update(m_rdoContainerCacheKey); + SG::UpdateHandle<SCT_RDO_Cache> update(m_rdoContainerCacheKey, ctx); ATH_CHECK(update.isValid()); ATH_CHECK(rdoContainer.record (std::make_unique<SCT_RDO_Container>(update.ptr()))); ATH_MSG_DEBUG("Created container using cache for " << m_rdoContainerCacheKey.key()); } - - SG::WriteHandle<InDetBSErrContainer> bsErrContainer(m_bsErrContainerKey); + SG::WriteHandle<InDetBSErrContainer> bsErrContainer(m_bsErrContainerKey, ctx); ATH_CHECK(bsErrContainer.record(std::make_unique<InDetBSErrContainer>())); - SG::WriteHandle<SCT_ByteStreamFractionContainer> bsFracContainer(m_bsFracContainerKey); + SG::WriteHandle<SCT_ByteStreamFractionContainer> bsFracContainer(m_bsFracContainerKey, ctx); ATH_CHECK(bsFracContainer.record(std::make_unique<SCT_ByteStreamFractionContainer>())); // Ask ROBDataProviderSvc for the vector of ROBFragment for all SCT ROBIDs @@ -97,7 +96,7 @@ StatusCode SCTRawDataProvider::execute() else { // Only load ROBs from RoI std::vector<uint32_t> listOfROBs; - SG::ReadHandle<TrigRoiDescriptorCollection> roiCollection{m_roiCollectionKey}; + SG::ReadHandle<TrigRoiDescriptorCollection> roiCollection{m_roiCollectionKey, ctx}; ATH_CHECK(roiCollection.isValid()); TrigRoiDescriptor superRoI; // Add all RoIs to a super-RoI superRoI.setComposite(true); @@ -109,14 +108,13 @@ StatusCode SCTRawDataProvider::execute() m_robDataProvider->getROBData(listOfROBs, vecROBFrags); } - ATH_MSG_DEBUG("Number of ROB fragments " << vecROBFrags.size()); - SG::WriteHandle<InDetTimeCollection> lvl1Collection{m_lvl1CollectionKey}; + SG::WriteHandle<InDetTimeCollection> lvl1Collection{m_lvl1CollectionKey, ctx}; lvl1Collection = std::make_unique<InDetTimeCollection>(vecROBFrags.size()); ATH_CHECK(lvl1Collection.isValid()); - SG::WriteHandle<InDetTimeCollection> bcIDCollection{m_bcIDCollectionKey}; + SG::WriteHandle<InDetTimeCollection> bcIDCollection{m_bcIDCollectionKey, ctx}; bcIDCollection = std::make_unique<InDetTimeCollection>(vecROBFrags.size()); ATH_CHECK(bcIDCollection.isValid()); @@ -151,8 +149,7 @@ StatusCode SCTRawDataProvider::execute() if (m_rawDataTool->convert(vecROBFrags, *rdoInterface, bsErrContainer.ptr(), - bsFracContainer.ptr()).isFailure()) - { + bsFracContainer.ptr()).isFailure()) { ATH_MSG_WARNING("BS conversion into RDOs failed"); } diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h index 58d88c5d7f0c..22b1a1895893 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawDataProvider.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_RAWDATABYTESTREAMCNV_SCTRAWDATAPROVIDER_H #define SCT_RAWDATABYTESTREAMCNV_SCTRAWDATAPROVIDER_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "InDetRawData/InDetTimeCollection.h" #include "InDetRawData/SCT_RDO_Container.h" @@ -39,7 +39,7 @@ class SCT_ByteStreamFractionContainer; * * Class based on TRT equivalent. */ -class SCTRawDataProvider : public AthAlgorithm +class SCTRawDataProvider : public AthReentrantAlgorithm { public: @@ -53,7 +53,7 @@ class SCTRawDataProvider : public AthAlgorithm virtual StatusCode initialize() override; /** Execute */ - virtual StatusCode execute() override; + virtual StatusCode execute(const EventContext& ctx) const override; private: -- GitLab From ff08d8ac2a0e755a9ef8b8a947327ef959a8bccb Mon Sep 17 00:00:00 2001 From: Susumu Oda <susumu.oda@cern.ch> Date: Wed, 23 Jan 2019 19:46:06 +0000 Subject: [PATCH 073/192] Make several SCT cond and test algs reentrant (ATLASRECTS-4824) --- .../src/SCT_ConditionsSummaryTestAlg.cxx | 6 ++-- .../src/SCT_ConditionsSummaryTestAlg.h | 8 +++--- .../src/SCT_ConfigurationCondAlg.cxx | 28 +++++++++---------- .../src/SCT_ConfigurationCondAlg.h | 14 +++++----- .../SCT_ConfigurationConditionsTestAlg.cxx | 6 ++-- .../src/SCT_ConfigurationConditionsTestAlg.h | 8 +++--- .../src/SCT_DCSConditionsHVCondAlg.cxx | 10 +++---- .../src/SCT_DCSConditionsHVCondAlg.h | 8 +++--- .../src/SCT_DCSConditionsStatCondAlg.cxx | 12 ++++---- .../src/SCT_DCSConditionsStatCondAlg.h | 8 +++--- .../src/SCT_DCSConditionsTempCondAlg.cxx | 12 ++++---- .../src/SCT_DCSConditionsTempCondAlg.h | 8 +++--- .../src/SCT_DCSConditionsTestAlg.cxx | 6 ++-- .../src/SCT_DCSConditionsTestAlg.h | 10 +++---- .../src/SCT_MajorityCondAlg.cxx | 10 +++---- .../src/SCT_MajorityCondAlg.h | 8 +++--- .../src/SCT_MajorityConditionsTestAlg.cxx | 6 ++-- .../src/SCT_MajorityConditionsTestAlg.h | 8 +++--- .../src/SCT_MonitorCondAlg.cxx | 10 +++---- .../src/SCT_MonitorCondAlg.h | 10 +++---- .../src/SCT_MonitorConditionsTestAlg.cxx | 8 +++--- .../src/SCT_MonitorConditionsTestAlg.h | 8 +++--- .../src/SCT_ReadCalibChipDataTestAlg.cxx | 8 +++--- .../src/SCT_ReadCalibChipDataTestAlg.h | 8 +++--- .../src/SCT_ReadCalibChipGainCondAlg.cxx | 14 +++++----- .../src/SCT_ReadCalibChipGainCondAlg.h | 10 +++---- .../src/SCT_ReadCalibChipNoiseCondAlg.cxx | 12 ++++---- .../src/SCT_ReadCalibChipNoiseCondAlg.h | 10 +++---- .../src/SCT_ReadCalibDataCondAlg.cxx | 18 ++++++------ .../src/SCT_ReadCalibDataCondAlg.h | 8 +++--- .../src/SCT_ReadCalibDataTestAlg.cxx | 6 ++-- .../src/SCT_ReadCalibDataTestAlg.h | 8 +++--- .../src/SCT_SiliconConditionsTestAlg.cxx | 6 ++-- .../src/SCT_SiliconConditionsTestAlg.h | 10 +++---- .../src/SCT_SiliconHVCondAlg.cxx | 12 ++++---- .../src/SCT_SiliconHVCondAlg.h | 8 +++--- .../src/SCT_SiliconTempCondAlg.cxx | 12 ++++---- .../src/SCT_SiliconTempCondAlg.h | 8 +++--- .../src/SCT_TdaqEnabledCondAlg.cxx | 16 +++++------ .../src/SCT_TdaqEnabledCondAlg.h | 10 +++---- .../src/SCT_TdaqEnabledTestAlg.cxx | 6 ++-- .../src/SCT_TdaqEnabledTestAlg.h | 8 +++--- 42 files changed, 205 insertions(+), 205 deletions(-) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.cxx index febb7241ef5d..a27ba4ea7ae3 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -21,7 +21,7 @@ SCT_ConditionsSummaryTestAlg::SCT_ConditionsSummaryTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) { + AthReentrantAlgorithm(name, pSvcLocator) { //nop } @@ -35,7 +35,7 @@ SCT_ConditionsSummaryTestAlg::initialize() { //Execute StatusCode -SCT_ConditionsSummaryTestAlg::execute() { +SCT_ConditionsSummaryTestAlg::execute(const EventContext& /*ctx*/) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients ATH_MSG_INFO("Calling execute"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.h index 5eedecd35d71..1e4a6178a265 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsSummaryTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -15,7 +15,7 @@ #define SCT_ConditionsSummaryTestAlg_H //Athena -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "InDetConditionsSummaryService/IInDetConditionsTool.h" @@ -26,13 +26,13 @@ #include <string> ///Example class to show calling the SCT_ConditionsSummaryTool -class SCT_ConditionsSummaryTestAlg : public AthAlgorithm { +class SCT_ConditionsSummaryTestAlg : public AthReentrantAlgorithm { public: SCT_ConditionsSummaryTestAlg(const std::string &name,ISvcLocator *pSvcLocator) ; virtual ~SCT_ConditionsSummaryTestAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.cxx index aa37ee1ed813..063e0bf5e368 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_ConfigurationCondAlg.h" @@ -28,7 +28,7 @@ const std::string SCT_ConfigurationCondAlg::s_coolModuleFolderName2{"/SCT/DAQ/Co const std::string SCT_ConfigurationCondAlg::s_coolMurFolderName2{"/SCT/DAQ/Config/MUR"}; SCT_ConfigurationCondAlg::SCT_ConfigurationCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_pHelper{nullptr} { @@ -77,11 +77,11 @@ StatusCode SCT_ConfigurationCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_ConfigurationCondAlg::execute() { +StatusCode SCT_ConfigurationCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_ConfigurationCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_ConfigurationCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -97,7 +97,7 @@ StatusCode SCT_ConfigurationCondAlg::execute() { // Fill module data EventIDRange rangeModule; - if (fillModuleData(writeCdo.get(), rangeModule).isFailure()) { + if (fillModuleData(writeCdo.get(), rangeModule, ctx).isFailure()) { return StatusCode::FAILURE; } @@ -105,7 +105,7 @@ StatusCode SCT_ConfigurationCondAlg::execute() { EventIDRange rangeChannel; EventIDRange rangeMur; EventIDRange rangeDetEle; - if (fillChannelData(writeCdo.get(), rangeChannel, rangeMur, rangeDetEle).isFailure()) { + if (fillChannelData(writeCdo.get(), rangeChannel, rangeMur, rangeDetEle, ctx).isFailure()) { return StatusCode::FAILURE; } @@ -128,7 +128,7 @@ StatusCode SCT_ConfigurationCondAlg::execute() { } // Fill bad strip, chip and link info -StatusCode SCT_ConfigurationCondAlg::fillChannelData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeChannel, EventIDRange& rangeMur, EventIDRange& rangeDetEle) { +StatusCode SCT_ConfigurationCondAlg::fillChannelData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeChannel, EventIDRange& rangeMur, EventIDRange& rangeDetEle, const EventContext& ctx) const { // Check if the pointer of derived conditions object is valid. if (writeCdo==nullptr) { ATH_MSG_FATAL("Pointer of derived conditions object is null"); @@ -165,10 +165,10 @@ StatusCode SCT_ConfigurationCondAlg::fillChannelData(SCT_ConfigurationCondData* writeCdo->clearBadStripIds(); writeCdo->clearBadChips(); // Fill link status - if (fillLinkStatus(writeCdo, rangeMur).isFailure()) return StatusCode::FAILURE; + if (fillLinkStatus(writeCdo, rangeMur, ctx).isFailure()) return StatusCode::FAILURE; // Get channel folder for link info - SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyChannel}; + SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyChannel, ctx}; const CondAttrListVec* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Could not find MUR configuration data: " << m_readKeyChannel.key()); @@ -183,7 +183,7 @@ StatusCode SCT_ConfigurationCondAlg::fillChannelData(SCT_ConfigurationCondData* } // Get SCT_DetectorElementCollection - SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle(m_SCTDetEleCollKey); + SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle{m_SCTDetEleCollKey, ctx}; const InDetDD::SiDetectorElementCollection* elements(sctDetEle.retrieve()); if (elements==nullptr) { ATH_MSG_FATAL(m_SCTDetEleCollKey.fullKey() << " could not be retrieved"); @@ -293,7 +293,7 @@ StatusCode SCT_ConfigurationCondAlg::fillChannelData(SCT_ConfigurationCondData* } // Fill bad module info -StatusCode SCT_ConfigurationCondAlg::fillModuleData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeModule) { +StatusCode SCT_ConfigurationCondAlg::fillModuleData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeModule, const EventContext& ctx) const { // Check if the pointer of derived conditions object is valid. if (writeCdo==nullptr) { ATH_MSG_FATAL("Pointer of derived conditions object is null"); @@ -310,7 +310,7 @@ StatusCode SCT_ConfigurationCondAlg::fillModuleData(SCT_ConfigurationCondData* w writeCdo->clearBadWaferIds(); // Get Module folder - SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyModule}; + SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyModule, ctx}; const CondAttrListVec* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Could not find MUR configuration data: " << m_readKeyModule.key()); @@ -366,7 +366,7 @@ StatusCode SCT_ConfigurationCondAlg::fillModuleData(SCT_ConfigurationCondData* w } // Fill link info -StatusCode SCT_ConfigurationCondAlg::fillLinkStatus(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeMur) { +StatusCode SCT_ConfigurationCondAlg::fillLinkStatus(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeMur, const EventContext& ctx) const { // Check if the pointer of derived conditions object is valid. if (writeCdo==nullptr) { ATH_MSG_FATAL("Pointer of derived conditions object is null"); @@ -380,7 +380,7 @@ StatusCode SCT_ConfigurationCondAlg::fillLinkStatus(SCT_ConfigurationCondData* w writeCdo->clearBadLinks(); // Get MUR folder for link info - SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyMur}; + SG::ReadCondHandle<CondAttrListVec> readHandle{m_readKeyMur, ctx}; const CondAttrListVec* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Could not find MUR configuration data: " << m_readKeyMur.key()); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.h index e38ca85968bb..cb059211e398 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_CONFIGURATIONCONDALG #define SCT_CONFIGURATIONCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListVec.h" #include "Identifier/Identifier.h" @@ -25,22 +25,22 @@ class EventIDRange; class SCT_ID; -class SCT_ConfigurationCondAlg : public AthAlgorithm +class SCT_ConfigurationCondAlg : public AthReentrantAlgorithm { public: SCT_ConfigurationCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_ConfigurationCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: /** enum for constants*/ enum {badLink=255, stripsPerChip=128, lastStrip=767}; - StatusCode fillChannelData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeChannel, EventIDRange& rangeMur, EventIDRange& rangeDetEle); - StatusCode fillModuleData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeModule); - StatusCode fillLinkStatus(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeMur); + StatusCode fillChannelData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeChannel, EventIDRange& rangeMur, EventIDRange& rangeDetEle, const EventContext& ctx) const; + StatusCode fillModuleData(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeModule, const EventContext& ctx) const; + StatusCode fillLinkStatus(SCT_ConfigurationCondData* writeCdo, EventIDRange& rangeMur, const EventContext& ctx) const; Identifier getStripId(const unsigned int truncatedSerialNumber, const unsigned int chipNumber, const unsigned int stripNumber, const InDetDD::SiDetectorElementCollection* elements) const; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.cxx index e271bfd2b15b..b5f5886a5264 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file Test class for SCT_ConfigurationConditionsSvc @@ -14,7 +14,7 @@ #include "InDetIdentifier/SCT_ID.h" SCT_ConfigurationConditionsTestAlg::SCT_ConfigurationConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_sctId{nullptr} { } @@ -29,7 +29,7 @@ StatusCode SCT_ConfigurationConditionsTestAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_ConfigurationConditionsTestAlg::execute() { +StatusCode SCT_ConfigurationConditionsTestAlg::execute(const EventContext& /*ctx*/) const { ATH_MSG_INFO("in execute()"); // Bad modules diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h index f5b54ddf1a8b..714a7edd501d 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -11,7 +11,7 @@ #define SCT_TestConfigConditions_H // Athena includes -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsTools/ISCT_ConfigurationConditionsTool.h" // Gaudi includes @@ -27,7 +27,7 @@ class SCT_ID; * This class acts as a test/sample client for the SCT_ConfigurationSConditionsSvc class. */ -class SCT_ConfigurationConditionsTestAlg : public AthAlgorithm { +class SCT_ConfigurationConditionsTestAlg : public AthReentrantAlgorithm { public: // Structors SCT_ConfigurationConditionsTestAlg (const std::string& name, ISvcLocator* pSvcLocator); @@ -35,7 +35,7 @@ class SCT_ConfigurationConditionsTestAlg : public AthAlgorithm { // Standard Gaudi functions StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.cxx index 0111d797a0e8..b1570fbe82da 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_DCSConditionsHVCondAlg.h" @@ -11,7 +11,7 @@ #include <memory> SCT_DCSConditionsHVCondAlg::SCT_DCSConditionsHVCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} { } @@ -36,7 +36,7 @@ StatusCode SCT_DCSConditionsHVCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_DCSConditionsHVCondAlg::execute() { +StatusCode SCT_DCSConditionsHVCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); if (not m_returnHVTemp.value()) { @@ -44,7 +44,7 @@ StatusCode SCT_DCSConditionsHVCondAlg::execute() { } // Write Cond Handle - SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -54,7 +54,7 @@ StatusCode SCT_DCSConditionsHVCondAlg::execute() { } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.h index 523b3684ef4f..b7e88f4f9500 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsHVCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_DCSCONDITIONSHVCONDALG #define SCT_DCSCONDITIONSHVCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "SCT_ConditionsData/SCT_DCSFloatCondData.h" @@ -15,13 +15,13 @@ #include "GaudiKernel/ICondSvc.h" #include "GaudiKernel/Property.h" -class SCT_DCSConditionsHVCondAlg : public AthAlgorithm +class SCT_DCSConditionsHVCondAlg : public AthReentrantAlgorithm { public: SCT_DCSConditionsHVCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_DCSConditionsHVCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.cxx index ec27d6f0eb22..bcadec7c1ccf 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_DCSConditionsStatCondAlg.h" @@ -11,7 +11,7 @@ #include <memory> SCT_DCSConditionsStatCondAlg::SCT_DCSConditionsStatCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_doState{true} { @@ -53,7 +53,7 @@ StatusCode SCT_DCSConditionsStatCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_DCSConditionsStatCondAlg::execute() { +StatusCode SCT_DCSConditionsStatCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); if (not m_doState) { @@ -61,7 +61,7 @@ StatusCode SCT_DCSConditionsStatCondAlg::execute() { } // Write Cond Handle (state) - SG::WriteCondHandle<SCT_DCSStatCondData> writeHandle{m_writeKeyState}; + SG::WriteCondHandle<SCT_DCSStatCondData> writeHandle{m_writeKeyState, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -71,7 +71,7 @@ StatusCode SCT_DCSConditionsStatCondAlg::execute() { } // Read Cond Handle (state) - SG::ReadCondHandle<CondAttrListCollection> readHandleState{m_readKeyState}; + SG::ReadCondHandle<CondAttrListCollection> readHandleState{m_readKeyState, ctx}; const CondAttrListCollection* readCdoState{*readHandleState}; if (readCdoState==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object (state)"); @@ -116,7 +116,7 @@ StatusCode SCT_DCSConditionsStatCondAlg::execute() { if (m_returnHVTemp.value()) { // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandleHV{m_readKeyHV}; + SG::ReadCondHandle<CondAttrListCollection> readHandleHV{m_readKeyHV, ctx}; const CondAttrListCollection* readCdoHV{*readHandleHV}; if (readCdoHV==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object (HV)"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.h index d5e768158518..28e69d6e05bb 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsStatCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_DCSCONDITIONSSTATCONDALG #define SCT_DCSCONDITIONSSTATCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "StoreGate/ReadCondHandleKey.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" @@ -16,13 +16,13 @@ #include "GaudiKernel/ICondSvc.h" #include "GaudiKernel/Property.h" -class SCT_DCSConditionsStatCondAlg : public AthAlgorithm +class SCT_DCSConditionsStatCondAlg : public AthReentrantAlgorithm { public: SCT_DCSConditionsStatCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_DCSConditionsStatCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.cxx index 4b15949415a1..e43f76a5ae0f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_DCSConditionsTempCondAlg.h" @@ -11,7 +11,7 @@ #include <memory> SCT_DCSConditionsTempCondAlg::SCT_DCSConditionsTempCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} { } @@ -36,7 +36,7 @@ StatusCode SCT_DCSConditionsTempCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_DCSConditionsTempCondAlg::execute() { +StatusCode SCT_DCSConditionsTempCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); if (not m_returnHVTemp.value()) { @@ -44,17 +44,17 @@ StatusCode SCT_DCSConditionsTempCondAlg::execute() { } // Write Cond Handle - SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." << ". In theory this should not be called, but may happen" << " if multiple concurrent events are being processed out of order."); - return StatusCode::SUCCESS; + return StatusCode::SUCCESS; } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.h index 78d58dc812e8..f610ed525273 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTempCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_DCSCONDITIONSTEMPCONDALG #define SCT_DCSCONDITIONSTEMPCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "SCT_ConditionsData/SCT_DCSFloatCondData.h" @@ -15,13 +15,13 @@ #include "GaudiKernel/ICondSvc.h" #include "GaudiKernel/Property.h" -class SCT_DCSConditionsTempCondAlg : public AthAlgorithm +class SCT_DCSConditionsTempCondAlg : public AthReentrantAlgorithm { public: SCT_DCSConditionsTempCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_DCSConditionsTempCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx index 07f51b9d6e89..bb802e01c4d9 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file TestDCSConditions.cxx Implementation file for TestDCSConditions class. @@ -14,7 +14,7 @@ SCT_DCSConditionsTestAlg::SCT_DCSConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) + AthReentrantAlgorithm(name, pSvcLocator) { //nop } @@ -28,7 +28,7 @@ StatusCode SCT_DCSConditionsTestAlg::initialize() { } // SCT_DCSConditionsTestAlg::execute() //---------------------------------------------------------------------- -StatusCode SCT_DCSConditionsTestAlg::execute() { +StatusCode SCT_DCSConditionsTestAlg::execute(const EventContext& /*ctx*/) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients ATH_MSG_DEBUG("in execute()"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h index a7f554692334..e353a04ab3e2 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file TestDCSConditions.h Header file for TestDCSConditions class. @@ -11,7 +11,7 @@ #define SCT_TestDCSConditions_H // Include Athena stuff -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsTools/ISCT_DCSConditionsTool.h" // Include Gaudi stuff @@ -22,15 +22,15 @@ /** This class acts as a test/sample client the DCSConditions class. */ -class SCT_DCSConditionsTestAlg : public AthAlgorithm { +class SCT_DCSConditionsTestAlg : public AthReentrantAlgorithm { public: // Structors - SCT_DCSConditionsTestAlg (const std::string& name, ISvcLocator* pSvcLocator); + SCT_DCSConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_DCSConditionsTestAlg() = default; // Standard Gaudi functions StatusCode initialize() override; //!< Gaudi initialiser - StatusCode execute() override; //!< Gaudi executer + StatusCode execute(const EventContext& ctx) const override; //!< Gaudi executer StatusCode finalize() override; //!< Gaudi finaliser private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.cxx index cb4f4bfa7ad2..97fd225e2a5f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_MajorityCondAlg.h" @@ -11,7 +11,7 @@ #include <memory> SCT_MajorityCondAlg::SCT_MajorityCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} { } @@ -37,12 +37,12 @@ StatusCode SCT_MajorityCondAlg::initialize() return StatusCode::SUCCESS; } -StatusCode SCT_MajorityCondAlg::execute() +StatusCode SCT_MajorityCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_MajorityCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_MajorityCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { @@ -53,7 +53,7 @@ StatusCode SCT_MajorityCondAlg::execute() } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.h index 2732419e5fb1..f84a2ad01565 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_MAJORITYCONDALG #define SCT_MAJORITYCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "SCT_ConditionsData/SCT_MajorityCondData.h" @@ -14,13 +14,13 @@ #include "GaudiKernel/ICondSvc.h" -class SCT_MajorityCondAlg : public AthAlgorithm +class SCT_MajorityCondAlg : public AthReentrantAlgorithm { public: SCT_MajorityCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_MajorityCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.cxx index b4c443608bac..b411f802944f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -17,7 +17,7 @@ #include "Identifier/Identifier.h" SCT_MajorityConditionsTestAlg::SCT_MajorityConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) + AthReentrantAlgorithm(name, pSvcLocator) { } @@ -32,7 +32,7 @@ StatusCode SCT_MajorityConditionsTestAlg::initialize() { } //Execute -StatusCode SCT_MajorityConditionsTestAlg::execute() { +StatusCode SCT_MajorityConditionsTestAlg::execute(const EventContext& /*ctx*/) const { ATH_MSG_INFO("Calling execute"); ATH_MSG_INFO("Detector is " << (m_majorityTool->isGood() ? "GOOD" : "BAD")); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.h index fb6aff526ff0..186e4421f6a7 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MajorityConditionsTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -15,7 +15,7 @@ #define SCT_MajorityConditionsTestAlg_H //Athena -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsTools/ISCT_DetectorLevelConditionsTool.h" //Gaudi @@ -25,13 +25,13 @@ #include <string> ///Example class to show calling the SCT_MajorityConditionsSvc -class SCT_MajorityConditionsTestAlg : public AthAlgorithm { +class SCT_MajorityConditionsTestAlg : public AthReentrantAlgorithm { public: SCT_MajorityConditionsTestAlg(const std::string& name,ISvcLocator* pSvcLocator); virtual ~SCT_MajorityConditionsTestAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.cxx index b5fe4834fe10..95e22d5ce70a 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_MonitorCondAlg.h" @@ -11,7 +11,7 @@ #include <memory> SCT_MonitorCondAlg::SCT_MonitorCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_helper{nullptr} , m_condSvc{"CondSvc", name} { @@ -40,12 +40,12 @@ StatusCode SCT_MonitorCondAlg::initialize() return StatusCode::SUCCESS; } -StatusCode SCT_MonitorCondAlg::execute() +StatusCode SCT_MonitorCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_MonitorCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_MonitorCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { @@ -56,7 +56,7 @@ StatusCode SCT_MonitorCondAlg::execute() } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.h index ce62c02635f6..5c2bd522cad0 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_MONITORCONDALG #define SCT_MONITORCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "StoreGate/ReadCondHandleKey.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "StoreGate/WriteCondHandleKey.h" @@ -14,13 +14,13 @@ class SCT_ID; -class SCT_MonitorCondAlg : public AthAlgorithm -{ +class SCT_MonitorCondAlg : public AthReentrantAlgorithm +{ public: SCT_MonitorCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_MonitorCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx index 0b6d4f155b11..893a4cd3e409 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -19,7 +19,7 @@ #include "StoreGate/ReadHandle.h" SCT_MonitorConditionsTestAlg::SCT_MonitorConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_sctId{nullptr} { } @@ -42,7 +42,7 @@ StatusCode SCT_MonitorConditionsTestAlg::initialize() } -StatusCode SCT_MonitorConditionsTestAlg::execute() +StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients @@ -56,7 +56,7 @@ StatusCode SCT_MonitorConditionsTestAlg::execute() ATH_MSG_DEBUG(" in execute()"); - SG::ReadHandle<xAOD::EventInfo> evt{m_evtKey}; + SG::ReadHandle<xAOD::EventInfo> evt{m_evtKey, ctx}; if (not evt.isValid()) { ATH_MSG_FATAL("could not get event info "); return StatusCode::FAILURE; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.h index 421e447706ea..95542ed9128d 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_MonitorConditionsTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -15,7 +15,7 @@ #define SCT_MonitorConditionsTestAlg_H // Athena -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsTools/ISCT_MonitorConditionsTool.h" @@ -31,13 +31,13 @@ class SCT_ID; ///Example class to show calling the SCT_MonitorConditions -class SCT_MonitorConditionsTestAlg : public AthAlgorithm { +class SCT_MonitorConditionsTestAlg : public AthReentrantAlgorithm { public: SCT_MonitorConditionsTestAlg(const std::string &name,ISvcLocator *pSvcLocator) ; virtual ~SCT_MonitorConditionsTestAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx index 585fa2af6a2b..2d315e160d8a 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file SCT_ReadCalibChipDataTestAlg.cxx Implementation file for SCT_ReadCalibChipDataTestAlg class @@ -21,7 +21,7 @@ //---------------------------------------------------------------------- SCT_ReadCalibChipDataTestAlg::SCT_ReadCalibChipDataTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_id_sct{nullptr}, m_moduleId{0}, m_waferId{0}, @@ -89,7 +89,7 @@ StatusCode SCT_ReadCalibChipDataTestAlg::processProperties() } // SCT_ReadCalibChipDataTestAlg::processProperties() //---------------------------------------------------------------------- -StatusCode SCT_ReadCalibChipDataTestAlg::execute() { +StatusCode SCT_ReadCalibChipDataTestAlg::execute(const EventContext& ctx) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients @@ -97,7 +97,7 @@ StatusCode SCT_ReadCalibChipDataTestAlg::execute() { ATH_MSG_DEBUG("in execute()"); // Get the current event - SG::ReadHandle<xAOD::EventInfo> currentEvent{m_currentEventKey}; + SG::ReadHandle<xAOD::EventInfo> currentEvent{m_currentEventKey, ctx}; if (not currentEvent.isValid()) { ATH_MSG_FATAL("Could not get event info"); return StatusCode::FAILURE; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.h index d6c698d637d3..18258542ffd9 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipDataTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file SCT_ReadCalibDataTestAlg.h Header file for SCT_ReadCalibDataTestAlg. @@ -12,7 +12,7 @@ #define SCT_READ_CALIB_CHIP_DATA_TEST_ALG // Include Athena stuff -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "Identifier/Identifier.h" #include "SCT_ConditionsTools/ISCT_ReadCalibChipDataTool.h" @@ -28,7 +28,7 @@ class SCT_ID; /** This class acts as a test/sample client to the SCT_ReadSCalibChipDataSvc class.*/ -class SCT_ReadCalibChipDataTestAlg : public AthAlgorithm +class SCT_ReadCalibChipDataTestAlg : public AthReentrantAlgorithm { public: //----------Public Member Functions----------// @@ -38,7 +38,7 @@ class SCT_ReadCalibChipDataTestAlg : public AthAlgorithm // Standard Gaudi functions StatusCode initialize() override; //!< Gaudi initialiser - StatusCode execute() override; //!< Gaudi executer + StatusCode execute(const EventContext& ctx) const override; //!< Gaudi executer StatusCode finalize() override; //!< Gaudi finaliser private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.cxx index cbacdf24d72f..8de6b2a015ac 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_ReadCalibChipGainCondAlg.h" @@ -17,7 +17,7 @@ using namespace SCT_ConditionsData; using namespace SCT_ReadCalibChipUtilities; SCT_ReadCalibChipGainCondAlg::SCT_ReadCalibChipGainCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_id_sct{nullptr} { @@ -44,21 +44,21 @@ StatusCode SCT_ReadCalibChipGainCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_ReadCalibChipGainCondAlg::execute() { +StatusCode SCT_ReadCalibChipGainCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_GainCalibData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_GainCalibData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." << ". In theory this should not be called, but may happen" << " if multiple concurrent events are being processed out of order."); - return StatusCode::SUCCESS; + return StatusCode::SUCCESS; } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); @@ -120,7 +120,7 @@ StatusCode SCT_ReadCalibChipGainCondAlg::finalize() { } void -SCT_ReadCalibChipGainCondAlg::insertNptGainFolderData(SCT_ModuleGainCalibData& theseCalibData, const coral::AttributeList& folderData) { +SCT_ReadCalibChipGainCondAlg::insertNptGainFolderData(SCT_ModuleGainCalibData& theseCalibData, const coral::AttributeList& folderData) const { for (int i{0}; i!=N_NPTGAIN; ++i) { SCT_ModuleCalibParameter& datavec{theseCalibData[i]}; const std::string &dbData{((folderData)[nPtGainDbParameterNames[i]]).data<std::string>()}; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.h index 7ea2debae03d..544503f57324 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipGainCondAlg.h @@ -1,12 +1,12 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_ReadCalibChipGainCondAlg_h #define SCT_ReadCalibChipGainCondAlg_h // Include parent class -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" // Include Gaudi classes #include "GaudiKernel/ICondSvc.h" @@ -25,17 +25,17 @@ // Forward declarations class SCT_ID; -class SCT_ReadCalibChipGainCondAlg : public AthAlgorithm +class SCT_ReadCalibChipGainCondAlg : public AthReentrantAlgorithm { public: SCT_ReadCalibChipGainCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_ReadCalibChipGainCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: - void insertNptGainFolderData(SCT_ModuleGainCalibData& theseCalibData, const coral::AttributeList& folderData); + void insertNptGainFolderData(SCT_ModuleGainCalibData& theseCalibData, const coral::AttributeList& folderData) const; SG::ReadCondHandleKey<CondAttrListCollection> m_readKey{this, "ReadKey", "/SCT/DAQ/Calibration/ChipGain", "Key of input (raw) gain conditions folder"}; SG::WriteCondHandleKey<SCT_GainCalibData> m_writeKey{this, "WriteKey", "SCT_GainCalibData", "Key of output (derived) gain conditions data"}; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.cxx index b5bcdaf08f49..b4a3bb84dd14 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_ReadCalibChipNoiseCondAlg.h" @@ -18,7 +18,7 @@ using namespace SCT_ConditionsData; using namespace SCT_ReadCalibChipUtilities; SCT_ReadCalibChipNoiseCondAlg::SCT_ReadCalibChipNoiseCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_id_sct{nullptr} { @@ -45,11 +45,11 @@ StatusCode SCT_ReadCalibChipNoiseCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_ReadCalibChipNoiseCondAlg::execute() { +StatusCode SCT_ReadCalibChipNoiseCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_NoiseCalibData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_NoiseCalibData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -59,7 +59,7 @@ StatusCode SCT_ReadCalibChipNoiseCondAlg::execute() { } // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); @@ -121,7 +121,7 @@ StatusCode SCT_ReadCalibChipNoiseCondAlg::finalize() { } void -SCT_ReadCalibChipNoiseCondAlg::insertNoiseOccFolderData(SCT_ModuleNoiseCalibData& theseCalibData, const coral::AttributeList& folderData) { +SCT_ReadCalibChipNoiseCondAlg::insertNoiseOccFolderData(SCT_ModuleNoiseCalibData& theseCalibData, const coral::AttributeList& folderData) const { for (int i{0}; i!=N_NOISEOCC; ++i) { SCT_ModuleCalibParameter& datavec{theseCalibData[i]}; std::string dbData{((folderData)[noiseOccDbParameterNames[i]]).data<std::string>()}; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.h index 44ec1e2a468f..a55f6dfc629b 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibChipNoiseCondAlg.h @@ -1,12 +1,12 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_ReadCalibChipNoiseCondAlg_h #define SCT_ReadCalibChipNoiseCondAlg_h // Include parent class -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" // Include Athena classes #include "AthenaPoolUtilities/CondAttrListCollection.h" @@ -25,17 +25,17 @@ // Forward declarations class SCT_ID; -class SCT_ReadCalibChipNoiseCondAlg : public AthAlgorithm +class SCT_ReadCalibChipNoiseCondAlg : public AthReentrantAlgorithm { public: SCT_ReadCalibChipNoiseCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_ReadCalibChipNoiseCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: - void insertNoiseOccFolderData(SCT_ModuleNoiseCalibData& theseCalibData, const coral::AttributeList& folderData); + void insertNoiseOccFolderData(SCT_ModuleNoiseCalibData& theseCalibData, const coral::AttributeList& folderData) const; SG::ReadCondHandleKey<CondAttrListCollection> m_readKey{this, "ReadKey", "/SCT/DAQ/Calibration/ChipNoise", "Key of input (raw) noise conditions folder"}; SG::WriteCondHandleKey<SCT_NoiseCalibData> m_writeKey{this, "WriteKey", "SCT_NoiseCalibData", "Key of output (derived) noise conditions data"}; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.cxx index 47b2bfacad92..e79a3eed4e26 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_ReadCalibDataCondAlg.h" @@ -49,7 +49,7 @@ namespace { } SCT_ReadCalibDataCondAlg::SCT_ReadCalibDataCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_defectMapIntToString{} , m_condSvc{"CondSvc", name} , m_id_sct{nullptr} @@ -130,13 +130,13 @@ StatusCode SCT_ReadCalibDataCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_ReadCalibDataCondAlg::execute() { +StatusCode SCT_ReadCalibDataCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle bool validWriteCondHandle{true}; // Do we have a valid Write Cond Handle for current time? - SG::WriteCondHandle<SCT_CalibDefectData> writeHandleData[NFEATURES]{m_writeKeyGain, m_writeKeyNoise}; + SG::WriteCondHandle<SCT_CalibDefectData> writeHandleData[NFEATURES]{{m_writeKeyGain, ctx}, {m_writeKeyNoise, ctx}}; for (unsigned int i{GAIN}; i<NFEATURES; i++) { if (writeHandleData[i].isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandleData[i].fullKey() << " is already valid." @@ -146,7 +146,7 @@ StatusCode SCT_ReadCalibDataCondAlg::execute() { validWriteCondHandle = false; } } - SG::WriteCondHandle<SCT_AllGoodStripInfo> writeHandleInfo{m_writeKeyInfo}; + SG::WriteCondHandle<SCT_AllGoodStripInfo> writeHandleInfo{m_writeKeyInfo, ctx}; if (writeHandleInfo.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandleInfo.fullKey() << " is already valid." << ". In theory this should not be called, but may happen" @@ -157,7 +157,7 @@ StatusCode SCT_ReadCalibDataCondAlg::execute() { if (validWriteCondHandle) return StatusCode::SUCCESS; // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle[NFEATURES]{m_readKeyGain, m_readKeyNoise}; + SG::ReadCondHandle<CondAttrListCollection> readHandle[NFEATURES]{{m_readKeyGain, ctx}, {m_readKeyNoise, ctx}}; const CondAttrListCollection* readCdo[NFEATURES]{*readHandle[GAIN], *readHandle[NOISE]}; EventIDRange rangeR[NFEATURES]; for (unsigned int i{GAIN}; i<NFEATURES; i++) { @@ -175,8 +175,8 @@ StatusCode SCT_ReadCalibDataCondAlg::execute() { } // Get SCT_DetectorElementCollection - SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle(m_SCTDetEleCollKey); - const InDetDD::SiDetectorElementCollection* elements(sctDetEle.retrieve()); + SG::ReadCondHandle<InDetDD::SiDetectorElementCollection> sctDetEle{m_SCTDetEleCollKey, ctx}; + const InDetDD::SiDetectorElementCollection* elements{sctDetEle.retrieve()}; if (elements==nullptr) { ATH_MSG_FATAL(m_SCTDetEleCollKey.fullKey() << " could not be retrieved"); return StatusCode::FAILURE; @@ -258,7 +258,7 @@ StatusCode SCT_ReadCalibDataCondAlg::execute() { for (long unsigned int i{0}; i<gainvec_size; ++i) { theseDefects.begDefects.push_back(gaindefectbvec[i]); theseDefects.endDefects.push_back(gaindefectevec[i]); - theseDefects.typeOfDefect.push_back(m_defectMapIntToString[defectTypevec[i]]); + theseDefects.typeOfDefect.push_back(m_defectMapIntToString.at(defectTypevec[i])); theseDefects.parValue.push_back(coerceToFloatRange(parValuevec[i])); } // Fill the isGoodWaferArray diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.h index 2961f7694592..9fc8f85317d5 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_ReadCalibDataCondAlg_h #define SCT_ReadCalibDataCondAlg_h -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "StoreGate/ReadCondHandleKey.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" @@ -24,13 +24,13 @@ // Forward declarations class SCT_ID; -class SCT_ReadCalibDataCondAlg : public AthAlgorithm +class SCT_ReadCalibDataCondAlg : public AthReentrantAlgorithm { public: SCT_ReadCalibDataCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_ReadCalibDataCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx index bc7bdbd58dfd..0fe2b50640fd 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file SCT_ReadCalibDataTestAlg.cxx Implementation file for SCT_ReadCalibDataTestAlg class @@ -22,7 +22,7 @@ //---------------------------------------------------------------------- SCT_ReadCalibDataTestAlg::SCT_ReadCalibDataTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_id_sct{nullptr}, m_moduleId{0}, m_waferId{0}, @@ -91,7 +91,7 @@ StatusCode SCT_ReadCalibDataTestAlg::processProperties() } // SCT_ReadCalibDataTestAlg::processProperties() //---------------------------------------------------------------------- -StatusCode SCT_ReadCalibDataTestAlg::execute() +StatusCode SCT_ReadCalibDataTestAlg::execute(const EventContext& /*ctx*/) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.h index 87eacd288a22..a54548823933 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ReadCalibDataTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @file SCT_ReadCalibDataTestAlg.h Header file for SCT_ReadCalibDataTestAlg. @@ -15,7 +15,7 @@ #include "SCT_ConditionsTools/ISCT_ReadCalibDataTool.h" // Include Athena stuff -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "Identifier/Identifier.h" #include "SCT_Cabling/ISCT_CablingTool.h" @@ -30,7 +30,7 @@ class ISvcLocator; class SCT_ID; /** This class acts as a test/sample client to the SCT_ReadSCalibDataSvc class.*/ -class SCT_ReadCalibDataTestAlg:public AthAlgorithm +class SCT_ReadCalibDataTestAlg:public AthReentrantAlgorithm { public: //----------Public Member Functions----------// @@ -40,7 +40,7 @@ class SCT_ReadCalibDataTestAlg:public AthAlgorithm // Standard Gaudi functions StatusCode initialize() override; //!< Gaudi initialiser - StatusCode execute() override; //!< Gaudi executer + StatusCode execute(const EventContext& ctx) const override; //!< Gaudi executer StatusCode finalize() override; //!< Gaudi finaliser private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.cxx index 5a640cc02b8a..de3a7909cc3c 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -18,7 +18,7 @@ #include "Identifier/IdentifierHash.h" SCT_SiliconConditionsTestAlg::SCT_SiliconConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) + AthReentrantAlgorithm(name, pSvcLocator) { //nop } @@ -31,7 +31,7 @@ StatusCode SCT_SiliconConditionsTestAlg::initialize() { } //Execute -StatusCode SCT_SiliconConditionsTestAlg::execute() { +StatusCode SCT_SiliconConditionsTestAlg::execute(const EventContext& /*ctx*/) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.h index 81da94f63505..d2107c19e67d 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconConditionsTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -14,21 +14,21 @@ #ifndef SCT_SiliconConditionsTestAlg_H #define SCT_SiliconConditionsTestAlg_H -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "InDetConditionsSummaryService/ISiliconConditionsTool.h" //Gaudi #include "GaudiKernel/ToolHandle.h" -///Example class to show calling the SCT_SiliconConditionsSvc -class SCT_SiliconConditionsTestAlg : public AthAlgorithm { +///Example class to show calling the SCT_SiliconConditionsTool +class SCT_SiliconConditionsTestAlg : public AthReentrantAlgorithm { public: SCT_SiliconConditionsTestAlg(const std::string& name,ISvcLocator* pSvcLocator); virtual ~SCT_SiliconConditionsTestAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.cxx index ee364b6bedf0..6c1ab5f66c02 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_SiliconHVCondAlg.h" @@ -12,7 +12,7 @@ #include <memory> SCT_SiliconHVCondAlg::SCT_SiliconHVCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_pHelper{nullptr} { @@ -43,11 +43,11 @@ StatusCode SCT_SiliconHVCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_SiliconHVCondAlg::execute() { +StatusCode SCT_SiliconHVCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -57,7 +57,7 @@ StatusCode SCT_SiliconHVCondAlg::execute() { } // Read Cond Handle (HV) - SG::ReadCondHandle<SCT_DCSFloatCondData> readHandleHV{m_readKeyHV}; + SG::ReadCondHandle<SCT_DCSFloatCondData> readHandleHV{m_readKeyHV, ctx}; const SCT_DCSFloatCondData* readCdoHV{*readHandleHV}; if (readCdoHV==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); @@ -74,7 +74,7 @@ StatusCode SCT_SiliconHVCondAlg::execute() { if (m_useState.value()) { // Read Cond Handle (state) - SG::ReadCondHandle<SCT_DCSStatCondData> readHandleState{m_readKeyState}; + SG::ReadCondHandle<SCT_DCSStatCondData> readHandleState{m_readKeyState, ctx}; const SCT_DCSStatCondData* readCdoState{*readHandleState}; if (readCdoState==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.h index b7849d34378e..0ad9e131c0ce 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconHVCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_SILICONHVCONDALG #define SCT_SILICONHVCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "StoreGate/ReadCondHandleKey.h" #include "StoreGate/WriteCondHandleKey.h" @@ -17,13 +17,13 @@ class SCT_ID; -class SCT_SiliconHVCondAlg : public AthAlgorithm +class SCT_SiliconHVCondAlg : public AthReentrantAlgorithm { public: SCT_SiliconHVCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_SiliconHVCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.cxx index ebaa2fbd8e7c..3b7fd66f69b5 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_SiliconTempCondAlg.h" @@ -12,7 +12,7 @@ #include <memory> SCT_SiliconTempCondAlg::SCT_SiliconTempCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} , m_pHelper{nullptr} { @@ -43,11 +43,11 @@ StatusCode SCT_SiliconTempCondAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode SCT_SiliconTempCondAlg::execute() { +StatusCode SCT_SiliconTempCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_DCSFloatCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." @@ -57,7 +57,7 @@ StatusCode SCT_SiliconTempCondAlg::execute() { } // Read Cond Handle (temperature) - SG::ReadCondHandle<SCT_DCSFloatCondData> readHandleTemp0{m_readKeyTemp0}; + SG::ReadCondHandle<SCT_DCSFloatCondData> readHandleTemp0{m_readKeyTemp0, ctx}; const SCT_DCSFloatCondData* readCdoTemp0{*readHandleTemp0}; if (readCdoTemp0==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); @@ -74,7 +74,7 @@ StatusCode SCT_SiliconTempCondAlg::execute() { if (m_useState.value()) { // Read Cond Handle (state) - SG::ReadCondHandle<SCT_DCSStatCondData> readHandleState{m_readKeyState}; + SG::ReadCondHandle<SCT_DCSStatCondData> readHandleState{m_readKeyState, ctx}; const SCT_DCSStatCondData* readCdoState{*readHandleState}; if (readCdoState==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.h index 82b7e6a3e565..d62884401a98 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_SiliconTempCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_SILICONTEMPCONDALG #define SCT_SILICONTEMPCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsData/SCT_DCSStatCondData.h" #include "SCT_ConditionsData/SCT_DCSFloatCondData.h" @@ -17,13 +17,13 @@ class SCT_ID; -class SCT_SiliconTempCondAlg : public AthAlgorithm +class SCT_SiliconTempCondAlg : public AthReentrantAlgorithm { public: SCT_SiliconTempCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_SiliconTempCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.cxx index 876d4a8c903f..0cd077688362 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "SCT_TdaqEnabledCondAlg.h" @@ -13,7 +13,7 @@ #include <memory> SCT_TdaqEnabledCondAlg::SCT_TdaqEnabledCondAlg(const std::string& name, ISvcLocator* pSvcLocator) - : ::AthAlgorithm(name, pSvcLocator) + : ::AthReentrantAlgorithm(name, pSvcLocator) , m_condSvc{"CondSvc", name} { } @@ -44,12 +44,12 @@ StatusCode SCT_TdaqEnabledCondAlg::initialize() return StatusCode::SUCCESS; } -StatusCode SCT_TdaqEnabledCondAlg::execute() +StatusCode SCT_TdaqEnabledCondAlg::execute(const EventContext& ctx) const { ATH_MSG_DEBUG("execute " << name()); // Write Cond Handle - SG::WriteCondHandle<SCT_TdaqEnabledCondData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_TdaqEnabledCondData> writeHandle{m_writeKey, ctx}; // Do we have a valid Write Cond Handle for current time? if (writeHandle.isValid()) { @@ -68,7 +68,7 @@ StatusCode SCT_TdaqEnabledCondAlg::execute() EventIDRange rangeW; // check whether we expect valid data at this time - if (unfilledRun()) { + if (unfilledRun(ctx)) { EventIDBase unfilledStart{0, 0, 0, 0}; // run 0, event 0, timestamp 0, timestamp_ns 0 EventIDBase unfilledStop{s_earliestRunForFolder, 0, s_earliestTimeStampForFolder, 0}; // run 119253, event 0, timestamp 1245064619, timestamp_ns 0 EventIDRange unfilledRange{unfilledStart, unfilledStop}; @@ -77,7 +77,7 @@ StatusCode SCT_TdaqEnabledCondAlg::execute() writeCdo->setFilled(true); } else { // Read Cond Handle - SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey}; + SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey, ctx}; const CondAttrListCollection* readCdo{*readHandle}; if (readCdo==nullptr) { ATH_MSG_FATAL("Null pointer to the read conditions object"); @@ -157,8 +157,8 @@ StatusCode SCT_TdaqEnabledCondAlg::finalize() return StatusCode::SUCCESS; } -bool SCT_TdaqEnabledCondAlg::unfilledRun() const { - SG::ReadHandle<EventInfo> event{m_eventInfoKey}; +bool SCT_TdaqEnabledCondAlg::unfilledRun(const EventContext& ctx) const { + SG::ReadHandle<EventInfo> event{m_eventInfoKey, ctx}; if (event.isValid()) { const unsigned int runNumber{event->event_ID()->run_number()}; const bool noDataExpected{runNumber < s_earliestRunForFolder}; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.h index a867908b25a2..fe44a73c1c2b 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledCondAlg.h @@ -1,11 +1,11 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_TDAQENABLEDCONDALG #define SCT_TDAQENABLEDCONDALG -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "EventInfo/EventInfo.h" @@ -17,17 +17,17 @@ #include "GaudiKernel/ICondSvc.h" -class SCT_TdaqEnabledCondAlg : public AthAlgorithm +class SCT_TdaqEnabledCondAlg : public AthReentrantAlgorithm { public: SCT_TdaqEnabledCondAlg(const std::string& name, ISvcLocator* pSvcLocator); virtual ~SCT_TdaqEnabledCondAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: - bool unfilledRun() const; + bool unfilledRun(const EventContext& ctx) const; unsigned int parseChannelName(const std::string &chanNameString) const; std::string inWords(const unsigned int aNumber) const; diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx index b46bc826748c..bbdb97fbd98d 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -20,7 +20,7 @@ #include "Identifier/Identifier.h" SCT_TdaqEnabledTestAlg::SCT_TdaqEnabledTestAlg(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator) + AthReentrantAlgorithm(name, pSvcLocator) { //nop } @@ -35,7 +35,7 @@ SCT_TdaqEnabledTestAlg::initialize() { //Execute StatusCode -SCT_TdaqEnabledTestAlg::execute() { +SCT_TdaqEnabledTestAlg::execute(const EventContext& /*ctx*/) const { //This method is only used to test the summary service, and only used within this package, // so the INFO level messages have no impact on performance of these services when used by clients ATH_MSG_INFO("Calling execute"); diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.h index 859c32686f90..8264dc23f50f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_TdaqEnabledTestAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -14,7 +14,7 @@ #define SCT_TdaqEnabledTestAlg_H //Athena -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_ConditionsTools/ISCT_ConditionsTool.h" //Gaudi @@ -24,13 +24,13 @@ #include <string> ///Example algorithm to show calling the SCT_ModuleVeto to exclude bad components -class SCT_TdaqEnabledTestAlg : public AthAlgorithm { +class SCT_TdaqEnabledTestAlg : public AthReentrantAlgorithm { public: SCT_TdaqEnabledTestAlg(const std::string& name, ISvcLocator *pSvcLocator); virtual ~SCT_TdaqEnabledTestAlg() = default; StatusCode initialize() override; - StatusCode execute() override; + StatusCode execute(const EventContext& ctx) const override; StatusCode finalize() override; private: -- GitLab From daa458a83eee08623584f2e72420e26e3c01d9ea Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 23 Jan 2019 20:54:31 +0000 Subject: [PATCH 074/192] Add the fix for ATLASG-1478 --- .../egammaMVACalib/egammaMVAFunctions.h | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h index a66bd2ca6fb9..900f75b92f18 100644 --- a/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h +++ b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h @@ -207,23 +207,23 @@ namespace egammaMVAFunctions std::unique_ptr<funcMap_t> initializeConvertedPhotonFuncs(bool useLayerCorrected); - /// The ConversionHelper struct used by egammaMVATree - /// but not the functions in the dictionaries above. - /// (Might want to consider deprecating) - struct ConversionHelper + /// The ConversionHelper struct is stll used by egammaMVATree + /// but not the functions in the dictionaries above. We could deprecate them + struct ConversionHelper : asg::AsgMessaging { ConversionHelper(const xAOD::Photon* ph) - : m_vertex(ph ? ph->vertex() : nullptr), + : asg::AsgMessaging("ConversionHelper"), + m_vertex(ph ? ph->vertex() : nullptr), m_tp0(m_vertex ? m_vertex->trackParticle(0) : nullptr), m_tp1(m_vertex ? m_vertex->trackParticle(1) : nullptr), m_pt1conv(0.), m_pt2conv(0.) { - static asg::AsgMessaging static_msg("ConversionHelper"); - static_msg.msg(MSG::DEBUG) << "init conversion helper"; + + ATH_MSG_DEBUG("init conversion helper"); if (!m_vertex) return; - static SG::AuxElement::Accessor<float> accPt1("pt1"); - static SG::AuxElement::Accessor<float> accPt2("pt2"); + static const SG::AuxElement::Accessor<float> accPt1("pt1"); + static const SG::AuxElement::Accessor<float> accPt2("pt2"); if (accPt1.isAvailable(*m_vertex) && accPt2.isAvailable(*m_vertex)) { m_pt1conv = accPt1(*m_vertex); @@ -231,7 +231,7 @@ namespace egammaMVAFunctions } else { - static_msg.msg(MSG::WARNING) << "pt1/pt2 not available, will approximate from first measurements"; + ATH_MSG_WARNING("pt1/pt2 not available, will approximate from first measurements"); m_pt1conv = getPtAtFirstMeasurement(m_tp0); m_pt2conv = getPtAtFirstMeasurement(m_tp1); } @@ -247,8 +247,7 @@ namespace egammaMVAFunctions uint8_t hits = 0; if (m_tp0->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; } else { - static asg::AsgMessaging static_msg("ConversionHelper"); - static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits"; + ATH_MSG_WARNING("cannot read xAOD::numberOfPixelHits"); return 0; } } @@ -257,8 +256,7 @@ namespace egammaMVAFunctions uint8_t hits; if (m_tp1->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; } else { - static asg::AsgMessaging static_msg("ConversionHelper"); - static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits"; + ATH_MSG_WARNING("cannot read xAOD::numberOfPixelHits"); return 0; } } @@ -267,8 +265,7 @@ namespace egammaMVAFunctions uint8_t hits; if (m_tp0->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; } else { - static asg::AsgMessaging static_msg("ConversionHelper"); - static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits"; + ATH_MSG_WARNING("cannot read xAOD::numberOfSCTHits"); return 0; } } @@ -277,8 +274,7 @@ namespace egammaMVAFunctions uint8_t hits; if (m_tp1->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; } else { - static asg::AsgMessaging static_msg("ConversionHelper"); - static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits"; + ATH_MSG_WARNING("cannot read xAOD::numberOfSCTHits"); return 0; } } -- GitLab From 9f12f6e3d40691d75d3fdeaa8b7556840ca366e9 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Tue, 22 Jan 2019 15:11:16 +0100 Subject: [PATCH 075/192] Upgrade to flake8 3.6.0 Update flake8 and all its dependencies to the most recent version: - flake8 3.6.0 - pycodestyle 2.4.0 - pyflakes 2.0.0 --- External/AtlasPyFwdBwdPorts/CMakeLists.txt | 12 ++++++------ .../AtlasPyFwdBwdPorts/src/flake8-3.3.0.tar.gz | Bin 134345 -> 0 bytes .../AtlasPyFwdBwdPorts/src/flake8-3.6.0.tar.gz | Bin 0 -> 144684 bytes .../src/pycodestyle-2.3.1.tar.gz | Bin 89460 -> 0 bytes .../src/pycodestyle-2.4.0.tar.gz | Bin 0 -> 96665 bytes .../src/pyflakes-1.5.0.tar.gz | Bin 47526 -> 0 bytes .../src/pyflakes-2.0.0.tar.gz | Bin 0 -> 49002 bytes 7 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 External/AtlasPyFwdBwdPorts/src/flake8-3.3.0.tar.gz create mode 100644 External/AtlasPyFwdBwdPorts/src/flake8-3.6.0.tar.gz delete mode 100644 External/AtlasPyFwdBwdPorts/src/pycodestyle-2.3.1.tar.gz create mode 100644 External/AtlasPyFwdBwdPorts/src/pycodestyle-2.4.0.tar.gz delete mode 100644 External/AtlasPyFwdBwdPorts/src/pyflakes-1.5.0.tar.gz create mode 100644 External/AtlasPyFwdBwdPorts/src/pyflakes-2.0.0.tar.gz diff --git a/External/AtlasPyFwdBwdPorts/CMakeLists.txt b/External/AtlasPyFwdBwdPorts/CMakeLists.txt index 12655407ce54..6bdc5a22dffa 100644 --- a/External/AtlasPyFwdBwdPorts/CMakeLists.txt +++ b/External/AtlasPyFwdBwdPorts/CMakeLists.txt @@ -124,14 +124,14 @@ _setup_python_package( jsonpickle # Install pyflakes: _setup_python_package( pyflakes - ${CMAKE_CURRENT_SOURCE_DIR}/src/pyflakes-1.5.0.tar.gz - 84a99f05e5409f8196325dda3f5a1b9a + ${CMAKE_CURRENT_SOURCE_DIR}/src/pyflakes-2.0.0.tar.gz + 06310b7c7a288c6c8e8f955da5f985ca SINGLE_VERSION ) # Install flake8: _setup_python_package( flake8 - ${CMAKE_CURRENT_SOURCE_DIR}/src/flake8-3.3.0.tar.gz - 3df622aac9bad27c04f34164609bbed8 + ${CMAKE_CURRENT_SOURCE_DIR}/src/flake8-3.6.0.tar.gz + 178485aed0799655d0cbf2e3bdcfaddc DEPENDS pyflakes SINGLE_VERSION ) @@ -155,8 +155,8 @@ _setup_python_package( mccabe # Install : _setup_python_package( pycodestyle - ${CMAKE_CURRENT_SOURCE_DIR}/src/pycodestyle-2.3.1.tar.gz - 240e342756af30cae0983b16303a2055 + ${CMAKE_CURRENT_SOURCE_DIR}/src/pycodestyle-2.4.0.tar.gz + 85bbebd2c90d2f833c1db467d4d0e9a3 SINGLE_VERSION ) # Install pyinotify: diff --git a/External/AtlasPyFwdBwdPorts/src/flake8-3.3.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/flake8-3.3.0.tar.gz deleted file mode 100644 index 9b44bcb6c48d45608178a020f452f86b3b1f1c3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134345 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%0DS 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 bpUr3U*?cyi&1duZLx281qZ*?I0N4ot*R-8y diff --git a/External/AtlasPyFwdBwdPorts/src/flake8-3.6.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/flake8-3.6.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8490781980b381b5ad119e8a585e6aa0c03977f0 GIT binary patch literal 144684 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�@dipHt$$N_?BDqdtk8^DAyvg7z1p@)|SHhd0O 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±aOe!^87UP*TcJ}$Ygc+leydcNJ~)tN!o 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%0A3a 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 Q#~|2yx#%jeQFyTb1BOU*k^lez literal 0 HcmV?d00001 diff --git a/External/AtlasPyFwdBwdPorts/src/pycodestyle-2.3.1.tar.gz b/External/AtlasPyFwdBwdPorts/src/pycodestyle-2.3.1.tar.gz deleted file mode 100644 index 76de22256ccb0d2dc36056a734cf935405e2408d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89460 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	e`_8oV{ADwujd14L!Bxa%C^R_`oRK54j}<{<54- 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 diff --git a/External/AtlasPyFwdBwdPorts/src/pycodestyle-2.4.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/pycodestyle-2.4.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..193aa08cb6c46769d5e8305ec89f8ea6e74b2e72 GIT binary patch literal 96665 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%0A8@F3d#_=kc*kQl@J`t0 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 literal 0 HcmV?d00001 diff --git a/External/AtlasPyFwdBwdPorts/src/pyflakes-1.5.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/pyflakes-1.5.0.tar.gz deleted file mode 100644 index 7815ed8a17df702d5e50163ee7596543c3ba6016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47526 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 SS^xYwe*QnRp3O@D5Ci~`!hGuh diff --git a/External/AtlasPyFwdBwdPorts/src/pyflakes-2.0.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/pyflakes-2.0.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..95d6d3e5d514d517dab6ff358ae26190e6aae9bf GIT binary patch literal 49002 zcmV(rK<>XEiwFp~tN~jB|72-%bT4puW^7?=WpgbuE-)@IE_7jX0PMZ{dfP^lIGVrt z6j=G>Bk54EF22lYqwL6%oNyycT1%e9pQ0ZPlAwe!32*_>633s<i=0O|?{NOx_d0dy zZgc|;5R@p#nT>WQmdL(Ub#--BbzP?O(b)UoC+l18hP(0Pn}_(>fS(sHp5ecnFP?4a z|H_|lHn+DoHnz8(Z@qxeH=l02*!;$M_RSagnI)+gJI*&jI1H|$@^*{9mw?EB{~$k8 zbN~0=p8s_6=4|!*|NQyW(*1w&^cn2`=Ch~J?8U|w?Ef?Pzi*t4KllH^fA*s=jf4Iy zjpC%SuKhF`kDb%&VC=k#qa=0KomWvj@nh#8_&AA%&bjYRpvCLRclP?xZ2aNc58|>` z|LJ?-`l&Y?JNw>v=*Lm$mo@!yJfB`WNB-zTbQ7fiENgZi2e5CUbLNkOtBDteI7<|I z={0<K<b_v0j^#)3mGd(8!r>VHd=rJ?+&LXV>tt{}35F?r`1c^b0w51&)7VSk@1OmT zLFoMArKum|-(47QKZ=K5GKk>MSK}!5!_@gT7>sA32cH~76F+o*j{fKW^I}AZ7Y|^7 z{lNd9{|62hd~%lhAECwTc@W}+-K)?`oY%nzZ|wc!fBs+iqtQ6?ea9Ook&|Bg&OqA{ zXAEFEQRw^_q(9C2JB{l!ohCa^o?Hd#^{np>qRErf`Tl?HJ(1`5$yMx4uahVGD2@8( z|M>8iGdI0Wzu@_YUtheC{Que0t*3bYpKiVQ^Zb8_AKG@OwY9PNm-UTj>suS`h69K0 zAdaR^GMi4LICVx*>>QpPIj8gV8ffwRE%${3XUf@jx7N4aZR)Up?GHXs%UL)}{GsFD z4*Y2vK>I$TF1&K!SiI*?ciubwaWwcqJ%7UE={pIKD>NDhaPYjblg_7bCc-dEJsc#V zrf_!P_&KpZ^hZG$&=*cLa^CmecVOPJpTM7Sa215!cszHg6)dGccY+B*LW7(MsNVN_ zgRz$+z218VSj}}bgU=FwJbI5S6|gdJ-6WaeY8*d~0YZfGee4B^?;J;IcQPIOzynf$ z*m7OB{l3xIbe{{PzF6M?ylyj6PvdBSOB~I@0bvGs3PAbMivzDeHo#>}A|69;;xqKG z0FQEAqX2+a%l2<mKTN0}z?u>(POkkv@IhS6vurV&>l=UN#T<q-r@qIhho{c7t><zb zFgc(nxC#-t1P6L52711}2|K^h-Vs}m{1!);0Ncb(ge~b3!q4Dry#|my_&$xCK5@4M zcpCChT)h*)YGcN0Vr&mC=ILMm;;fC<nKY6$T*9_m!p2_#9I=E~!7X6sbiU>M0!WH( z5~mCM0jv;_dG04^k|WaLY&s4G0HZSuXfM2Y?tJj)i5d=jz4m|-QtXaASPZRNtRasL z!kNEDr(vxh``(8&XMmF=PJpzE$e7Nz-Dl0jS@V*4IKbK0oN*LQ5t=P`TSD^;aH>Ib z4)lLW)OK?Xx5t!82gi&3F@W{a7c`ylI9u5`8_&f!dmp1<=%leX08#+JX{7921__*y z@j7gCAV21@HfgM9G}be1O(VFYeCLfX&ebm<9r$ngv?ETFSs!lb**Led4Q*xHVzghp zICQ)#KrdWxu|FfgvXv3dJKhLb0bPlLYcSKmtuRmL1h516pq7NP36mV3B5g67*<!Xc z;@KOIqZ?-ei)poyO1%Nj=6Lbdj40nV=<;vS66o=EeKH%T0aFpK8BQ{gTNG2{zkB0g zh}6~Vjb`aA_Io|G4vEcSG(gf4OaOlcBxKmZrKdopJ|03pX0C8^9Sp8vWhgG(c=H4{ zcjlXY)_5N0@tOmt*zr<FY|0qKkZ}Qd`(6qof&?{(b};S-AadfVXY(-iZV$7A$%jWC zOLZ#gyA~b*&l&kQJW4VPhj5_!v#U{X>nCkQzPx9i;mO^S%tJ25eI{9v>(D`Y;@x-w zU<VlyZ39y2)B{8eW@9gQ6&?|DJ#QMg)46s^`TN6hFoDYeHo_Cs%k;|J$+-cfA?4A* zK=MJtbFM)?>-&BPBRFtE;F5p~$631?M}2P$OlZUXt2l0W*48&)Xh+1$A2-k8etg>a zJ_0~c0;Y}c5bvNf1Rr}L@k5s<*~}&ZuFaFYof2J1ISuJG2tgJd`VMy4=m;9Q_J#xm z(!^B+(rhRO-N+92wmbocw}9y@T=-}P7iWhkhuE_QPY1Dk*8Q=2d`@eIUr)QIhuKEJ zI-)rC2Y8|hy+B1k2Lfn9Eun-@``DZGhaMd5X^e~wsXJhlU-=;)CH+gD<{%22sWSjk z{Tf$uaB>C$1EA6;2}9@7v_wH%TW}p~-NowQI?t^x7!eUPfh#rz8V4S2jmHh>3Imzj zr*&q%1DqKI4!978B$bf(;otg$8Qh|-y!?Sfz{l4t?+k;{$Ol~l*gEb!3HmTJ0DR4N zxnK;MEaDpMj>ZwUtv`edcHkw*HRA{t<}{h?nu_S8lp!$rMj;`SX_~PQyee!uAX6m4 zkPeLyRfu^0A}I1HvQKsWANVQmIbu#7762=fGM~BngNTSr?13)HAsm8t;YolyasbCh z91`9dCJ#POykiL;9UqQ1&{j<7!j&-3b2S#1?Us_a5bbagYXnF131<PuC4G!HKcRW4 zsqAYYF-Jxu9=5!W({DSwPHVH{Y_&n)1vw2NC%z6V<VnYZlBRIL5MNn8#C)s$UVy*{ zi)32DHuIKHAPi=fH*cbN39Jb;ZtWhUsQ}3y+>fv&!%oKc_yamK8TN1_`ZGbO5Hzuc zLBgsf638qBQ6x@aLtrqtUr;a=#IlhQ%a#;v_J-ax!@=I!xj`XMGiEXXI!c{slnB}g z^$SUBCRu?x>bK0e5;&#miY;{A8v>xwtqY{bADqK#-k-jEb+q^M;aTta<ltog{P67j zJy7z;AdW}`&Im`|5J<*jV2?wdQ&MO)Q1vh^*$adRf)qEx!yBpX(m)4d{UlP-aY}%O zZh&_rH~?ujVw?ZnNqjzpwy9_|;9fop{Xv>1E4Ww_JP?DJE?d}6P>+C%f!y-lu5$r; z&E<RjG%=?TcZ4J`=r7ntcA{ERY1~D1v28E`WOri}vAsSiUp>;i#HLA(kBaEf2evpM zjf5#Rao$g7$@MG2oz9R+yeIOd&-YQU;}3}zUkEW9gg(%LBrTe($a08n7ZFW@I)g)^ zo<nFi`8J4Lq*$`VCBTpnIPXc0f;+wp0R4LnkR9d}Np1wu69sAC8%nk`!3zSg2KOSc zVv>vA0+&U+ZmH8JuuS;blK6SLzV%d-XArVk>Pi0mUQncdpzs0?BeD2FG=85Qv3?Yd zfuI2+l3}Q|Bjt#}-jfi+s=c}S-I4v^SWhaP4cLp0lY9uKxp5Aw2YLCndvxACK6@`j ze_;Ly_{3XJd^i|LcYFhoF%B5$P~P&u)q`=m9tf31Aaheg=C(p6PT3DaWvP1);%DMa z0@mvA-tuC&*v69VBv%<KcAK$1rdd*&NI=K#VHB?Ko$YtK#DiIdYGrJ(Ef%+tElx?U zxL51z$j2pxudiSG<0<f^G!wp*;bh8#u1}l{mTaaMy6Ck{6U#X?IuKR?7YPRUUz|et zb2dRz8^K=Ikr>o=B2|0YpGu;pU8C(YPbqz;32aMGW))KrcEuLZ&VZc4m^g74Gaq#? zgA_$~I!JtY?MssI_?kI}wsZ#HYq~Rwm+?~Iuvi|lwFjxna|}&h&_8L@a5|95ulpdr z4pNgclBquk;8c+4hQ{j;KHeirg}8=}Xl}!SrgIlhs5yYT=*;s=+6CF*2>kO|{2_pA zpQfSJ1Lt_(44N(s<Hw-I@9sMAr*6pGBJzKpoz2blt-orFj^(NxV(46Xvn#gl>DDkY z+J<E`Wxx_Az?n^vz_;CPknB7p%ZN8u9-i$FxWE5U*gOSd^5c&_(G9TPelQNwIfJgC zc}AxU*#+Dy#Mk)rlJ3r}a;TjpX*3a};4{mRj11Su@;i%+Z$u+kvyUjFr9nlwlRzqd zOeQKoeo9&paI6`({unT^%5Pmb7%=h^(6M|q18zVvoy9>kOU&_whEA*14r`r51U;k( z6DZB%v6PTArX&<bHnw@l`#*q;6`HIa_Y9E@@=A(^&cs6aqd6U&;^mM?twi2_?=u`l zv96jjkqevJ-_`Nd%@jg=rV|E~j(C~H^d?2BlB?U)0qM|xk|^;sQ_O%$l4uqWd^ROl z2oC2rXs;dS#Rl7r0DC)|q8)~>b(Y6+Uky<xil$PUjC~Y}l0h7RUcj(X(-cGpkn#Yo zc;1^v0h~FyC#1dF*o+R57~4T`1Z4w)Ln@8mn`AJSvfq9b!huQE8N{JcwhH|lKX!Uv zf=cKJlndIV89q9AWT~bHMm(5-VzOtN2_5=72?<BIGk6)cvSs0&Al^5UPEl|aU`PQ| z7^Tf7;xc^=YX(%nvRKmO+kQwibOqz~$p$bB(_k#jsN60)S%e#5&j-W+dbV^^Zzf<M zR0BX2%IUgIP#8$YXz3ywOgNkL{aEY-KL!Mn31x<NfgB;Wkg+fhuA&%D{&-$;88CEo zCKMq{cm@&Q!5PveBb4f{V42b^_Ayg`gyn(_4H?hRjI4}C(%gY+V~ugh1Lnshz(t{i zh_CLLSOJMO-q3Q;?sz^WW|*1rJ(;HRkq9~<|3Z$)RzaoR2?hxhOr$j<mR5ZEUMB=t zeHuJtbiQykxH{IXrA1cikfij*^m#B)dgFUXf25<!ik>4f%F-uhvKc8OY(n@SGv~pB z=iBUzib7z0`az&|!Yw)_!&Ib=%76q+rhPJ)3Es^8bHGVV5cBT!;5NQS$fQX(#19e1 zUJqCs>zdo@Oo3348OeeKxRtQ6tK$K*s2wTwY@y!>__pSZ#`6iDc!FydPEZ9$ya3Y# zD*Epk2!|l+lL=B9Hyvc9Lh+~LsSy-O%Jh6e-{?oOEiZyW1d`xC@d1NwF}TFw9;Mq+ zzhq5|q++J}qoUydN<7(ex7R^@DR9nUw2oH1yfB@kIe{B`?GQRI**^(?5i3Fdt$1L> zljGo?C3!AXe3lVxlAj~<)1jDPazrvO;Tv_LnJtrR53U_(VxlGMNd|FdDtv)AzBd0a z<wo-R`u{z9vGL+h|G(dJ|M@}fi}?RM-FUGj_y6g$txeef7aQB#fBOG?iJ!H#wZ`6Q zS4sC|_X>yWbTf26NqYF~pg`_6u=ywkJ+i<-iBb0y=WH}2Q=BLA*GT;q`|>vwwHrL7 zx<15L16GzgFqgPJdOdqfsnp^H1=^@oUmFdn0PZ>$O&YG*arl>0xE9nOaNW&df{#9a zf&%&(-IV*F*y1PX8qmCKG#aPx&VM>N?w$Q~_;T;~$KIR69}j<pv12r2kw(z!$Ibuq z=-=GOzxDavyV%;kx%`jc`oATQ|F32nhJf3X0c)Xc=ZxOaJIZ3$QK0M|N1@+lqc0*I z|K<A&cS*>!;zGX)(7~`jclJMJgMOwhWjujkg8l!7#>|P6wb`L}4|6aOmuP+b0`WKU z!_s@~e*&H8voWAtJrBp~GK+F_1Je@{4?ZB%I&5Kw#d&4;qv7y}#b|x<Y;?=i5?wpa zo^$j`Zv1DG4ZLvRcZ79FNarL_NRz@%0P=0$S5u3zh7w!+#vy<r<p#l0-Tes~)Q4iJ zF|HMt2%73=W7j~cRrDDo4({tte$E)ENF!XghvMD=TVv#htv2;~1Tt`(q#db*0;uS- z64GND!YAIB4MmF=32I3;a~k_T%qj`jPK|5$hP~FIQ|g}1_h0o+j*s5;U@Be=n;mr_ zHk;t1H=f}PzyMrm*F&kd)xOxgR4pdS6?{+aTra*#E;cS3>dO|tD|Cb{xZ|Y$ZQ54t z<+uEoY{P$H%WR-vBsqzD`tI~ywm_+JK<nbh$RC_1Av{U^xFE>~DSa-sBsU-+j~1V_ zoga1`UTAS(+5?=Ln<N+95adP;L%ER=m68=AI&u8gcE@Sc#s`U{`W6n{0geEALEAoc zfgUQ>hyS>!Y7hNZ(@O?H&}^6X6D09A46ywH^~zC3#Z<TnMmyeFXMNY%%(nCqz6_C8 z*i6WUL2AuHq0aPaB;}4UTV>nqHfrtvBjG{EW+|Z74r*0GgQ90!)VSDMh|U)sbR9sa zK=f-9M*3{5esncUq>hJnBzh(cK)W^+f5kSHGsTTi*|VW$Ax-KUA4^u^&O*?k=(T|G z-pY=1Q{sm<lT1>?m$mIg9c;%wZjzmHZA?Oo^{i@4jvk9Qb(V1`A1sQz@O}UolRa`y zK6rE77a$Z`{~!$p<el>oUG!WBw*7|rgD?v@&J7-S!7+rvwuRg>V~jl8jjI&)1Qy=< z;Lmr3SJPz2nFtouR!=9=j2nbnR}1)bXSYP_c0&USIZM{n5GPQcX)P;8u;73iatDr1 z5VDdwL${!LcG2<ENOmuNxtlk&-@LR`@h0^^x2(Y$*-?24$k!+_?l;>gZ;s5<g6s~Y z6m;Nm(fHRgE=s`_bNuiD2w%+CJ;_bQS8n;0Tw^IP1mD)1mnD;nKQb{F5Mq;YB>@Ks zi=g;Mt|rQe_6-kr9?!@{Pd0G)Re(Hpb+>p|BMI5o^}}I;+t_M?R@-dv<QI;EHyS$A zkNO|!IqGoY4H5@mFK1J>#g-4g_J6Mxhkk{Ar#$w=yY11X412J-^_Rx|NKIUsg3i>~ z?Yw|P24QGhynu}rR*_8+lo1M{J<<||fS`*-D9LI4Y<iPRR?Jp5j-m!b|7wx_F2}*T zDLF_u5gO&uN^Pnz92|jBSf8l(XOnZ$XUMjsKL?u#9p@lGt8x?vzG6}Mx(ccx`4W(r zJybYB9*GZHJllw@da~C%@W(?Rua`Y&g+|F?acnh`XboGu9tcrgLP{1?SROk+<GOXx zB}!cU&<zq8o-mb@_9)aLh?&E~FJuJoXbvLiik!GN-uQ#9yBtCtxggB?+T}TPASOFG zkcC{{Kj5IY)H2LV)FS1Y>_CoJA;%K_vY9Jn8E#39w7XNO|4eKegEGlZwL@25x<rxo z?n89Qylk|~Z-9zo8rkha!X@&5OE<U9{mi#AE?hq9$ZHiRRe?B?9m!K5+)UHRt)(2( zaWF|)eYfjuDB9-bp9%`EIQqs2-|cEbPd0>pvuNB$b`x9P^KXOnBs>eQLT}tkf~#Y` z)>x{_ww&MS5_(F(rs5@nu1*vcsohzmj2($D8YWIl_{Mh#M*r5s5V5v+pQYys^bPXp zDTw4y&?IO$`EU*6cBD(35THn5m;_hX=+PS_zKL9EY@-EO?iB=+cWD<Nh|v+N#f>|T zK!G8s>`70p+(qz+tvQSka$@lC4%Q+YwC{xv5yF{;;%P$xDT+6B-`R(Q(U0-LTRa{m z{9K7|>QTxF5m*&ifRDAYD8{z0CUSFES3?AIjHG`QLJ!-cQJ37=mZStb8qrlO$!Ld= z+L5CgIQ%;rBMSKIqAEhp<<lrhg1$76G0L(ikq*5(r|gj4OeCeaPB%1m1A4ITX{^nm z@We!0Lxz#5m&mg~K~ErBUXh;AL08@+r!pL(2L{VpO79i!8f(%HyXNNTFq)?1Q7lC& z@!q}mvp?@gUOc4myf~gsQxQA&GLAl=DiTcnH7yc_x|;{K$ss6cmvvp&Nz!OK^@l<Z zE;dDifwr4sH)&OP2;>Ug6VgIY>2pQ}{-+}!EO#~IGtbfL^%zlTjN<WJ`lp8<wg`pv zb>nWT2i$<z-NN>E^Vb!&%QHRm(#!X4A(ba7Xb?g>0W^M3fB(=duuqC`J)0+~Kfws0 zmKy8_XQSQt=FgvhfuFMXKV{lj!6V>;_rGV`FP@w4e_I=y8-M2i_+syWr*ZTV<2Euk z7#XuoW@YsFo%QJplrgbKqhYjbMSXN%6_<uIaqc?Jrv3r(M~sMSXScC*pJ`#>y>25I zM+5zChHqV^h3u+!W&>eC-^I@253|7_8f)?ow896#XxwA7B{0AZV`)hmi<K3%`sTOE z4*b9KZPIkUby~&(JNj}um1b|TFp08njX!&QjYwqcp{uRehPbMs{M$GS3PTBky{ww` zP~LGg(+mDcH~q?eYS>^=yG`vfC~V>5<<R6^)`ia)07(zQWPkWJUJAMnrHJU61hy(T z)!54VTY$S89)SX|A5Es^U|XU=rNdtGM+9DEgCPGXfB15K6h+g&dvQ4egdCXzRd`r& z;F}ST`3FJ*TsOy2dWxQ-_<mf9gS94s{;l$Ic--U%ClCGc(OhJP_OI1N0d!jZDHnrw zY~a34mIM>e_`hR73Ta1?40<&k{FAR4V7wGdAqGO8cyrWN6+|5h781}ALP#tT&WU)< ztSv|3I7ScI$U~5LHn?^<iPfViq5NFuVl<ZIUJrUP6+;`#!O)#6w3yY}z{t2}UDsY7 zD$o?=K&F|qrOO{m^dWs!w6DgDWm^w#tHqAO#%l35U(X&ZaE{RZwiKFH(~Jo~a9Wy; z%MS<Rh+|bKM?)0K8>;Oz^YR|ZFe1?dX5<*5NiPc|YqtLY7uSJImb51#z01iU%c~@# z!UZX)@Ucvu`+CUYHTuGnsqBqE#ek&Y&;I;~BXufZH8MvboU!OF19v&YN6KzVNo{yx zwAF$O11^GA2AkCeH#-~29|Z0rSmG;kT3w_=**#nnXEH;}{a`SQQTRf2x$j>EVJLk2 zrR&a8gq^Gw<P2N}^%ZOk`~wo_0rRgM)S%7p>4|VOs7KsYgd}^3(kqp<S4SE3QhiXI z<4`0q@Yi$)pm<qA@9Kp)91<H7?=GGt_lJLrtS-R#D(2_x&nol0c!PB2NfWjV9Lpxq zmA%4UgXw4TL#hC@-;=ud{a9CO(HQazoO-w#k}gGp{V3z&7oyga#uVi>zBr*sDHeYd z*^7Q_nuEwO)CkSo>Q6Y?kxa#LmsQJrNt9ei-gHkmRY{!%%l@)!w#0Y%V7>eb`JEeN zQ}Hw|6pH&Tm&Pht?ITRn>)gOuAv%qHFNwmAe56J{vqZZWELr;a0X4meT;~@bh9mC~ z-PhgdgKw%B+2{&1?Tbu|0#j&SsDUM!zp)H8H)x@9L~<-NH&h@;js^I^(?6BjzC@0x zY)4;WmdNGSNr@#_u}B(7+d*?>5{cdL6(>-=8wx40#z>@K<&2H=(LJy!o`gyGriK63 z6ca!LSUj-B3=HwA#tx=%?;Uwbx)_o$mt;}~(gFdFF&f;OV8gn4nMC2YrWg^{NP<J3 zhssuZeiNa!ASUff20fN671}zKYau3F$CPEw$eo8UWQv7@iNqfF;eP{I)UaK;TsU&2 z17>PUw&o~$?S*q~!QD^*v8S4s!4O59X|i(RGT<{_S835o*IqK9+1m=o9wpU0#{`=t ztKE}nHz}I|-N~Ggvr|mNiSC1?7*_c^Ijx+^+u6bJ@oR62@-yXKn0m+^kr5{Uk*yRM z>x~x=_f&G=J6R}3Jc^cMcp2kM)@!x$L^iH2RN%XFF0pdC_0X1wx#=X=(QJ(RwqtET z$ZM|s`G#Hk{wp2eR}lkR`To24^eKFqkN<rB;@O|?zhCP8m(pCzjF}B}O!z$*Gq8Yq zA_5`!eb{a6jgyGNT`>92m_t}z1|kb9Wrsz>n0PIgp`J>$l%HVir}$M^P>Z3W7(d!L zeYYjt){XF|?<x9eqYdA0KP_+Ytj%6XT8c7C$n><KoV&2+bUvN;^zQTx#*D$x<RD(* z94DFy4{4Dzp$AGG@;UU*1ujVd0iSHDqzb)W6Ro%i9wk3$%47@8cDp1hR!YslF1hE9 z;^9|5$U8$HQ-`-g_=WS^w{`Ecn<)MuGQ=intny{?g$CCXr_@@P8GzFKvo~~V%{Yib zn*y!?<oLZ_TaKuiHDOgf;=w(sl2Om%lRAFtVi;wkkvTEdf=e49w;;KmyDkTIT>7w` z;k`ESF{6=8dPf_SrFVFrGlDk-ri?^n+pb9YN?#$-rZMVI;_DwUPv$l%`e*}4-Sc>^ zC%R~f&se&3zLRZ)#NM{i#NIgd<B-ygBrW{{Ctqt7GYIM$joyVjJU41P9}z|fx(MBV zG@M_Sk7q2lau9$dbV0U-eZPd?FD|Z!<4e*M;1|kn=nA<zxhzsgeFz!Ad&09iNO-%p zpYni5Cnu-9^LM9*XCxcJWaJ~k^MV-I)*xThmVep9OzPBA3Rk^XsKqBI@eqy$nshU% z7jx@G_&E|9Mib)+0C5i6lgTd=7V!}A7eeSOVK*Wc87=AZ?E`MxD-03DOG4RX68Wvq zSC1NkCjk)kv&|ps+eAV8O%6}M@5~MQ;Lm#$XF{F@*wTelI@IC>aENR%^#;<~=ZDLO z9T@${D4y#gNQl&nRzj+7ix)sv@m)0l`e@=6<?rH!)HYs^L@H4wh+Fprzq-i2xg=*Q zfnyTU^}W?b$S+mwfrz4j3k4lm0k@NUtj<}0@&uK6`0rVOT4o>x43$=P5RJ#2eKB$O zc`Vm?BinnJH0U`48u_f3QywqTlyd`SBN)?zS_sNGLig#jmc-JZh<JmE5rIi<FYx0_ z%IiRXyMPe_4Mhz&(ngS*Xrsk0^#*Vdhdsm{W3b~ylOPoy)&jLXI%vDbX>8{(N47tT z)ZkDMhX$r?rL04b@wdkvwonH^DU`2^HxobOY;tJ8ryeq2Bms^6wWccD7JWhOi*ZOQ ztD+79(UPl5>0BDTm%a6N3I2STBpZ0lgRVK}G2&Q{q(|}+u1x&|vpYL)+roXQiFw$I z1LRyK@{~fYiV;XW0X9-6f$|FW(x^x0oajc3YtG9Ah3h^`<D&F|U%N>|t@zqY2rnM; zfaXgK^lKKv{<AS(=0g8VMz!`Oqe!tYGp8beZAO$lPp%Kgp}k;=<JqKSap9t#=JOCA zKcE}=p7XOmr`EfKcs+26Lsfd?D8fii;0MNTHj$q;cSz1RT{fE})5BNvZ|*xJP56q= zw)*CC9<u!G#8GlG1j6AGy<5J>KGQJULPiL}UIiH-w)Vy3#>LFch=66dm{CCUET{)V z4oN88=2#RJF}P*jIU)y32!d$yHe_J{ADc;%&!T^USEfN`oMF*Dlq!Z;x1357$cRNK zq7V`VsS4zTM4c%WaLziE+2UDaHQkr9Xg{<m(lZpj^olBGWOV1;CKP$hY4F&-iTbk8 zlSzQ5=p1PE!S|<BNaX_s$&s?f*ra=mo)bAOoD486wBaBq-*=8aWp>ujBA1`cyG;3V zU<SEXbqipS5G_pQ(~Cj$!-tyLI7<%{fVxUgj62TM3rGxX9epBA{xgdcm~WO$<}y<S z`@iU6u_`+GnlB!{UkDR&S@@PrMs@R9w9FPMT&gL|FYgmB{K1R9;36(^SM)Q#Bp>2k zJ)C*5!?&7F?*O`Ag^T$2-@<iDq*ZWa1(a;uetY{v<~**hP^G&r@*H2_Q(ojHOAo=g ztLeyI{u2xtLz=XzyqU!wQ{F|(m5`lwYSD2Hl=~1Lc#R5nc@(ip*=vw!-x8-iZ{{~n zizA(^vxiX%)s%KGMXSo0Ajj3LtYj}&WsaE$omQIk1~X%!DV)4OMRAN`tvbv6`n6YY zYGvy2v|={e`A1&PVZF*D0d+wh+!P8eXH^q-@@JGTiD0N7AOF8qN6K{`Tf~l5PHv=T z*=fOTH_wmJ9!W&@kyMhM<m^(_76p>lb?KSLFI#GWyzeh5G%bxp%Sdeyv%ge-o)z)Y zbI)q~fpL(>D!Ce!Oz~6Ul*9R3M1tG=DA{=xfu?gUL$)Yh=gS1bI4+0;BIBt_y{6_C zsn?ca)g6w=$B*)Et{g2R2B%s_qM;+y46|jHt9aMB$jmdz3{86)=GoP?ojphyH%EQu zW6GX_@tn!(hT4Sfe7-2WpyBY6nq=!BD&5#(U~DF(9G)bDlb@`RTdMs80`Ga_z)SK6 zAWOs|!?ptruF&^~2|whD2YKZrW|&k{6DCd?(rUWR_Qm?<rFl9<HUm*OKrNBCGs`q- zS*UP9LdPK?2W0LEXjK65jovr(gJY~0bFC3m$<Sdp`l&z_wAPxzU;@OBqp^#sEL*wp znlczn?e-!;CEFn}2=)}-d*l&?aNG?{lMuginh0$Zekt<OQqXe12*znUC9UESt7f5v z(xU}lx>syMSD=)fF@#>E#z2yYqbSu%s-beiu6|mOI|gmY0=z)@O)rtYC>>QuO`B8% z{VN|zel=pFzcOpZK1=4(!$3YXsSND;!ek6dq7rAFQ#Js?t1L;#S@UH*85<JpFo+S= z>(jN!hM^J;AmU^H3R7*zQX9}$C#^+FOAyr!FnEcaGQzo556A)@*9*pqOi2czwfJnn z8OLL4NLkqxhkq~2LL1Q2P_lraD!iW1X+@=u5<qdiP!5>*Xvkj6=_!v;21CZjE(sjM zHJ$oiEYXwI{0Ssk=JqK|Iz+xC4lqndRwhAOBU6B2b!d#qE&_QM)58ai)oyE<AO;`M z9YfQibdJ1{ziVxWwQ%X`gJzd++0}1eKX<yB%P-`+U89R(&6ddvTuO&D`T6qqTkfV% zT)4nmwS~U|-808k>xpoT0(^DwDnvO!tGkYNyfo=ebR~<rmlO2#trac^TCTQc-XyC8 zMLCy*UX5IF5m|fVQ7Vj4E@Qr;<i!<orY82bAMnb~F!^tq%=D!$@4Hd%9oC)?4lT-A zf<ha2GH|Gs+_8UMsjdJ;Vf~IpsYJiZg<?^OM8s3xYC*M`NOTut8}meSL4|YBeB3N@ z{725AH@Md0Sq+r|Jt6*k=8K7SOX4GvaPVg9`+8Yg<{!v-Z_u+ZNL8A$p$`BK&7yTS zQz0Gu$ITj-(%soJ;lIF~>G-KVS;!wAIlrh9y$n1uM_HQN?Fdl?zxO8n;A(~$E1Rwk zn>=(%<*Hz>`eDz*S(8T?#y36MszAcXN$W}Xgv$4s``G(3Dc{nD3khWc{2gr09hP4U zr=bAdf_tHvt*+U&8l+pI+O@J+NM~i~sbn`{YA+QMf1+Ty$2z&_UNj$SF5Alv%`}*W zL1|vrmgf*Uq3nsP<p_*P3&<8BpRzGc9_^DueufSCo*+k4`qDrapVCS*l2navl}{*( zM&<@i3Wap-maRLoup2;-BGDzXOqP?-o0M{EEMiXv<Y+eLg6&TvTN4o$_}|*CIpkWt zQ7y7wn<mBmPa^jEv%W8m$eW%$<xzZtDv;`l6nZHpr$Bof*YrXkFiN66SDZE#vw5=Q z7AHCsHRYM}YLyUGp)OE-#sNpQA(}NxA-%}DY>_LS7Z=OQR6|yAeW5C+sHG}G;rBVR zvWtRyj!3DZ@@LA=6H4lj>0e)Exf*wNG7(U#A+k1#qP32**7xEyQL5mW3y!IP0F`?O z)iSc^tBZ;bIX<MC+Mir2=jP53K&V!}E?y{e-^g++BAd8M%_*X&Cii7-=nEwS_bHe{ zKJk^Qm3y-*K2W*aMBN7o)i_8}W^Wg2^h^G>N`NxPxF~bY6Yo@nN#VtaId*h+28(Y8 zy-o%)g(~+Z?}eR)H7l*<;n{TEurJ)j?GA_3%hiD8OT;+jiwxLOE<`ly&U=B%JQ8OQ zn@WVB!tfF2&t@xwRtuF9wJv_rq@C*x#+jQ~;knZK{3+f!LE;rpopPLxdKK)@3zcim z+%|b8Lwu%Ds=+CZGU`S%73qcNgl{r=fiYe41G;?cGhSY}%3rc0&bX?_(Bv<ge1H*$ zs<%ERdH@`8A>>^x#Wn{3z2yu4Q?pPVxk-Y8`j8ya@ly+x8ST&l#vTsP`g6(Ix5zLW z<_hGe3-RQ~7mVgR7;(iFEc|@IXSfXn(oFG2d?;xrLxBs^&Rgxg!2s#!@1lGR+8Z3L z@C}#vn@rQWOzmoP4iXiAtRI9&ve>5<N}S<{IjbfWSoC!DyHMD*fmB{pT?*0ajj{?u zwR`o<wECdZzpkV1^FRpH<gS-D%S-Pc(U|2&x^a-Q@f+DazaRO>QS~H~k!xvNjRp24 z!^)7>ZkPGT8GxxntM+NZ;eJhukM(GuX-8NXk0erssEyAWoGnX)aOAW7(6HJR_Q6GT z3Tw`dN6wFg)$!aYhN+7IlmVb%y_eA)%B%)N_=wt*^dlJ*rS--F2U)S{-s`;|yZgN# zk4|3h9i34<Gtef2v0@lml}`LyuW3z{%d{|x%r|OBL^d!*Cmit*a4stPUFL<!%JOKQ zh<pn+gCS^<;((rn%92lEne2EfHHBbk4Y3d(7e~g~dF)5nouddilQ6H(I-H?^%JMB% z*NCq0vEa0qz86yQ0(O*5ybx=yXXS%2Si`s-dP7X>1NVVsp$R$<3RQzOkA%hXqfgXS zw)+gC<{@+H?5GK>Q9q=I^d?#-B?bl4bIL1%yid5t<Hb#@1{x#}4LmTKy#sE0%cM9= zg8qF&eH@J8p3db0_)>&JKKPKmIdCLc8ch7cu;j~y%gBninAp*n>JHu^0o<XuJ`i*Z z2>i@`hCuR}-==_2KU=b&t|HJ*=HF;SDnK=*S_B&nt(ufpXNoS+bFPJ^`Ge7M>V|w} zr7b<4tL@H0RNl-ZDe_MbW=R@NUS_?c#P!3EK@8FXI(;@z-@Q88`}y#!_wsG`=)8M; z)>K)abDcA8Di`C<rbE!WTDgYu$)?j3Pdh_@oFA-I7cdJO?Ka`?g?_u)QM_u`^lf$Y zN+p7c?q*OOoa~<;o}D*EVF>|x{=I;lJH<)XT=TQ<3#5_r{4g46BxY$g^t~YmBU-*x zDJY6xRb`un&64P`s4E8TXnza3kv(%#kA_d^sQs1mYeZ1a@O<K$^}Dg11Hjk$B|%td zLeH(cL<8m*{Mx&Z@dmLUQuV96kTyfJ2jRa}vS)_$2&c}ntH20IzM~gd_P)!Q3v0k5 zFBoeBg%L<0=*lz_Y)2GszVVw_YI%ktc^u8IICqF*6;eb`+!~Z-6ro!HtwwyM@ahC= zg?LZTey}o_HEGnXb#x54k%{Ce?qYK%M?lkPDu^$aXc^h@fjW75{H3wQ()mwt`4Wly z46B_}C5g-_Q^e2-F9Cs;e{h-&iX;=Ba+y-693<fX>1w8!JRF9Kddq?P(J;UoIeg#9 z#2pf08Bg{H=q5pOfdg`yuk1NgypKy%fS3mw6PH@!lJSI0m#q3~sP_{5_vEKdpmcQa zYVH0_1porzVj(qP`Z0FD2BG&On>DGCuzZohHS}+!G@hW9j_q->{9PXVCFew%HCl4@ zodUV+T#C>5+HL2lK(jtCNe4#4kaAMsV^Y|=JP{>z0N0Mn{Xoz2l8#znnZh{>4QWqQ z8Irv|i~5w%Bp^e01S&Zi1T|T%T<H`j5N1GG!I5&Bit#NsoN)=!AH_CG)Z$-^2C@c= z{y+}WmC&+EUesDx{V+E@Rao7!#vkbB!8{v-&C&HgxjV(jKA}YJu?}f@&n7)@JZ|Z; zF(P%H(xy>U^&{FLsj6#WS>M+*@wD(*M{Fgp^9ra;AY9lCtc_g(qNt;*twOjRv8fu^ zPiD@t7-Q9fOeB=ik!w-aHBc=tuyo^8c-UxLy}o&w(U`ie@}@9TPL#(xHx^!YMq-2f zC0AiHI*OtX$j1{FL^azG*@dXq4ZS^(F##1&HtQP?HIuBW3-!P8_4kG>*MIq8H|Z^d zIPb<RpH4Bbmdien;x(Q1$HBmv_*nBOX_Ont#qMXOTZ?H(MSz<A`r~m=TEGNrVZBMd z85F7;>OG`EOIwQeb;o>Bv#iOSoy4Jv>FoXGV+E>>TI2jvhy2M>M(k$YU70FR;?nF_ zd?v|Hu8(?gSpY(PZGGt=lOSQ<d{;p1{$^ukvd&-MOGr;Lt6{X!%cm*TPAtD^e=&K) zr-UjV%F0-iAW1p-315NYg;Bj&+L)?zJgopSXKtosu&UrqF6DJS&!ED~mV6-7{J>0L zCtl3;1En9|WAe+AMk9na+r=!Gwr#^Ko3&Gl9^Jl7{WwW)tD?T5dAQYS%6S8|s|$P^ zrs`e&95osxWT1E(leG*~SKa}I7d>%5Er!g5NW2>^hDEHMUkd3DIjJkDPMyNC>XvxA zD8{lBTS$q>e>95B3cu8*<tuTED@w%FJ$$dX%g>H@66KyM?xrqj@QZ_=o>C$^HZo_~ zORDLk0Ch>tkn+Ow7!zHMS!?Ej;y5<$TDjDP@jMGQiVfZwA(>mJi5$~ea-E4VLTIOJ zcGq~x%L_M}6eEQj)w5;BWzxEMbO9f=>Nt<N+T7#EA8x2F(T?4eCMVE4=gTAIhceSM z3F^s`m>3RmM;yPODw{ZGP0ZpN@qnFkp2j0lX;UyoU4DYg1>b|rjSe{@6TKtwu(n#t zxn~OW7!au#EZ+{&+h)78@-n?*=&<iclSvfr!C^v0Uf^KNW5xUrRy@o()xsxuYFm24 zwkVzHwB(A!w@rqOm%N1As~jfI4P#eU3|kVcam=hG;l)|Ij5BP=H%|Hp1XZ-*|G-`O zuL{S-A{NKmhMH(Bo$UMjO(tehbDEPaz1rM3niVA(z*+Oc^kk%+7j&cL!IA>G@Ovg1 zf<%+T%W}!O#K?saZI#r^HCI};Oau+L!iU5{<fazISt=9_k#@wtVbYptK*kP?qEh*# zM>sA%X?0&cIe+s`SA!(j(l}qeft}1wu1C$pWG>Ao9+N|x1zNDNJ+BOB*eHIlZ-cSJ zVrA4f+vB$Lf9zs;ae&x9fc>_szn|W4D7_SQBFq~R^ljJ|_Dgg}@-mqeqp<*^>M;?2 z)}8k_-h27znT2x3elkS|P}CHp3&!Bu3$J{=Gc7~)M%$;5_dMy^=|};_y3|L8^+P6> zKz1u~6lDiAch1VpI~O}U>zkK_b7u;Y)V#Pel)^i6n8RAqd0jahr)_Xk)!6X+$Q?$8 zNj7y=Ab_zDhPIcalT<rL;@&nzmvUiI&S47Pc}Ej%swzp+s>zi|kkuMpQ5MT1qtPgc zonogGZKthgx>W_4QSYz%cFq|&ayyV;aP8ohmXSQrTu-~o(J_yCOR>Yni>QHltIUtc zP%V`wl&Qib3MnOEnCFiy7R_8JrJZ1xv@Y0Gg?jsQC&H|E-j=|Xno}u<x__(5aB>W- z<Y+wNBIm$lXA=>9?Q=3D8KKL2imoc+6%9*G1nD)E6~IaY#(0``zN<}ok*(&EzHL}k zB)yST^c(p+v_HuT^5t0;jiT{+k<ajc&~q_rY@M>Z{_M|l<>MtCV5%9GKx~O|E1WHI zsUPLjS(bM%0}4lN7xSM`hYTnD0j}aG@`iS$O}J4M{Lk_aDP>WB8c~HkEoW%%#X9c= zZQ5@i;ihPn+teeVu*p;QFzu1H-c7!~X}`;tG=>WVU><1Y#kosXQ{iRZtdh~}Y|+G( ze6%UEy^;f>)_x{J=|$!vfdLG{;D~%Ys3k+OwN5ycao!~LZk>DxfLjcm;Y=kBAT7RR zD2mZA>J=`2LMWWQ%s!hPehRkI9;!@wTzCeRlj>r_QJ#ctlxqGh>CLq07L53X{Y45Y z+2j1VDUzq@joa4G4dyJA26%E_T8GYsG@tTt^b785)`L89D(uy&zNqE-V)^5EN6YuU zt=_`MkA{5}i>SGt_!Jdecs#GLnJ=JND+cB5EQgX|pzXZXT|78Gh6RG4(vdNyv<uNF zdy-*UBPrc4bU$|g5e1>jW2}nBwi|Utc3DGLs*;7WvkPcTW1#plg^^6iR~J20?N&Zi zJu*TbXbL$z9zUR_K&1B|y`HjQB$X?Dgmt1YEJ5aF^eEPZ7>>MZ|HBB(QeQU>FMre5 z@1k%7svo*IO;LvFw(WX9L&u^Ay5BX1pT#Gl!4aQ&yfLV}!#Tf{YY$>{yUb!T_?XA2 z+#kU-lG`IDtRkv9uzFTN5t1#uwE9@WXO`4wR(4J$a8=~c`B)v@x1xj#mA-YDh(;f7 z1F_OmAxmT=H^ed$?Tbv)qjt--K|CC9YuP|5%8F&NM#&SLVI^UY{oD<2L#$E`@t2E@ zOH*U7AO{&nQzkv7oV=%*;DPRYm}}3IkJt6JX0tl+Vy!R_GC4MhkU{OMGUYilCpBsr zb_!>@%$QMWM!<v9vItYz#Q$czz*y}d%6b(fqD(Kn_`H>|-uim-ha+?FkVeZ;@xQj2 zCS1ElL_BOh47Qf9Q#PX+(w)tl8Ti$JRZ+3ofSL=X4GIpo%gnRP<3)EXn?LX|y`;(K zHJ{)STyQ-MArX<?y?zXcxX#N^y8Tp(nR}1M<oC?t_%#U4-yEl{4T?UvbGLFp$yf3T z<K?SVK52aR>L+?G@(B>lay3!38XMgaY-W22+j;rY)m&Apw>tr@P_?ePwU3-%RJK|; z*BHCYmkD|$>w8GOagVPe&c4vdvwP67{J|{Edve%xh2^gE8oaysy~|bjT8nb}SoKTO zTb>#3a_ZzgMKl$wp@;RTx)ZsF3F+ohC|99%!~fWPHZxWsjvNPvsO6M#WUJ&@7FTc0 zCx9#G5*UFj7DcsW5-hVrf0II2E>p=DY#Kzp+*h7p)6q45v^Ag)q5)@;umh^|uLGH1 zLkeM>##gdLiZ<o35E-C;Qwd9%8!$C2FM}wi(je2ZH&E#oIqf=Zi`^5nDw94YG@u*W z`Yl%dT-I&Cbj8lLDVxvq{#by>GK!(4m3wn!#R=>(c2!CT>3_~O6PPpWLt*JRvxjhG z?{VUExd!pqx+oxH=Pr*Nd@Px9ty{6X9Qs4CJrX%wh8&JoGWL?|WhUn|6fTwQX*GWf zn{8TA!P}nOb#lX5Wd`Hbx9}3G-S&vPN(E3pdyC)!QPDxa-+3AGhLmQn;=nr4-|gz7 z>S--i%Rw~miAi&<H!lmTQ!%6FlvCIkK&j(2oyQ{ohYCRb&N1ucWEJx)iMn)$eDzps zKap%Np;TH<6xTkMLUzv18l5s5yU(p=H^&k4VD4(ft+~_e<{Fx9grL9c<b19QH*NM@ zAypIoJ;uav+Zu6V3P+-dv@PX~0%=_b>0T7j^kFNTRiwZ%#LNWo&>eC%A}S#%G7!Kw z=kPD6WC;e)AP#yWX;G3tn_`s2&PfZ{Ek@ugc4NCGGhQTEjQYUl?kpqkI4(;Rh^N@~ ztC^241YNB{;)_l;Iv#M#cz7%NF~?9)QH^j$Q3-kg6q(d0B@$1ckCxM{A(GV!MjNwp z5vLiUv;fdAz41jZzP^7IgrO`<oqI@OPOa=j(t@G@avQdnT`Rk`2{O4YLjTD!8O9uU z;@!3`w2v;G?`rak3z$UmQt}^*uapRe^V5GW>%=IuG|@&|N?SY8CQqW0iomh+Z!`M2 z5LBr0+glD$Hg7xs$l9VrGbEIEupqq8m9-0659kRlQ`&R6$JyM7mGAlYALwdEf(jE% zj-B%%1<Lh3u7Yz7a&iLVvA^TEuDjq`WG4rPW@mv>`ILk~!7&_F+c#$=P2lJZdx?zV zGmVo~LFaip=Emiv!Owdt^iRLbQK;OYV!dVrvGQm(BJvt~d`t|J#Xd#|sst+RpOJra z$|KC)xgumAZ6&Ry9%VGjlEUG1_ARiggefPLK=W5HM)wQqsoe3`z84$x17?&%O?Zv3 z^watNtKP}+(YqcNw6iIZS^;>AgNCSs3~ecQRI9CvFqLAf8p6#)q0OSHjxwSHXWL~V zQF55?By!yBgIcA7WVe7S4nw!6@V}O?5zdAsWWlO0OB%`$q{LFO>N;G?j9+bOG>tan z@0=>A7g}xg(Kau&{u%fsz*Z(@u&-U4?EYs%*hiX$?4@N{0L(DqjNRnrlsz;id0IXI zPkpdJ|I-`Vl{ZZMHS+a9|0urk;-NN&$$GP8z2cVI>e{wbKDQqtar|*rQxw*;wYru# zz&b}ePxh4&M06esAm}HfQR!(``mGL!y;Zx)SEcCDibaz-2?^cyHeQ9H-}oKH5^l=K z2K{-S#e`B@z`ri~h`5HmY*-zafRdc)L%-KD-*EEu0nFWa;}5OEh$Xn>$DQfCM?Uy? zKC%JzGi(We%v%x*Q_6>ohQ*;>&mU59QWvHa)#fgll+1cpVd<kc=cr>Avxe_XYh2Kc z45{?_!Qs*2`5|n_>6`BHIjYVlZ}7?H?A`G`|N6^M-6L$!eT9E?&wmpCbk7f8!>^fF zKlKp})bFCz`I~pIy2pD*NAK`~>DR-3qvzqTr#$Id_s3)9@h2}42H+IFMW-NwR>9=M zDJsD9^5o>`<P_h|y2teI+vB}A@94MgE0_!ZJv%%%R<M8a`gHFNg1HZign!-~@{-Qa z-*jKTB@CUteR;P3rh97kJUice^XBjXUHSH2AMT$V!v};&8xY5D5gBLaIP}YR=TsN{ z@aU*}de*f7myCmfUx4oHsJnkiSUi`%c8?DZe=V8v5ym59)tP`2#D%GUEAovC13NP( zO!^aHLKjNW)AuP`v#hczin;F{(Be-BPe3?`pSM4X&*3-u6<~7jbpaf#Ttg=sGbNCZ z7bk~4#@<YH2M3I1`0wktM~K9O?%(l`6a3=z<QMqw(b-SkSNPQ%`AfDJFT3Y75d8bA z{DsGVb#!v_h6n2&|NZa{_B%eo|Gwo}-}1B?P5u`*p?_&DM??ibp3{E_?Pv5K9;bWE z?djianAdyf0u&t^cy8b9b<Ym%$JQoE<yZ}>xAdgeqlD!>nLgd(;jD`y@fF`b7~0ad zIE0p0xkdFF?FAM-`^aJImb1pm)6Gh@Ezld=YxP9qH`w3oZhiA!u+V~dRkgmg#(kD0 zh+9h|&JP=KW|_W`v%ER{>G1fhdxE6#^WnQ+fE1b20(G1p9{hdp=q=LIf1Y%Y4-c3- z*p4z%%|Unnye#Szjq+p6pJdpFRAo-AtSJ&*W>IMDUZ@Si$=By>w2~F4WY9V~kDyQ^ zUrQa%FEx$Ogb<*aQX6R&0_S1BvAz$(1)x-7O0gTiDUyZ{#DX*7mX-+Wd%h04S<V|; zaY1ja6)KH9*j07Y{4wG49z7%^r0BvgevBh%@~uKq&pJQOB4+FG2smjru1tTMKTh2A z2TeWImZdG<oPH-icaO>$bN;`81M@mg&=Z~g5Y9c;5oDO?7}IyVyVyDBn9AF&A;OmO z#6))XG?iSS`geQTwhC(WokWaSa-&>i#55)0yu~=$MS)o*N6?VW^GXD_?LM<&!ouu! zi4Ys;uWpF83pK=L4L4h&1Ffj-vf(wav92ju^xpVWDp3G~$nomM*+?L2x6V}os-H`s zmNH@}Bv$amdwcbI>p_L+FKy7Sdx;`51(6a&fx2(FE?RB$bp7JlOMF9F`BC+|sN>hV zN8y?x1%SmLs(Rs^&vo%D{?A5DcbVaw-50%Fs!6>cx9o8ud_G!uLRBeFEe~3o=trck z&G#+ZY%hvKU+QMzE=fsQ`uZ%87S6VjpRn-WrQ#duhSH|l$-9wb3TVp=RJ{Y1locKZ z_B5Gz>q8JaCP2W$Hph*))-nw}>DHrCJX<&rHT)>j#_Nu8asaDR$;*C2wk^l-w^7GV zIko0$Z3JBW#I-$logAF(DE|(|tw5iQtfBtGkts-3O&hCY>;Th&%kZ~c+Hu#RvcvR9 z&k4YK+|IQNhI-Ch>sg-=coSt^R~^`L*jV7=G3hvV|E1Cw>WQ2JMePJ_tilDf$9_~6 zl%PW+`+9+-q|+`j7se(!k5jm!+`l41bW+B|06Rd$zj&}(4+u0*GE7zNg$u#b1o~nU zPH63A6tsr>v*uRNt_t?h*H#wpQR!c9;WXbln>&{!mN9l*Q&^YQV=V^q_~iKL1eAEx z(uhlHT=Vew@Xa17slT39C|=oXPd?sgF^4WQIkN`cJv&ErpdjA!OUD*-Qhk-&4`qJQ z@9a?iR&0hKq77p4wII}?XuwXL14@Wb+@!@BYD66)3|#ewPbgjMlOZ|X3MYEEU6O|2 zh*Di-?)b3fqVC3%?78`gx{8<r-Ktx6klxC2Ij|U2%?JNzSNr}^uxF7bxh@4I^(Vh+ zUSFl#wCTfHr}l*5Fs(FhtMYs!^fc0`crkFR4k+zfSQ0&A@enmixfo8p`5@~YS}ABo z;g$YcfLIQ*vFhcPNpRo;e_TDJaOuvES@b-U$&Nke6l9o*G-)~O>wH;JY|}LblqD+F z9%V6+<d+*zT22HX1j<c(nZa!sBvUWNjJ_&+HR{#o(>B=@-hjdqh_I*D+K*`XpQv!O zq6Kcp`8Hm|T0;s=x`*NZ$?<vj`0ZhtqW_CG=86#XelwdoIQbX}De-*~Ztk>Be#X3J zMlcY0^JoJNRc$ve)k0kmX-yfG)1)ET1<C0Hb$-xVYF8!4onekABj8B3&EDPx%g&{_ zQVt_p&ZeBN9N>Z7fN=zMw8Dy@X6SNsa&p=`e|LI#W<7cb;s(ZwZ*y6No2(qN>>Oe; zNO2#m4!dGSA{Hlf;arqzQ<gaB!g@I>B`et{c!wy-XX77ct`)=Fbso>3!2e!}-OKWI z;#!3t)Az)<e%N)k-R)9GE7%kw0er1#wr#9VtWyw8N$_|tbBuP?cuOSgki&OF0a8_f zY0*1nnI%`we=<w4pd)5#DOx9C_c<L;>b@*&jdfURW*L*;GTt2S{fy5Nf+cA7<HPf} zZ;tCIulh~a%0m1rqw`Agf*?-CQYDqzHo+1d(JK10vKo~4)Rt7Iuezy~+p^?@Q;}AD z6KaiBv+~T&W+g9+BepG~K)Q$L^zwJz!=r;Qx+U+hc-0+tL_>gCjm(f7YJ$G^%U&0s zI0*b#Z%$sz-!sg-dV9Qo-aR=!IDBQt55M&eBBem%AG9cnrmlV-#kN*6%F*8Imj`>T zIss>vLaADPDfT_quTJ5)rpmld<A`!j$S+j#7x6(y>rCcSCxlP!Wk2w|6bi0X#u%C= znX;y}#9JHLnGf1yZ_*!nJNh;#H(r6LhI$d!b{-!+vcEFo5W8fh3)HsF$~W0tc#=!K zz-rV^!BqzKdJl%dry+{Wx0{iL$EavjC*Oj4PGfsuxe--c0GSEzVu)oYR!)?F;{-!< z6gh|K@!HNK15F2sWOUR_epn%Pmpar+M{)Y#!wm}G_^T!HcW(9gO4lfNJ2Bf@TqYJm zlUrF&LD|slfMb5yVPR-n=K-3ZX40F^w|jU@Npm+`o0+dB&9?cn1G6e~V5|8NG?n-Y zlTJ`B*}Q0b15(id-M!2}QI`|Y%Awk}G_SI2Me6#pT~M>?#s~Rfaew&LRU%@??yR{* zvX2lgx7-(v5<)f{ffTO3bDG%~%|^9jl7hpIGL2?z8QDlmbF{^h1pKt_oEe&I4n$R` zvJ6HG7j$Hf!o@_=7Uv%ZSsg#f<u#TR*9wNW1bN$h6|^*$&u@y~B^Nu;`*I0U{6Icg z%Bt@wscU?dKML7iQ$|+>f9aL3IWtx`Td}}EhgwvEq4T{+P@q<Y!9>j)b;IS8N#+cL z?cxJ~Os#I^es+mtPx)-vM2r%180t(Nr{o%Y<P5xoy=<(k%rMDf8UxAD7ieO77#(F# zu%x20US8UQj!0-o7P{GKP+DF>R85n&g>twSeB>kY$svR5X+~r#;a6y*CT>+V+^TWQ ztK$m$T%8411X*Km^+>F;E}119>~fp-%w$JhyO6i5AVwLuXFc#2kWD2CcSBS_lpawA znhkHZJz?(^j3f@{DlMUUr$eE*>}Fw8p0wm;#xIIlR_VpurB-J=FdFKT3g;=Pl1pdY z)G(UluvxRZhjkq#&i7WjSh%eg0?WT~lxPeZZ`JLbM|)>yr5d4;ikS$6O}Y83f0+@p zgCR}h86Uos9=chDMBA>XMTCliL0Re`^6!pDqL&=c1r<g)cA>cmSU5EiZ)sVWVm^yd zd3mFi>bR6K&P%94#>?S@1=pbLlOHcj@mLfvKKS#SC>|P9iO<SzJZ(m;w^dQk?p7@a z<$cs`t*<N(C7Kx3qIeXY$N%wl?<H>eI=6de_)I~lk+$k`8%pMW^Y%w}`CjM+YrN)( zj2i7FtW=dPdANct@BHoQ(P61APtSx}`s&4RY55l{89@x(<Rf+h4us|dXC~8->|g<d z$Ni3j`esi05K1dmXBDY9wbv!eO;17a9pRkhOwgSs1(==9@4x>`{_RVXd+<2O;&!4u zsYi1dQ(%-b-_7}<#z{n}7$*TGOM=<9o@yNvQRq@+$Iq?2lN(JHO3_}?Ks;a;Fr(im zK7cl-YNBz#1~h)byYcf&Bd+bRM{GF1@#cAhb1zY8PK(J@@H-42fiKrLi$xNEI!uj= zXn?Fdi}E+AfG{stS+n>MBUiYjTycIAiO~<UomiBY^AS~H*TRUDr^=A?YR`h?8mqrk zvP+_{im{0Hps`z?LA3BrV&58TrmEZy1%*N(^1C0<gYEn8oxh;<bu2tKc%Pj0tl2uW zl1;as)=YtP9!0N#vNRlbLxJ~9$Xe3R54}YYXk<efSL(h#Jt=cpByD>fP-J(h6B;Jy zbemiS44QK0bD6(`Kk|}dCNAolWt2r%lv$sjdbLEet!&KtI-*DqrqAt2NL-_&xqTt} z{GpbDDjUEew-)X#ZOnEa-T0(YaT5Td#iKW;;p229g?!kuYGE;BNlhv{0`BsPIx@(0 zYD8Rwyu+lOnsjlwFaWJ2uZn6Yp>|qGQjbMe2>+u$Zew(`jv4eRC>Ti>(du%PvCLi+ zsYpj`k(O*J4|P*oc9euGKsK|BSs6#ZM}L)gg_dqPuj&=|K914@_EfA}r=si#kh6}q zXvEdyrp<gq(uOqXcGx{hR)c)ZS~Xu3zj(1V*+@QXe7PiCo}01~MOijxz|ScrElbn- z7-C{+FOj-E|9YBBlWx7F7N(Jw0Y&8t$}wLv!FP*$)#tgT92B!O>6E`*5;aGzV->vj z{LMQ%(-nD=R3TaIZSWD7)8jI%7_6>WP;cbqHkqlZD80!Z?W&pyqLGWSUe(WloS$RR zqe#v`Er@!O1hP{i{b+D%&mAg@rW~_vIo<jk#o-qYt#@x1?SuN)GHDv?LgJOeL?cR7 zH7~gXw$LBa?!k#Z@-XN^jHFuxUZeaU{L|MqTkSM0MOp}?ea95M%xvTm1qNPBP1?-r zxLB1I2^=jlUv6qD*{x^B(bgTIC6t4IcQD!+JMK^}7ChGYi%bu;wotAVIWwE=#l>3+ zXYBCT{X>drhTpTp$DjVRcYJVk_@-3$L9Q;MA6!`or<mq$vAeX*Lq&!nvJ@bF)5%v} zx#x+S1Gr8wnzMx%bx&FUM;lAp%L|g*qRKxNuCLng+wSd7wpfvRNpYZ#S@@F^=nH;N zzW3Tl2}QL!G6B^f#t5o}oI3I9rM&0T&6O(<3A2{M2TY%H%M^6O{+q6|mpI96aNPlQ z8X2z_2V>NuDY%52iyCaQ_OUjaFerHFIt~k?FppfOP@^J}s)<c2&^LtE(ztUiI%`go zd{uTlT56XcrgREud>?z7AMLIr$~^My+HP^s;(%t2pc=l|HR8t~Q9KUl^Me_ij_{sL z(`mBv<jEBf)U1y=(Vv{o_y23}$#gy%V}<i4)7g0Z<k?^KVSe$OvCq^ai{&t-5*fg4 zIS_HfoKs*HGSRXzXzY6*a|D(rSH4wn0B?Nb%@Z|3FtRibbnoU6G!eLXLoU{+rPt%A zWiNErvg+ly+%?B1a|gL};|#fl(JKjjG2q;_0cA}<I@kCV!i9N0G;gj)+Awc5A7gr8 z<a4KL5|Di@bcPtGgU9+xJ0b;=*T_8+NK0tGlHLtkFOsB?;q^){wR1z8&z4#>%3SS7 z3~!@A6N5$P4nvML8wU+jbDFIi_Rt|!In5~TP6p}Y<0^x+yfQu(ANYi#MA3st3y($C z=f{#vGfOL_-t$BSxcne^-QQq5feN(;szB#$WlrWd$LnY|9->7q!MZSmyv5Tj(%{^% zZkCH%tYHkVcFtgrn}UZ%Ep&CQXc0zxo{14jAE9aCrpD?GqyIO5{``yl$opq~%iVA{ zvg-(+1D>pCjt%&E@!}c&yZPeThW@Yo`DSx_dt+mJ>-p9T_<Zv@{Cwj)`w|G4p?TVI zzCng{6_vMJ^t}W`{`;@6{}fY9dXhVx-*5k)KYwc9|IMcxPq$yl{eSvwYxA3pt<9%f zu>Tu>?*D`TpbrHmluksBkT{5DiE}E*KxUVT-3B&n(4$l`Po$X=gg}&VDbc9-R#K2` zk_FKx&ctlOxgD<I1|_+T+v8&Py#x)zAA%|Ww>xSy8tjpRU$<l%=}L$K2GQzJ^PS|h z*ZD_pp1IY;E~8ni@5Si961R6qP-}w1TXeu|=Vl=x{EaUnzJ@R9MOX9qshYQ$Ip2DY zo?ev}ly~m({@w9*vo<5mm;oc<Vska4=o4Ko6l?z*qp_uL7{0}|wmZ4<(9JA>ZJVqA z83mjYS+s@Sgc5&>=`MtNEE0n%M8(B2(0SzOK0LUsqWT!s?53>FM3a;#oXh<dR>Uer zqM=pDWOhfPdb@GKIdeQ94xIO*wb^mD+FGJxfqqM&>-NH_n3DH$TkYhN?LO!l?Bw=k z*RXK#I<qgH#x_KSj#h8dQbNxhHEU6N?9UP#ohyIJ%q@%Pe6?iWvcuY54#73)8ISI2 zCag)kbtbcM%tg~L9CtNPE=jlbCM~7gGoMbaVypKfUrax3a_NU8<4<<bKR*Z=uV%8E zBwS~*yO8k0aaRN7k|bPj(ozyW2nMU9VJdC+C5d>)dAjvQ33*i$)+Xk96W)!WYmB`* zh?gepx)YZWxAIY5T6|Vv8rr)D*P0Ib1r(o`S%lUe%kD(a6c5}Is?>r{^Kv6q*5pku zMZ#NEvS797K%=#&7L-**kdB!RGZ~E+&c)lovY6>vG1IeQrUnLd50zz+5b9v+?kbWD z?za7;+q=Q$UqY$N_ZEY?G!c*!{A%}K3wTLpLFyalLyf1Ole;0v%9riOW3>mTJ31UE zD?T*oO~Bc1yikA5!zUC9cjiY!^TNC<;(`(Re$_!-@rA7vjTPuxJ-d~NV!W74CHVq) zSuH`G$8+`~dLWug<GD#u{KC3Qnku~bme5nqyW(yXg{h(*grpFRm6B9Vv@D0P6)~^} zwIT+gMsXax{4ku19KEYV<su8a@K|)j#Wy#%nl@Y1?`+}y!uvxT(?Va<QCn=#y;-Sc zV-{R37JF&cPL&!;O`MKYdI1r^x=Nv62JV8uD=0<xX`_L%&MP5#elv<D{tZXBv1o`N zs1V)80%Za5Y;<UOm1eDhE+eiOjU~dO20;<O4}#YvrAfpgb(#2Z^oI*DIEg?(2v1`y zD3i{sUbOV3T9@><sTifO(85busej<#Qq0br`f<q^9d>W2ITWYcjqkV~0634WS?I;{ z)A1~^kk~=Q(S1I;0a8QfJGXRyzuRmU2NxXUrI+}m{ZtWh7xrIeOd<DdOcFx;G#Xjr z`pKJA&d@1Z0PuUC<38>}o}(yg!T;Ke<pDEQxa~mW7phe^BvibNhVzB!;HB7nXJu{z zI-k_6X&^@rIM@AeIiQc-rZe2F4rlok0ny#CB|@4`V;?KTB;zlRsv9pM&q1DDrL9Ld zWXx#K2B;g4^3iD6%dXtJU=h$IJ$si!tQC*q!VVV6?i%`nL_wNqG_u@}3gcN3wY<s$ zWgM<LZI%$o<rSvd?j`j&lAbI^$&8d3pO?4_d{8b-;5Y3rhYy`X5E*rpJd;pz$QY?S zqhE$T>fmfyd|;Lv&UdpA4I=+g#%eGp&MIj_;h+`u|KShviM?`}j1{DoT)Y+u3C{7| zVf8qaPDIpFWbY~fz6V5V^C<D{LU`ub>i63^nm!MwEoE={#@z+Z2imq}p|NWF-=nhc zY_~hknx1-bn<ARl+Eu$vv8nYiLHgY9yY0M&*bA@x*5*e0i{dRuK6gdjL(<XR(UVa} zF&}$fx5h$tR57h3#d|)nS>31Q)lR`>5{icO1;(GRViCc}7X1sKZtYaZ-9PA}t(*4c zrnj0Q?lyhlKycc=WzIwCDlLnt0W<~Jqeh|5_ezE>Tcw@A9%$_=ovaL^vd@<YOf9U) zueKcDZ^71Z+`>v_uzI0o6}$`3YoUHo9wblvkF>HjQYdJOB{eyhNiy{Z0aiw%oF*I& z`g`GI5hGA={(jqLKMU2|{jQ)rat=TGAwc4XGRY2CI_hxYr+_mia0IUqk*<P|n$vyl z=R^YmR^XQfKoMy_SL~%OgEpha#ccV?F?SVJRyFt?<%8dO`entFhhA=}VDiutmx?5- zn)nU}ZJDXfL$*30sIZ0=ND+4#b2;(nAy&P*nI2H^S(sqs4<q%g60!GO>Q}Usy9ym; zAY_4=dg>|6J5^;f*;B<Q48JeV%zy<d$C$DqL(;p$vz>}m9<J-=Q*|85^g)YS7Qa^? z9G@&V=_(d=Cl4-*dzM29>=$J#sYi;do3D=R*oqePH9@@!E_zRxzt|d9L<qIlYiB?r z_g!7#<-W*W?#NLHx@EOrfC_55ZvLLDTOB9)7lC9&)b$6!#=>*|6`!83fAL?8JO3{{ zdv{059|Kudo#GF4I{y&sUlHB@Z-VuU(eS^-4f;nv#s3Q6eVJSMPag2)(Y64c<<3c( zYm(h7DalvFIgSX>Dl?lJ(7#RnaERVqsUK4ima3PvTs{jdt>x_6J&$UT%wx)paQFUN zX|KBu(V{Wh_ZfkpXy1Dc0LOg>xu8KV?=u1ca(VAH03dY+dE}hK03rLXiNF^m!k&NY zPUq5vejtdJYqMr6fC(^Tzx$6U2wQ93x5G8(TPG+yx^R)Ib!W4URdjwc4l(q9j1|wa zwSNEoU)px6*UP%n+^sbjZ&fR3-)RXKt6ak6GE1m%s$8CN5!<Q^DA1~>C0Ge5b^H+1 zhO1B&<fu+Eg9bBBUtQpIS=eVij`!t=vo2vmtIe`)!E2^g*|hsnacv5IkhNZ{YOR+K zzt-A^^1J$+30iIa&IGVvx$TEv@5L(Dd-<U2edHWth}+z`0Y>44jyFhWlzu+t(BmNa zH@#E|LPx6t;A+B%RY7y$Jt`xgt*1Fcf3$)fsTRu~m&#={nXQ`U5;7nBGkl2gA3x~o zTWa+7Lk>^ad6*d<KP&_nYWT~C9G(#LFf%;9KLjLSwbs&T80|Q4DxGUD9#Xv^n2tR( zF>ZwF9dStQ0PB=v(WW_9u}Je`*D#ua)Ki|bx)8#W<>$bd#dR(&;nONG0YU^*iz+mt z;NHr@d2cbv#)k3d*2Z0e6Z0_dM`2cg{>}(cnRo`-a1RN;HRn?iDT{!|0H(Kzf1iEl zIzwM(*XQu(t@GH~YSafA^T)vIlN#Z;dZi*2q6Lz?AJB0kcXmvl5YA-*vLv{5vI(*z zaZ}FPoaB(PG9+y2C*gZ%uK%@b{JCrX`ETZ*Kji+@{<5GF;1AOvov#j&jvSIEKy0ln z^TZ;o!MJntPt+mji{c-=pdP2JivmX*^mjl)Xdpp&{Z}FZ0|L+qKaR##NFZN8%AO@X z`MG)^!kIW;41dn1m;-3}ybduh`~owlUM_U{z1MhkqGJ5<IG83urLp2rv=Pa)#*_{s zxho2Ir5CR2R;HtuW{xwQu5xwK@=FW5*X|&}ZRZzy+u5mHDBLc4vn!+wU8kt@4VBIH z`c_f?rn12B3ubi1R6GL&((9wd0$t!z8zpziFS23${hgi&%mS#FrYnOKh6+H`^OGeY z#ZGqy)kviRAGv+N8$isz{<8}1t8vu##s~gj3~Qkj-6JZSl2R?|YA4_(cW#op-1jlF z7L9^O36rsMNlRojn8BMr7fD-}PaJ|#Ar4Pyq=munuJAiXMN{VgZT>rfA0$1Tx|O$T zYt?F47}fS%t6rn8Fss5Nc|UL6EaZT3HGtSdD#&9XduHU!u0k$W6z6cSeC9npQHv7x zL`gl${e!jhu=t}I3+KFBo@kSSJGmoNTFa&c-o1oM;8b$sx0L98%<bAvK=ochWE=T| zbUa5W0}^eoy^p>`yu?qkY8dfHBn6Qxsya$0w8zo%(889-5q!c2N4V4D%|G#s+-i4* zuK-4AOFK3)jMO3oLoY_o5)3eCpzm`LQrKOQ!`tzu({W~|hpQcKNWL{tsL3nGjOjPN zr2jf6>P$-;XpjwYuO!9Vs4|1NV?uMkWa|qEtnXq9wsxV_)^bNpLIWxzX0EhEe$_^X zmiVv?6Jn=~loG~{tq4`9NLxar`gU5S{GgSWJkiT}^dns(m6sc}q@unN7W?6Q$Kwj8 z9D~a>DJa{T_*!RGnf-Hsegud-*ExvzGzTDWe<1p&T%@7oWL!L0?!|IA>>DDF6{BLA z{c5&e$Je15`Ztc2r8b{+Rw5b%6M|_8REMHVDY9kB+ut4A{pQ935>~JjQQmKEHtUe; zYk$)B<0bGnp$@FWi~13irl%C2+(8YeOX=Cgy98bv#$~erzmJ?>fBkjG*&7adJs8N2 zFCoK#D*TEfTbRFS<OSnd4AZ~%=6x(6pBmM!2Ux{0p8rS9^hNyzDc6eJ$YuF*bMdBi z!&gzfhy!!h(VKEH4^WDX)DZJvgVBV{8+aF?t`J(iDCo6L<c@?|rc16>-DeT}wgl5! zzTt<%$OS4>7Q9rd$*LG!_BL=I;IrCtz8dcff!`_tzrC0OQ1vMfJg*7Au1XIEvp8|a z{%tVeI^bl_4pK7NtpL{Byy{%{L<A#f@<Um?txy?m3t!@Vfng)J;4+;}@qI)%yWE+I z2IHA@xWNH4_ZiM7Ow{6ZL0QZgzaP)>#7%(KWT{zFtC%M9!)P0YROsiqKXkf^qM;NK z(Eq37B$>(m1_f?(IC2KDk1T$K(wj4lk|4#*C3o3hSYw`?Z#&K$A3ou$6_m_U!=d%8 zT0p-`jjZZ92T>Fcll<g@9`S|15*a>?gD`Dz&-N-2U|-A~YlD^KkP|a3f%Jk!JV5i# z>dq3~O17i45@NkTKrdHDtZF#6^)64Y`FxZSe0%b-S{ltGlHL6jtI%>*;}cT|_nfk5 zEsw;$7r%xt;-XZ8qS~{9l>^$_>>Pq&>sCeWW9YQ_-FE+>k<)Q}%m5YSN<o;7@NR_J z9r2p+)gYL^`ls!yd*eTiy@B6{19=UC#~G(Et78umS`2N5VaGMq7N=*<(Cc;32r;-e z<S~^yO?AT?bUNn(>I>1Xe=dQ$_QzA-ip|1`@`e&i0fb-#lH|hr8vCDcV*}bpQCi3Q z=V$G8um&ht#-cfiqNa3&;DMS^5PoQ`waYt+sS8~!+4Ps07(iKDn2;ZRM9w6X#}PKE zG~6C5IfkF)#0xO(I;++q#U3igB(-wQ2au)`z%ovkm6cTJm4zYX19hM3)?b6-eusiC zz20aB=Lg9{RCK{vdup=GlmUC4lY^;ZN;LJu)*9@}T3!{_4&;KvY2ft?@G|xhxA#MB z9!sDYNSr!F@Pzvhxr9(T7`Y`d%P@IJ#AaA*0v4NXOdt>VS`9My<Rjw>@EK-LmbgYl zRqDl8KHGEENCg}}B=W?!`ki3Ir+DmKF4c%hm9u^_h=XZ*U!qLpKz~3SUTj>h0)>jl zR@y7Wte%Z5LXvl-K^D#@R^n7Vu^O)q8iI?6m2N{~rmqCgK&zMcEVW~x{v5UP6<k-E z;~Xpc@CWWqqOn;`+$m!F>teGlz;g$Mm*Uk$A2&)rSVZe+<XkPjW$C9px~sUxSBCBj ziN?!SqZ{qX<6wa0+Ro{;FYxZm@m&k%W>kX^(GM6y6BKu1&jQ$>Nn-e)k(M>};#4-g zioMAMM5fl6pK+qMpRUt%y7T18Fd8K8luTZ36kk1wee$Lm_)pN5jp1&9(g_IC*Xd;Z z2*z8-^{uPreb!1r$|6mu%zcc;ACUn9F%7Q$!3U&}2sQ$jC`cwm*%BXl5IFHjrq$IU zBO8wp`>3v@Sv;N~A;EJqaTEvpB1DC;8yFqp!~d?}f7fIwEtN_&%4<<DZ^s#23@<@P zc1IoO>f(AQxXh6vHlr|tA+&-v9p}2^1dW<s*B5P9eg)FkqaaSwy1YS}5m<eoLB6Qi zp^LG#WZ+d@fh)zmSAuy%0Kuu(GkYMi4|$C0?91;X7V7+WnalHj+msy<6$(=AU6>W# zTD(hr<g9cqRB3z7JQMrsdv&6!wZ|_YEw1F0)QPGoIV`{DF5nYmG}10O^L&+_tKV0T zTC`)!oSUULPOGblhNTs9xLl<uoh`|dl4SxvT1}Zja*z>i@K<0``RCo)lvb6q8!jqd zx@Yo|Tp>;y)`X`tYqKNWr&IOx!(pPZd-sCQE61rBud<8~uhDKj|A=KNnDO5Igj0Xk zk_su`iE<Nxn&-h$jCNK+?LY5!tv=Lp?kkK9gTWGRKhQW|%^p<}E<rt>J8115FS{FP z`v0`K<J@K;L&|&Oa}}8;zPa?haCk%+M=CuQ&-@32q2p|IobAtspW&ya!SZFIa`p!1 zR94F*Q?_R3Qt8i;Zu}i**?Ld7ykT?`jw5f_!<xhXP5ybSIQNqCS9z_PIVHNvdv(iE z_!8m>#bvX!!ml?}Tt_wH{f+Zp=^57PI)5;{+fQiK(|yUxx?x#4+%L6-cLn7az8;Ys zl><?Hc@L6gCLN8G9}>BH;Dv*GKh(Ba2u9g4&dPLS*(D#2{EaMl;F+U#IMg4#o8&{k zzR#{J@PXyGji{cbScc&8Y4pJlgMa#_H%PH&aOKX(LELlvg>&#Nd<Cf33{o^6d`HgF zVc5U*CQ}MsNC($w+{;YZS=V$vUDl^;mFR6*@Y`{^A;wsHxIp@(y%^<QF-EaF;Q&L4 z`h9O)d426iB<aU`Fc~|OBn~=Sax^ruyg0bJ&a9taMxC$<_FED0^fW{yCEGiQQuO#= zRI^y@G^9?9Ya}<51rDix%u*;&W^aPd;a4_t+(S-;ZI#509`w{&J|F=lQe8E-?k&El z`|0A)Ud^S}Ugv`>vg0&wn>ALNmYnQti6m`@QMm3;rkFo~P9yrUk8iwrLcSUG*2%-Q zD6WT=*Dm|6kgjEqz9%k}`?CtH9<6vGaDZ$pWVD#2K&wN=D8L7U#Te&yA`<jYbisoe zzC_})<syWrRC7K?$Sp((&1HS&T83NUp_CO+wt0Ij;n>zHFI;U#<W(p^6)1RaL&5Vr z3P!NIvE4V7;5|J&b)Nq9FV1M4+p(sR%Ez39;`e|L)Y{)XH)ZGGQS-Ok7yYM?;oIMi zKfUSx_|v(w|Mtz%JLlz_z5SmL&p$USf~WVAc{os-exk=tFT&6>8-|`0L&;!*1AkOk zM5Xp+dn{ZEpKdKj&daTI@5T$#<(CV4I_wR-)N2j<xn+AeqBHEfBOgSZR`cxe=y3lW z3r{uM4+%->xx5eZS8=$O0OM6L$MU`Q0%U~g3{&-8T$+1Col#MbBU%@17sjtdRv%6t z#r39BKODB8N85%fZuJm5tfh+ShI?Nxo`MlJyV$tIY)MUox>>VG@`^D1b>bn7%J5*O z+4-u;?QmR7Z}#;c&6)+rE74kA(*BQ(ha&k^BB7+1?Y-$OD~B$Lt)wjaSAb`0MbH`> zK)Q2TozVNyWWIv;YHnh*6D^N_j7TJLie7R$4sJzWJfg;=7>j0Z8hc^lv02c9a~7y% z<JlAj^;<OZgNaiJeHWzU-vtBYIg1~Zp@P12`~FoBwu)q?S2(rxL;8FW%uT#>G8->r zokr=BT*9ofr|0}l%f(P@p*8imD2BD#b-A+TUZaOw^E${rnSky|K`ax^Jl6bl9ej2^ z!H1ul53zI^vecu@FJ#M0>Vkj<+8t2CGm9PQqB}5Ox?KFC8VA9D8TFfm@z7-Tm*oa! zC3QcSlB2NVyRW)>f&wV_1jicVxk_-VCs+a;5h1vP7O0-rgBx_*L;HK)p|fTnYS||X zL&ENeJvNJk#;|rZwU%icAScfSwr=l*^XfHuJ4TzDi871GzVFhP*}tVmww{^?fS~p~ zs{zX%!){x{1HpU$1*`@U`S+ZcW`x_0@j*TEUNmA8K4~sDrX^;FhQffdr59K>SW}GF zTphf;%My>)2g4N&Pe^^Z3EIy35BSYaX`J`!rXf)7K9QZq?r=29iQ*y7nSQSsS1msn zuZ&P&o_3WhN8RaoNWA}O)An*>GArBLS?r;9XXXiWH}{%MGJ6@pc#GGtcm{;)4zSc3 z7#6#tB{uh*mj%Ln6;TAxp3)Dr0$(*p{r3kMb`xs=HJ1kx{<pTbw&a3Lt%(w3_Ml;a zz9;OGQCDl?<eJA3dTz+RTnuuJ99rQ2asStrE$3G{?h3|HOQW=WQ5bs8O%#7vD~QN% zu(R3sj#Jhe`I~?BpXr>@wZ7$UxEoL8pHGkqpC|`hcRIhv92@ZS{P|P-ck{)w4gFvI zb^H0#t#3BBw>LJnx1K)R+Wcl?YjbPs**DI{mq5S_D-b%)HyF`)6_vMJ^gRQ!q5l1Y z{NTfWmU$fa+8NG7Osw<4pC`_#APJ}MUwa>eD0Ul^dYrEB1R99zTelF2ZzVO!Cc>)- zQ%*V)vk9lNx%Og;GZpRSYk$XKE0p0HQ1AuFT*f5;Jp`bNZJIv2pPF+&fqQwg<A~q3 zKChX6y%YEKY@7yEN%)OFB|nLu{kib!zFXU+eT)0^)aO`S>9xV8SqxTal7CK<{5YsI z=6}yHb#Ul#)bMtp5R`$d9u3|5nDl00fI0Pg)A@E40@ptEn;xTVM!x{Yz7lw-<MI&Y zNMduxK?pkz{DKhv-URW(?tL(r!`{~N)UdS#?uw-GzXNyWl($uVmWsrdmkTF|1oR|a zA&)~Vex(1h{UtW)feE0Dq=T?Gsu7i7Osz|jnKnmdKo;dQCOx-hyI9)!DZU2OjJ-*J z=+&ntZtvXgIG<V@oy|6ZD1Q5r$Gr?B@}OPjbbQ57!2YB?U{k%(IP%gv!{ly!B~S(E z&$-k^yh)7lYgl_fipI+<o+>ut`uUfy2814k#^eEc<Q)6{kn?~0VKRfuZ_CAUhjGm5 z`UjC8W4W;O+6T3o<oIHhoC<W1BRk<k{Pr~<B#c6Ti7mya3<80F`JEw9uk1@n1Nn>1 zE0mA<<PnS>0(hqjOTDSyt#J*AS=w45%w~BU!UC`zkC;#Y^Vf83=Wx(NnU#Mp9_jsA zjCI$f7C(z+3<n(YaTI-UX45RaERW|p(q5QG+DL;a90l=&g1X#QA$;=>fp9ooeErfz z98?$ZJ16cq6zClXAK(vJ{!U<+134)oF`%GtWU3MJ)c{kuVZKZ?9G+|n44sR@vy@Gf zwGz@^B2rUSU3s<YL=R}hgm45d+j``+>TbZlpR>+=pBM8<e6u*_u5!=yX|}$C9Sx)0 zrcxAB#rY{SEEgsF&C1Yu`^3pzremFLso9h$Nq|ynm7dSW?rO!<5Fxklx1wrV0vf4X zy@4fYwCb@8N3?2KhIU1*GT}<x#7e5z{M^37UXWze18P_#5Uf?rTpK-$#9(9l`50~8 zk;?GCs67|eN!n$q){-n)KBT-Tw6K_d*}Bu(7OQFoCM*<rmsx`_Nxg93_p++0b(f%7 zqN`|hgz3|%QTCB*-hrRs0|JHr%>nW|zW)ew{QX{k7QO#$Jl%S+oqPY;c(L*P&-b4% z@zaoL2>jdhCibTC?^%dxkdn0IC5N+w#*Id=2b`U11Y9)bgG{p{VyVQx-BI(h(ZJuJ znH<=~zZ?8@{^RbbaXR0B)jK&pde_@KJEz=GTThMWADpPAdgb4O(1d#s4FnV8%8iO6 zh{KEryW<4mbe49U$NnuREj^*o1(38JKmKr|9qcsreJV^dnFeFOCGq8go{ZNg4b$#8 zYv1FXKdixT{;fZNe+@`7CUAp;F&5o@{<np5bo90F67$hM5X)+qK^$1d<^o;pT2Y(c z@gger>dN=FOFe0o4kh%%{J^c;$A$6T1U9_|d~;V={D94;Zm)-4ti4{lZ1}p}2ucnG zKSX)970FE~><X~N-x^dz3lYB4_%><CHgd7>VcbBu`YNIZ(8c-IX^D+4j`&;HbpH_r zVe2AE<1!4kwGw5*Z|8<7Dj1O(b?qg1hZIQ?W?;~|NmG)iq(u3JphZk6w#om1EHO#0 zc2Tg%-7dk1+e!V6S{KdGd~JEbxCP^2Hsa>DO6B`DCXDFQwcATW(-n7TDO9q7fG+C) zqXV~QQVJQU7H9bC0&0y$5h!G}f<)fbEjdiP?dA)ch{f9)FNYwiZNo!g@&kddZ003# zg<d6#&}Fo_AI6B?)koR=(6wSzb;B}p3I$TQplFBU&%7YSU(2!cpK!gi>Yb-34-a_X ziV#ublt?Me=BbGj>^7q0UeH;fqp;>Xkx*DcIxEMHfW8t#%VEbFMJNPaz}qa8ta&`I zg}`tA{P`08Uwqqf1|cuLno%N-9;b87Dw9^}2n*!@&F32^|8G8f3e8?@Y<;t_y|Mjt z^H2Hzi^%_9lN;9p&yAXSf0$sGQ{%mzVzD_}WUtDU>A3@YSTq*P+$m*soCWB%tVW<$ zOyrE8V{q?Ye3fu=<{#ymTkPwy6vmDh*t_yJI?tZsXmiUJ8f%OE`I5lB!?l&C2VM$J ze6L_wJ!?h5CE@(q{eM~WyoVL2n*Rf{-*|5F|E;af?d?DL|Cjg?EE+C=f+c8q<}d6S zvMIj_3CqRVAexGYU71Nz`{;EvoQ-|)LECnx5G_WS7gfJja25FP34T%9jXNZ^jvPId zly+4KynCWnPH_k$pe9-RK5R5piVoNXIAzm$&$xssH|)F9cd`zr$oZ*C^l>&-y_v9g ziCeZOcHnhz8-%Etfsk#tlhN>vEE6w%9*pL?sZ8UAV*ola^ONBHh#ynZbgPNXO{U`@ zrLL`_WdlEV(GPRlYEv$vW(@~Be+)faqN@kHiBPqgPP1*-ItncrqdQBsuRp%bqf&nY zd_`KKHNf9&Tf`OGid|>TbzSG%WDPVa{G>*r9og}RAATt7NLwh=$KW5CflN^jzPCge z+n=WeGUMeXF43)*L=&Ih{%jIhUK<rZ-zE!N8u44=uFkLYTW9UJQ1)l5Ai>#QU_A!K zsAw`4b0jmYv}>Hg4hbA>R~yUKj+-<l>%&&ZK2)7!#woJa9*tn}Ss(*6XX*7MPSCh> z6?~*><vI^H>;aPF@0J!Ep2)E8hIOmc*{Bdzp7$QWA0$L9;g#!H*$>|pCe|E*mRiQd ze-XY!Gt3WtZ%9BVS`rn!sd}pEg)sqrOk9wE12!mH!V#t4+#c@&mQhIbd+#!Td{#Aw zzIhs_7MJj<W-%`H%SO3vf9!`X1BpQBo9*iMCPuh}bw_Z=^|3EDO3<p4l4@yNgl3dA zI&=)YwwLRwZM(InX$;PFHZWbIyN;0js;$coTg?e7E?U2KSwrJI7CM#of|dqU?F9sr zqt;TA!NGAEx%RNR1&;vu4@h-#6~R>)#nueL8gJx2a^;*XS9JUxxgy?465Jq^5ZUfd z6a(<*w>A8~(ywt;0ai}_z3Yg>A}iLvmY4CUR%$R@o)zFfFM~fXg9pA0R>vC4m{*ao z@6Ri@$~kcvvn+$j)_$|VT(8Da-y8RIh<np$Jf4*lQqg!UccrwJLJl29KEKNH2);n1 zpu6Sx?w91U0+MpJhnK*!jcTU3xl!5u!C7W*e#JBYWSW06%_W%T|0-TsadDKgPKyL@ zy=$y|c2*~mzRm^}Yq~#UoRqeL2^UuP6H<7YT|$~PL_K;Te~TwOu8BABlO!j8mqBgK zR>vP66xp~9U^~!dt&2F#L0D(H@+qr&2|m49xfu(0hm`=iNu%;YXmX##&79rXyg!*q zN$sH=EHQTOk<&~lDH4~JX^IMH1CL^194%pztY0oi#!_b)HE09=6y5kAK_)0j69DzF zYGK+Kt?U24y|3?Y+ep%!zxgS!%4JD<C|aZ}JEKIiE6Y->-^h|qk|&e1H8e<q64n&J z0H7tt=lkqeFWrp>&;S9FRx%T6cVd!g^h<Shb#-;sQ&BVtcb`7(PjApdk5`RtKe%~H z`NcZVceb|vvej%`$D>Rw*1Z!rT2-o#7|O#5$Ixx+&I)g}p{Aw@!+Z1`Z{Ntoq@EL~ zX^}NR3w^sko>|U=%Olh2#QV<Nr7~9>V1Z=&CRM0t4e1k|TPWRxv0!J(b(&c$QoAZ_ zUA%Q?(1hXz<k<t9Znv-0;CZ6%&YrOgBE2ZYQ&!cjB;!g8qUB{?E-gEi_65Evdr7J6 z1!c<aZ5mqU^1GXkxoOznbSH(zM&u9uG%AQbkbQ4>?3EZz4)$mH(U|T?Xf<VlM2iMX zFi#qy>mpgkxk)u_Ai+MSJgt@y^pS^ZcsG+(C_PSpGzy(~oS7BwJPcCDQXJ;;<9vY4 zfG+EH^2cKYepIgQx`Ln4p`qJttlskxQ@^;}z#qf0qMJvV6AA$cAD=`Vd$9YvBUN|H zOe$I+kIzSYMRa*sIf=e2L!u0Y!dL^$6{RXGYnY<cTu`4v$`xEbvq(X|55Zy2a!Uy( ziD(wx`_R2--Q1GtoW{FlF1XX-(b94elWi3x;^|KDWlZ|geDJK)QhBZ&lfSXfXXi6k z94&Y}z4I(yIcP=MYH0=0_=4JR=nQ<!woQ7p8w`1t{KOGLd(CY-ZOe}6DJ3nT#KEF? z!Vw}f>`rwF0Vf&s+eyxEfrQ=G;;k~y8wKw@Z{~NqTe92FAHUn*WtHk=TH_)?V33u| zs}>`M@i7`^GtNnREkbk_EvQAdm`7wF(|(1Htpvkx0$oE7*YrGK6%=PS=r)%V$#!tl zX%)ng5WYxo(=AbEyP|k!lH@+d!~E9~&^a4zA(wPa3)Wnar}i(!#k#7#7xN0{Xn|rL z4{Yzk89Bj~e^dg6FKv-9q(xuu;FjOL1Jg0R_|Sb+zIR6jy;JcAcCg4X{m5|QnKO9L zKcj_w`Bjyx{?r{0r@^?<C)Zcaw+%m)T#YzFRZ;zEe{A2jC$|`B-XP%2`hV7&__>dt z_v%@DQT)z-*?Zr1pZ{ln@7wKH^$HEyd(a5f-iP|<v_N(LC$&>AHN4F3u_Bf3D=BOX zYd@KtBm@NuO$b9L2nT-PRJN1I`&q*#zK@#-W4qRBrd!dJVXu=Z)GK(Np2my;ER)lk zeAUzbpz49>KU8}$_2Qoyl-98aw~Wk!&a@MULL`;PCK(9zmV|S=sV(s++nRW=P<u&F zcvG{<64}<1&r5e=9mo0g;(tWbGdh4DX~t*!3!P8$FJ#fx?P=cD|sIQ-KX0dzD4 zk?62sp<^3wSVcb^L9P7bB}`AI<mI%_SB;4$&C0Pi#)wp{&NB*@$<H*vmG(fRaR=$0 zs*fDw-M|K^RmfTjdVXSLzotF#PAOk%hyFAeIB@E*BZ6n6SQs$`yPkdvaZALT95rLt z%^kJFlD!-(-%DhVL5Z%4a>o9Ka-Q?MZDIwWa=R}^uvq8Y{SrOLLdD%S5d0f!-%`&d zSJFObdqj#c-2h7<665%)%pP=dQ4*A$K~-`tF?ym!yuMywy(~EvyYyIc)(?u8Uf_(O zYoE&XALUqL4DI>?ONzu=+bX~Q+hqpOLk!U@@?*(yEHRKuBPll&LZ_G~Dl+5g>*KNc zP`A*4Y&oKSsS)J~j@&Vo72G_m!Rm)qQWVhG3WNa-kg;4Ao2JD_Q)P;ZCny$Zl}C~i z%<#`(p|JpwB@kb!(X{8!$HFYOiYZyiPGg*$YQq|?etxjS!;+IE%H|I)vJ1E^r7172 z1f|FDq+Iu(%;|ZFoij6pWkyhG0CW03q9aUx$1_KqMxF9}E9WuASPKrOC%S;H;ykES z{c}ec*U(PCS}v{HR7<y7XqJ=yGt(9tu`{V!OQvq6VfXD{t;*HqcRQB_vn{vdcI#Do zti6ZJ83s`8^@ZDA;>{(y470Lu)62ZO!k6>MJtw%R470@ca&lRSgJVpWzGC@OQCWc2 z@3*qM&XBSOFkjaTUqryR5Z?w#N?ofyo)VP#jfWNYFunBcv1?ZpSy<W8Taq;Vv2MOg zHhVu-VZpmN^Y!YREuh2Ytv&Sb-x$wI8yg$Pax(ZO(6(%JEys7*m4>z`=?udI$n{Ll z87chmJ^m*zpK_w`X!<=at9eD+f^@2QY8R-;2jBDl+89ln_0k(uiI=ppLuXvv)5UhH z@8y!oCz?TQmws!JmW;Aiy^U)(lmFVl<z*)hTG+F;3p|wPSHKH#xmw<dYOd$hlQZz+ zQDJTwybhyyS#A-vP+NxIME5SNP!ThQ_`GqDXn*VvK5`5U=ft+Hdpkh)w)q)e5^m{< z97zZwytmg$p*b-r{BX{%e%PMa(QO5va*alZhV*3>>EtE|gf4>U6vdPZ<8YzJCs)=t ztB82HM7j!Q%Tvg<qF}}}(V{_@<st=qR+VQ2U{`+DjU|{0=*2#_E23JGwb-dwTZT*X zRtX}S$h9ahol=0?lC+tI{3A!p=|g!cD1^j<b&_6%6mYjXO67TS=05oP^kv>7f6B7% zXPI%a0Y{nF?%W3_NOjf-ADDQ*-!FXsV(LZiUGCe1LDAcW7luRg3-qng>1s}^1{byj z1r2+`N=e7snPKD!5tJ3*g=964b8+dl6cv;j;|=W6qfZSl`EpKy{(N%fl$V+|G{Rx^ z{qhV#136+)##M33!gPvXlrWK*bctG&2oKw?I96naWydRR^`*y&Fv*AGu{#M<uF<&! z$l(DKkt@&&wD5A|dO0iOlx&L5oTmH`3p0W(r0IIR?;hpH;2ZW|KDP5#D<B^zaGc!@ z(y{6mwdE!p3<SPEI{PfB`5GyNzRiY!aySW^qOQy|txDT@Mv`1wU!ltK??>=#!PQPf zMf;WU_nbPanE&I|J&oQ%sT11}er%piHHXqm=hhwEqGyh((*pGr#ZcT)GGT`J1lyrQ zfXArS44R`fSvk>5&a=!I(*l8Qdm;W-OT{Jp=tNiYSz+e1^kg%{j1%=#)p-F4ssJX3 zRA1`mlrRz;^VE+h<$x;RtQnFks;<9rqFaAR@kOOOA3EN!2j6T^r^C6OZ>zS7W4*Nv zV{Vv8@zUgBj;1T#Endzpr~N#j3HAASM8+X$?`234ow@rnU`_!*p>8C35!mC<M?Tkb zu@XQg!;)~|Bw3F!y<7_zUNSkh;N0Q#4Xg1xX#%6EQbX(@MMV^G@V_}bZ-LZ5m`AWe zIWI)Kz$TK1s{|Cza0*A?ScO@UcvquOX-?Aw=!P;(7ZF2(HB_L4=D>*Apr|jH6--J- z7JI{(BGrbQGq@}j;?XQsod)h!9Pn;3+Iy=~A2V1wrDl(r5?BAZ9Y7x|z-;7q1llao z71N!3fyDZ1T`5H;&$-_ZL-)p;m-o6(YY6u!^CgW3J1eDaD}6D67a?uF@0eG31B!06 z>6P5e*Hm{d#|A}p-t`uC>0M{{x|uV^<IzihI9r^Nq$#c3+{iW$d~ZmKu{~a@Y1mrl zZUNlp;n-bSt0D_{${bX&JE8Lx`Vdx|h=X})+cVtV$m64xXi6E$&DV6seZbWIOM4lr z#(D-PQEBm*f32u;fHv?pjE|WF_qm*)?vI_@LX$&<DL?X;*fkJugYJ4g3smVFr}39X zHZs+b<rYDvGo7twC3|hD&g#~qWl4wXt?X>Kgb7J^=)ew~`2OVYc95?a7<#ynA%oKV zKx5V?J8*4aKizJzY6Vvc76YjoUx`Ss9B1;C2qkPluAb~Knoi)!)SK9Yk6*(AWTar@ zp=Hfl)~_v#Or$Mq0G~$FR<qe$nzV7S)1^j?G2>Cf`0XJ&5ZOHNRSoD}?trdW%quLQ zE-K}jEUoKHi0u-4+S!D22!>_%=xyuIf_5b|&~5A6Dup+z6n;{vaHY~uD;2I#db4!N z|5v(X2fY|8l>Wa}3jb%7!vCyNn1B;Xm;T|0xU`9l_sJkwmWP$kSwW4L(|$Mz+(}eT zd41Qp&Z+RkzsW}U7C4}x`vPg;^)l{em^!>{X@V{;8vBVGmLB%I(KK(wS16jx)<a@8 zucBay(<9zO>feR?K-oi-(U0frx31}g<}S!g=a@6VY$>_c&vJ(3x2a9z8|&)UAv_kP zXdt*WRb_FmZZgU$tQPAQSaj?J$y^b#Uox$qv^xA<RN7pWh)GR5g>1-fySs)R`HAdM z&JK)zQ;Sb8yIt{On$Jv>L3p{{9#lJX&g3$i{VR7+dR>18a-!YpO9_GUxwAW(e#vQ6 zSrT9ICCZZ84jSn9vUa>ui&;4=vGJ~&WJg<gPQ8C~X7_%87fTf_9Rx|Y$G+Y<+gceT zqgF9fr_3g>w*~+C^Io3&IBfz4{@tX)MnF1rPdhC)uS@jgT_^h<8{X8$Qjo&CnY`hx zYl*!1v@n1%1kSDFg#<a~JU9cqRUzNX(3#kDgGyHn*|gtE23ICVCvzG{V$8kKj>(?8 z6P9qosVYsSCrtI*kog;)s=M40rTuI1vEAeA)>ir+Yw1yOz2$AMKhinA=={HL)%mbr z*KS5NQ-G(oUXfm#Q#0^Apz{e!yHWCLv+v-Wfy1}4tMK_iKvQXxFkNRAUnlH)!{zB< z<q(0hT)2@H`7m%TVXllllDbPZI_R`W!60S`Vt9`EhVen$4T%KBUH~?UcV~Fz&!^K% z5h$$g+i~DF)HN8}AgE-g9*05(QhZ-Two+s%6!KPm=m6gjZ0tEhc&EiRue_J`;Nve- zKPr9j_%ND&$W{KG%!w_nOaEX{rE!nxh0z`PvfvkMgABn|X9M>GarP=O8)qtLa0Rf5 zY=|p^pjn?gv~R<@^=({P&OT4r_GPIhk?;*_Lu~$Bq)HO57+_k`VQaC7szh7wJ@iGZ z7u<xN_5Y{rC^qgK|9<1$?ym7X%$;B4x~8=2U9o(g>wa)YzER;T-@~gVy6URb&(dxd zy4^CzovNbegqQHO3{PdAy(%QOjn1Tv;?B+UBT4m;hzgrxB1_*=oitNdOoiF~a!`~( ztb&Wrr2$9;wvV@*j7p+rAOyY$+Zlt>GG^~Ep`a9p{Kk%2PjtgNH2b!Em~>I-PP&!y zp<zi=e{PRT#mOgzIR|sRLX(RI)VC34B?|GnrLn<1{5FhxNZQ!<pf`|xXroy+#y*W4 zklVe^*N^vy?emEt(m!VF+@NU#e+v{M`G$N@p3U2j!{_baoYC8V3{G$Vo>;w|<n_5z z)c!-vQ2Tczi!x-licUj67%g5>7WJL6f1lZIl?#C7E7MpveRd*O+vB2*U9|#L`rdeE z+2b*4`{^CNUFHmFRAzGb<BSwK^`mnqU>ERaNzK$=O=I)cQK@#d39mZHWq@)_Yp7@{ zHx^k@=2QG4eCvt9#%#M?Z|3dUxiRJY<FQ5f+yaE0lK$S=!AD^M2}P6w+S_E*g1i80 zFA!DmBx67`1TMx{CQlMiALj48#lOJ3r1cu~2!fx@$TjI;4r}N~dL)OE0Ukf$z-@RN z&2d)AK#V1=jfs1+64z)XUC&oGA~cins517}c#Ij#S&6YG1~}JPI-E|%E}FJdNX>J{ z7NbCuFO-<-#4rghA%A=cXbD@3++mBict;Wg*Uk!NyfuI3E1G!b@>W@nD;p>^bVnlx zv5%`w8K&%0ug23CCg%^yEGLi_oMMplcnm91WvmmmEk94crs$RVnO5rZ^HQ#ztg%jt zIEFip;alCgGeQCrX)h^{8$*}@R}bY*vFx2nE*Cy5dP8L<=Dey?0(Ef${&eejI^!bb zN~9Ao$;zZ{Fr&ifK@M-uSFOrY)_7613RP+aHVEDra!xIr<p|5};Ee;(0VhYM_$GX* zZR2&)#p}x>HwdFjSZAeN24YaNQpI)jvXb>%f8I0QEJVQ!gd73dOr)SK9SD+-Oi~(# zA`Td3KciaV&9WAyA?|@+`3{CE%Y9`z518z^iNNaSH~<&-RKf{_7gNs|-Cpe=H?38& zj?305Vbgx#y!1g8KlSfd4WUtZSyCz!`HklX&Z+M)r-)Z5+^d)!5mlt~J%NjK>t!>( z1Ir)zfyR`N$no>M9Hi{a5A>Buz*I;tgBKtaXy4&uS9BZr)0<l!NBL0RfpKtd=Jux7 z!@248@-9566?gt9Ins);174{KFWMEkEFC$9R(<6Ab&g*UFaj3s0|91<#Ef!yKQDGm z?Ty7$4d2fIAlyO|BHGMw#fAAWvC<Yyc>o*G9^TT^#~yq#P;DM(j5HW?1C4YLa^Q)H zGjQ$k920pKxP0h-a?!d_Lham8nfu77AS@ky2ef2#=)rnLtsBWBeSWKDhi}}5^`T~( z2(7y*yR12~i?%nzxcD2|@~bgLG9i0~L7_avZ9s>lZ<aKK#6Z0X6}M#L2IVc=k$j53 z4UIM+Bh$4=Z}TWgAZe-I|FA=~0H2^Ipx9Qh0+kqGDJ1?{S}9CEmYJQZ@}s&$&lT6m zXR#TKX_M~p$acr!GBn}AC}*$qeDho%IX3<STGK1;P0_$|OxE$3>QCycAIFpOJ=c;W zTr&6VkH?J^^o;BZ{v6UNKAcV_0h}Fh&f$=1G~k42y*&8b>w#$N^}e(dRi!kS0(^;t zOP;4ys3A<nNF=gjd0k3`CMvci4WOC`%SqX6kT5Jysm~Y^LD&b^^F3mcp$R!en+s-= zOEK~?=E*NhyoEOYES3#WZFh0vq)8z<cPYAFjNVG7NwWo+M~s3OWf*BYu1-7Myc~~l zSu?Zdk*HGveos=Nxm=A6s<Bn<@;SXhq2~<qUHcPJ!mtr(oTW$RNGa`lgMb7nx>+wo zA3OcSz(lUPUBAx!{%3s9uO~u{I@S-?wwd>+I3|9o59`;tK3<0p8ILvoDQmq7oPmGi zxxXS&=CGtj#su}~f^^2A*l;?jM|eJw^`f&WX5&dgw7JB;LO!gPCpWA=TN`P{tnLL; z+{`sJV&MPzd2sr8H0Q~fD+6?bdxP<GNb%?#+Ad-6P##j9E$yCqQGBn$wVlsSBFY?2 z<G=(iZC>)|*q$I`;32hTg)j(?fD6cCkBEG1-^8%=DAJ<Pzlm-9?Ih%YJ9Z?%8TIk0 z*3w4H+R(pVC)ZGsKX(4e)#zo@d-6lR|5KUyedROkxFaA0)q2u=qg*zcFM!eJ`(wAC z)wAYKaPo3Ae}tf%6%6u14l1!dqoo^%>^aU5jTgQZf?x<oGuf^7(&Muecx!pGw~A9% z25riNaTni+B!DPLJPJ4o;9uuK>7(#3A|hgmc*_o}T#Zu9Z#ML+Ox}}5Zpc`(D3W&m z@GqRrX_$rLuxYucU^uV`8gcZ<TmzBR-6|`F<zYFp!%jw(HCLMFhvIg^SFrujpenG6 zlxq}|!f$I4J!W=EgPy9$C;bRos!}^X1*hI#2mpnaDI8Os!1a}{hUh{p=l?tNi_zyp zSmQTto$=V;sCd&?u_ulCCwn~AQ2<uorKN{m3JY;Rq+?eVR!l>YVj5<7`cmw(3@6U3 z@OQ$6IVZpz)9os`kGAFJyr7T;I<oK}4ZQZJ_1`N0CNrL|&2D?Ez4cUneTpmjsW>+X z`cu~S5R}`hZEV5c^XJd--_DDjE&X5k+j;T)#q&RPwzs#ow!6=Ex}865b+?~A+xe5V z^%w-0l7FG~Cyda%@$<{gd(MN|Qvd#o{MFb#YKIES_k4D6)H^#p`MI}$dBu;znesZ- zJwt2!RPv0<Ya(1RDAQj{dT1oewh6xb7UU}0(!`6>qzcD1azo{RbF<T?PPaMc@q|o@ z{rL*^uS_(5VU_P}p-bv8gQ(8h#Q+FD6yqOs=iwhvE=Js(jOYi793@Ag32WnkG^d&} zApa)%E=GkIu!b)*V71QJ=wR6+MA(l}ZFV_ZR4yqL-VAoippYD<no{;8I!WfV)~+SY zeTyLQER?#6v1|U0>LR-r)IaHZqi_+3pW|YLAB*rW9|nb6?|hRxk?oa;X_x3rFDZkU zf!rq;wGhTJ@G$EM%7zJdgP8nTvg5Vjt$!a1`r3Dhrie=<fBJRL;Mm;r+s%Yy?Ik9_ z$qTV>)Y<cmZ8xas4&4wZV`vSh4jMK_2qb1r{LsaiwvZk4%PoqtemI!oZ9C14oaPcs z#ith?27M1(rlq6J*a_}7=p<*|yW_DS;9E9NQp<<w&;c?1&Vw82cMI9oXr1~IVr)J{ z<gF{1fiL9Jgo%6&sWckgTK*JmuH_aaF7!RCeipblh>>FP!R@zPum7^5*vxg^5^RU| zTVdALy6{2t;X_7LEWmhppu8tk4hDe$9*L<AQ>e#fwX1Fcs;1xBR=|<uP^MXy-xu33 zs_+BhBc6-J+gXuJg2@Nz5azRp=fE1tWt6@nVOr`OR~M5DPu*-$_k3;T+}k2$YBI8T z1@L`3q~LW9&<T4Uze`Wc_3u>L5f|3uF^~P58)vB1qngTBVsa4#ht61WOde7sOwm<> z>SPTPY6(=}XdXw&eQ2SDJQpM}Ln2Heo*MGX)>!xVwZ=Y>-t$3M+$bOccl8<ayFv8B zDiODoj^oKS`R}ywWE2EqJ$`KsRWy}dkGlJSWAH}i%>*Ab3sIBitlURbf7$VW0sWV6 zQ&y+|_x<QL*1&-ER2{K~A{Gd<DIE44yz2Hx>=cofU4etp^4g^(EnVT?JsH~r=hhz& zVLhV8>_#myG`6VE;sH9*U=@0@z!DmyuOBizEaf9ESxl%W<K}2DO*2vncGl}-S;1mR z2#FST95vifYM6!GI#2ngS^cdUx%)_*j9oBj(i)$7sUx^d7B*Lzhk5w~q8uF+K<85L zd$1K?6>aM$N22J7RN*oZowjKgjS8Wo`ZDl`PI5cB_k)i(8v{QGK>CbnYq33T9l0SA zgc+|zo<trnwX3<i@P@})AqcUtJ8-e05PdfW_)_RN=IQ;KOG@1I>YSUq(&p?K{}Rh= zu{E;rF{5z7RMLUs<&!yINV@4;?jPWM@%v-xQb&{Q@ub=jWpT#s{!SP-R@#%t<3F_0 zUXh!PI{xFZc?q3AU+>S={muG+wWTqN@gg08Q@jA+rCl90GL=@<aNzDw-7zS1#WAJo zVlD6WpImR~--pJ~QGG2OeAY{ncXa6AIgv~DQA^ZDOCIzN-<*jz;pWQjGj3GE+eL3W zGmty`#vSm~ghy_%hqnOci-f~Gdby(KF;!szN5*bv9eftZJ0_bd?EK4|2`w0a<bg_q zh_%^jK1X_Ug#*dC_skmvcH@y|ftxDq{J9<7R_Oc$iZ9>!7Rt7nKjnB|Je9#)0yPpj z$HHR^ysLSBml`kk&g6<P?*-)vUKg+(x)XYafIRNPIJ*Pd^`QsDOz<FuJxf35@_?_D z$0Ao(FAIS+2T&Ze7a#4fIdJ0hA@MW}dp3b6&-XAw#fE~7!wgLbjveHreo_JXI-N{_ zKgfy_Ru7UZkEUk`u{F7p8*gC}KEunAms1rYm{(4sX#`spW#SORi7XuoJCxODT>P*C z?qGwkg)r-CGm{DyIj<0KD0U{F3)#QHYiEPZ{ddqAlome5johP#W$<$L=&2g6-ft|p z7+b^%9KKKM9#UP&0Cbe88@0~_H>ui0gMysFJas2UQi=0Ia3H1WYY#{zy%R6<T3eQ2 zEgl0?O^&5&BH#Dc9OybBN4)|~GbvK!hNHaQ#VwKioy@I^MxlvH9_9twviAMZtmM7T zmG=TCbl9V(hbK1^He+^>DoR!+IpGz-l9LmhsCAP%(Vd}nBL-JXi(NBz-8a@HTGD(J z)r7^N(y~%~IEMWMPV6Zsqgs<-V1?1koit6uTCzYl=M;BWhUf(-G6LJ{CQnZ7D@efn zS>Ohh!L_uI&5rtRm7~_LU=1UC<&4GMYFJ`_5a2v`5o&*L*`*rI75><?3W*VID|JtZ z^-@%{GlF`QLoqvZpKF_4Ee+!+f`p)<q}AK}zEi`ch<D%vS&$IL+vhO}HrVLn;%YW| zdXbiu#2!=?p<`G2x)T@uo^=&W9o;NS_OQ%tc>_zQVcSwanu)EAI~T4tHTq%k=+#vQ zEYKNAxHva73C>vSBY((8rWR@cq85`;WGQMIGlgX-XdoJNRvfxCOJCm~&KQN0kWXXc zNTFC=m%yH8)N<cPYgi)x50Q%CRt+?iYdW1)Nl*$wn#vFgo!;qe^oSH=h+S>Rly6h{ zddQpvD*Xbq?cpt(lSzx?rx`P*tuN!v@wu7Ce&$!Kk0zxIjms|TEP+G5g&7j1kRV7` zol4@;5`&OydXHTZTPl{l@K#*GBL6Bh=0fIYW#q*Q=8E^sBiN7&axnqjevE@!S#`8O zfj-D_zqp$Vf{Ww&VjFtjlyhic8hGJ0K1RSs73=$B$pOaB?@Hq(3zg#yIINdV8nk@r zDW~@em3GsT2xSC@kv^)nWMH(TWgw`=nFb9go9aHP{Md=(nHGd<=W3P4``!{H?Jh}E zecAF^E=lF|QB4nWKxYDPF!ssJPA?}X!!QXNRTr9!?1U6dO0IIMz0=KG;I{eK%*-w~ z!xYnc=L}sSPMqvaC|%{ijdTc^%!JS_ib#k@`31z>%j?Dj?z-mB!uzCjW=Tw{#7Xg# zj|&w`8=SREnU<~}1`cNf(a|{jPIQk~q;%CO2N3fDm609Pyu22`@Ji42Lxz{QUpMBg zWw%9H%aAu7j87g+m!2ux22iwF&E{cbsG&dYvkCwtWCW4$00;^{%)2yMrL<7j*}A+) zqR#u%NEw=qVneq|<IKAr2$4G<I>}9IlHE)A94Zzhd><`u!Uzqvk<X0oK)1puULAC- zG!lky!RI9+wM~*F%U^}pv+|X$^$mL_?9|MPN6rSV>d1eR0ckb}v4>ivhnWXvPE8=2 zYnHE`KofuCKDeHsuw@U2Au$Y+Aw)CWz#$_B&K)|tS$5z5<YfIIdiX-mo8G}dU*v<9 z@1$b=`5bfj%hVoYxJUvky=67(5A{~IiRJ<u_V(j$*mHN}Wp?6%eb>%q{KYoiPPt8Y zx!qXVnD*zx<LPus!(17X6o<|)IaJy*AVUB0&b~&Jx{mQ#|Jr(LQbPu?u&gJhC$_a| zTJ}S1<5|{u<(=)#t`n%eMz_Vx{Twaleu*-J;xcJRr50hCm8dt~VGB~98Wte0Pu}}E zUYag)KoLmkQ{^qsjVx|8s}=`YHW1kieBZoaij)osv7dTZ{Cv>RFil2{PItT69u+48 z@7u%ELRuXKj-&Q>#;-|IkFcZBwt$Je1Xem;l9n|&8x^&Rv}60$vz_O)ImAj)qb#Jt zeu&r9`>;6}D1?tlUu9)%lW;j;BhilWrmLf3de|-NNgw|AWMI4-gU9f6P&%Rc5AuH8 zbM7rSKebt6ynGR!H)0+gx)4yY%HyOF!mKHevRZbC&1(0<Pw<`9Rw?FTFsIh9F&7L+ zRX7pqbMB0=0d!<tyuOrHGTVx#ld<!Za5}~=s4(_;1!t@L`7C|6pQ*D!Gum8nt?%Td zUguZ5g6Z>CGl5=e3cvF7fiBQOAEK7^tYvj!m{YHAMr)0?>uk96lC%A;@B7dLSY0h^ zH1=)y2LWZq&cpR1^(Db0e`#6YwX7E{>v_xCX=y4{$v)%;lrP0#AD!8~9}Lj}A!ld$ z8<*JRbel`=NKabGBmF(JY~=1q&BZc`i4-NheomX}d8LL|N!_9=>#Nzs$ErTw6QQfQ zEM&$wC^yE|0uUK<2W@+>L6GWJG+y=0ipy8XX<+vUa^B%>r_-W;y8O>J|MQIh*~!Kp z*t_zrCwN%j6)$JC<vu^!-s^NxkNSAe-=8(D&A)QxyNf^q<^@4uL<WN4JnNdy%+&AC z(COh9YQHhI@A^aA8thuInDY9u)Lh;<kxfed+foQ)1+%pO^56|rmWn~xZ(s}bc~6wc zA4wLYtSl&S76F$of9InEr!CZF+z=WXgxI?d?SI=8Wn(vUd85&%cl!8F!Tb2%els8C zKvHD>b?#M~B9zC|M37LP)gu4KA&)i?{aWm4q~9hWq1o+CRaJ&!Wk%nZqpyPXvkal_ zYE5Nl<0m(|rRb2?9Dr4*x?$cVR8K$<_Fd4(W^Az}{J=yYEp}POn#IIDj&ukAC~$9X zU=|k3%#n$$3jM)H2O|<DY1{<Wle`x|ntlFKP2bKm4`S%f4`!cS=e~`1?C#CfpJu>9 z8mccXYd-=C^rsPjZ<-JxE~XyF32}_kh7f>%-Ltma+nl!Jm#G^#!;PH7!Z&!G7RUUF zW05vb9CfFeO=GL+3MZg6*~>;-EXD>ZymFcT<Oun>DQsTpzUa6-%wmkJEAAkA8agRx z$%<|#ymKW-dX+c@CLaAC%&+o59eY4gbCtZaJHexh{y3Qd;UzrAUN;(U%L=2Q;WnEL zPm!vtoaRxr^Z&q!(|h+N@%U$YylXB{v~$y>=5AA&85LWQd1B*CMeWC!KYiP{YBo#3 z4;_0au-R7Hko8nAI>MY%R1nSqxOiGQ*@)sE9<XaXE4a-irN_Hx-E2$OOIF%2Rl1Nh z7O&V&NPj-|Ub*DlYzMOgT`ZKAIr8ES!+qFaT4?4f_y_M2ITwHsK$;WV!h+~Cx3X)w z!^T51W>Ce)WtO5&hactg`WhoI$~IBayULq2<_*2vvRsl0-X_DKeg|wYo682R((0>D zoJSzZSL2V_T>h9ZGmt33Tt(zVuSc6pulFI9s7v=;qPo<HyQNaf`H}9uqF^=6dFJtK zuxDkrHG&DxO_@6{uP}>#HHx;3O>UYq5VNOBtS_Q>Ejf<YOc&c`oQeEQQ8>neEg}n| zkbXJNUWso~ZpspgEAb%aJVb#_U`cc=CRQeWUb#GE(^TF~eBf2sxDSLEaAAlX!7!8C zG<gn_XPlO~O}aKGvhe6977i$@C5|*XYCwdSuX`k6FzjH1W^D^ocKv`o|0{k%Xm$8E zfqt)_b>3hID7u4qm^=z07H&D7P0wQ2PBhs@C;N9>*X_s-Zkz}`c-n&q8)x=xG)>+# z7dVixp$}Do=(i8}-xk%siewn`^FP=VcY&M_<?}y0-`d)Kk;?zj+1lA&=YM#NKU^m9 z(m(mE5;TN^z@0>x?t_2$(yn3InlNViq5Kri;*Yn}$Q`S1)BYsz(H}(q5;=Dh1TaV? zj%W++Rv9RM?xqT;loFzZ9?+gDDxySHWf$Umsu*y!EWwUQced-Xv5R_xa1+|s3uiC| z!TrhM-|)Kd(w_zc5OpA;Yt03+TL39XNW6CLmOyn5E-C-{@tLegey_#ipA-G~nG*PH z>bZkkboPM%)@sV2felY)lUXm3&;y^G|9t+l3=$ExjifDUS1-mf8*#llBn<y>e445) zWiaCcqMpNxi?fT~>;22#!P!ag^z9pX6#sStGP!qhe0qqErD@7Bc!AYzTENKIJJ|bh zZ^GT>G6IDoxbhnzeP~%Daqq!b8u%%-9Uj=@v32ly^o4h)gU{F=zx@T1!MOqBN5N(Q z&-nM`zStmF-If)<h*z?W_$wMS=;vC-)FfSQ8tG2*bR(+NSSudaiF*q+8}IwTpGj>< z_U{d1ZNaV!G^K4gyQ?R3r55>=dOltuk9+=T1iJg)R{9!*%Rn#qL-Jw#B5lU<i|Xs; zECkkd?7IVd5)s5%-1Fq*2;Jb$_H4BA4rF;r30TVVBZB&)-7BV%05d~#17WzZnNr1= zBL?bF=p<?>i5;71bcO)~pWMJF7spVzl1?YI_z*J{%@nCO(Sro<5$?$|mzN;W0ocb6 ziE5!UX+zZtU_ut9Zh<lcydKFj#QXQ2%w7<`Z4H?Oy&k4X0M%8IES^w?-RQ}_iHYq` z(Yri-BmGSb-FZu?(?pN(27H>x{hkFJX7*Lha04w_!(QC!3<~kpY+|&gBmeYd4-6q} z-^3`n0^^o4%6Su*e!5N$iL*EpDECKNtTQnNc*&wl;M3haPgym>GU#Szs%QtT)OsU6 zPA@Qx2FY+aeoF61xBKjL(^C+S34;JI493%B&qQ2_AGkMhy>fl!6vEZEr!BplVl1iR zC0R?0GHnp4=HgYY6@ahs5029Hb4TAa%S%-Wd@WN+T1aEL1Ti19IeemREs6}#+ev=^ z+i+AM#K83NK%(&(JFLH@pEr|CgMv_#82<t1=l5RSu+)-W<Zo>u92@vf%Q7uub6@F8 z!P^CsA2VMO2WZ?^G{+kEsXgb!zqwH{KTcrYDv!};in6qm!3NI5vOLTF|3Tkfdoppn zVMs99JbV!DHl^`0iQ?4W>fhu6{P`Zt@pOO=hX<ci-Tk5gbN)BMD`8E$h-rmxZP)?o z75*CMWsCd*YZ8{+!}4)oNvRbb6_sT6egCG-O*I;IDqrWj8d+Ws`j~n$CM1S8jFHXC zwUMf$ZhBv9l3}cJnhS4Y<%U%f{$AJtt;Tw}+M0<>cE^b$#C)sF$>-#u<BNf*psly& zJa2gN0-Y6RR-VDycOQrNxskB+*}*ISK4aeGb6q>QL#snWuTXm#F|rQtCeciRJ%aed zaClw*v5AAC<m21x5u)3n<_bp=_|*O%-}Mr$sEXoO&`-#Rsc6v4Evs(V^`~u&KhPzp z)Tps^%CzZVr(cmm?+3FvH&h~PJm|PW-#}W1GK>^!vWBv%f>ovmPT^8*Bqz7=P9Oet zv)QuVU8ha5=+`rL=0R&7GbW<y6dBgwtc!@ejy{MMh?f+LF~l!o1IAlQ4&1}w)*TPU zJW}72>`)*1J_8gkO9s_Yh90Qq@p!m~BB~tGtda2M>5L>PLV8zBt9<5qgYk4&c*|%U z?_dQ3zRu=EM_WWOx|*2v1drliZr$M!6yTwQ=LJ~lWSK{bDh6>KIB(uFx^ujsT#h5Y zGZO$7E=Us>cF+73j1;MBmkxF@v(#}(8#pGv<p0x(mg*3~xM&^f7j%g8hSvMZ4h;(4 z7|h}Jl#>Xa?dI}=>792r%fCMVGvJkx5f!&i--hFK;fjDMPVft@j-ik6pr}I7iTDEy z>jPid2sr|33BRT77Sx!TRVLg*p|DTLa%z?&J--T%@9Ry3tR4+h=sd&rec)mi^>6;; z=`;+U_FeBO9MnadpmwIcL(;RX7l_*}>M1PnG998U>hHaKKNt^_{ouZJ=MZFAK#=aj z6zQ6}vOT9OPC-|;7w*cosVnz$x-u&0%KgG!xi>J%S6R7|pVc%fB8rY=*Rcf1d=(4p zqBWh-8D;LW8yBG^6x^mJ``hG4$;n)JpV6*l;XL8km?(2puo-|zp0CgGZlJ^3mUxE* zc2>rV2AA1dR9&JY%j^mZF^m{POH!hgxX<#3biO3@W{!S<>Yo72#>zs$6fnnGwoxH( zu^QRe&f2z6AYH*ZLS5n=1hxnl&M?A;V1|k)AhNTF+UOW*nD~=r5{EKn1}JeH)6U?T zgBWkRsWWFTg1=Vqi$FOQyDuZZ+>`m0OX=B+9HFdgY8ssDXaTEQ7`B675++bI0*M*o zl*#eo70;=$WBc^3k5*fLSsbccmOY4o?hLd6{3G;btQ7qP;GAVmVC_;$D?P)mf?^c| z$Z^PKdyT<nr|$Lkl<}p3wpr?5wpd%IzC3;4!nY=Y-yb`7@MW8V(O?-5Q==)pnj0Hj z^X~TUce|FV`@Of3WW0@R8`(1A-+#iB6yxHhMQq<|=JVO9e?}IE3jBs>v8dw7HEWne zecDD^J#5|h!mxKCC5;K;XPlKUzl+(W8uCQ|x#z5A_AAeQr5UD;`UI-DEGJTq1!hzo z<p#aHNgdEd2;EY7c+#Wm5vDAM3E5#R+VQ<MUzUlhJB*zjqQw)TRD2=hBMulC+n9Yw zvJ84wAQ)mIU-ww%530x^d>OW9y{pZezEle9I|6MK#X@7b>#xj*AYL2P`n#>`ruAo# zI&+v3R8ZD{=&j}g4EZ9-lGdM-Epl%*JJ-;g4a4(|1!a-Rw3{o3QibEaPbKXW{v!<M zqgiIYvUEw0qRvf=$xZBsMZzL}Z8y1z(hW#4A!D0+F8Qd4Ml^Pblqg<wQG6~PQb;L4 zY`F)Uk{ZHF)F5AjMw7z<HUA%ZThM;PA95r*U&EB7ITU8092XPKKq=j)M_Wte!0@cw z%;^7WwwP4X=$}6w(7HzOmbLM1h@AheCEsmnCVFzTE9o$K@|k>uzK{|mzM%im7lu+} z4<eZ{244^)&gzY*`(D9$M>C<5AEX!MZ~=KG+GN!C0~^$G&Pv0k8DxWl&!PhEokVyd zm7nw3nCG?EQf7JW#vl|o2HFK9o(pd6(2jtML{n(6aF7}6X*e2wPTn8%sqJ`Ju2Hwc zf$P?b?EClqq=BE0@RB;!P5;apuWfc!3I(;fF<PuAaIna8UgcX1+WHPYPiU$s;a$kD zhS_U5EQI%RlJ0^V;1h92J6&FNL0#tgBFkDBC$HmVG~}|(-=u>}CFwZur!*%CM=A18 ziap`1<f(YhHbgaMBwWjC;6@k|7iLv#bMbGwAcS`_lan(eKROXzyvk@#baD{Xl4&Cl z$Wux;T7~lHW5u(WH*Z(skjyiuSxGU&?a&QBGB2p==@guvSmwiBXiE|ZZ+*YC#MuZ} z>eOR(nxGcx_(fRK@u0Gq0YepCN${e4)l2v$l53!|q1qS17NP=%1k;v+B)9mUd5XA` zLp!oz)4=o^Cz(rUq8_PLLnp#S8)k;%o8)&!<tlycj+DqSq+-7YFH8A;W@*RdOd|_A zH}+t5Nv^Ev%{1w;DcoJ93#FP#Bnv(2$)8M%;22mmS*oqA9rZDz*Sn<KTm?Wx`1h2( zG>U_yNeAM6MIPOhbw2jd;y`G8$cZ>%ZKOP{(2;@V2Yb$gAP@9x$wPNQVTPg%5t<f} zW?kfMFUJf>{{5OwN9}7Hak`rK-unoTj`;6}QM|+gdc=rz+50d>UeGKKF#)<;eAAKG zp{4Vm=X;xuc$x1%^1@D}Xv3u^h8GK}I>t>ncYcvtD5~g`6{p-*QVV})@_<l{!^czD z45q*%ETn?ia93|$8;_Uc^2f^r6Dmtm%0k6Ywdf6$X{mJWC!e(z+vw8yMb}-FeL8h= zOJoB|-2iy3+{VXDmVoG>$;!C-2AAvI!yn(*Qt6a1f`@(s{Zsx%_#EQLU$uh2Os5Z6 zUTJmgn|Nt^gl9mC;HH%xwZtueg_az1i!+^THBt8QmKK0QNzDnN70rZG52X8qpo39J zqvPf+xvc1S*Vt_bcV*Z#8a(urqK3gR@=3m%XS$BGFQ+!l)QiIT56Y46cBA>ObDeg< zq&xYa&wt)EM_%!AK|j!jLqu%Tx+3?oruA2SdF91Pfz;K#<#-h5DN}T;j*CI+%5S!R z@p-0xcy=U`CWHgqBaQ~;3+8t7m#I(I6Vk;b_*lK5zgn##+q_K7S1T5psXGKYz?3i{ zuKzaN{cg9@*|ok6)7%^v{U>rZ9+|Ydl)qI*usHsxq)53^7DlD6aVVPRjKLBGH#^|* zI~x@hSnRmJk$ph({L{ox;Ecu~_*kXly-@0YdbuL8kjoKjBim>eGX+aQDPDlk9kkEj zGWDP%A?5)IMJ8=JybP5Hs^ycth`$XD{$*G5yR%~6gkBJCe5%E~Hdn!J+`Bp4g3vKn zcK_dxX@Em0i3;jG1h~4PYrf;@9ePLXNJe7Z?H939ZKGPt4&e3o5zbRRS(bmr-&ZOd zy1VcnD=B?yVg&HqBo}xzt+>xw2?1)?D+X*kqAY%)__l~9BBB&PkrNnjDpEm95olZK zhnn9CZNl;8C2zvoK`g@nmi5}dr*(_#*vYEcAt>p(2N@+1B|CZ*MFbR&J<v1ocKAV8 zKq|0ZdW%l*QGD}6ykrWvV%Dl>Iko=XZt5i&xs`rp1x(lhCM=raFgv?BH2gMPm|+DR z<US&jh|kNhtH4N%2g6_|wv~CnEUI~AEX=AJi^h8460Djb@v50~2@dUS=dq}W6jbjf zA}4YJ40oEjy4l1JWwyTzW2Wb_q`H^l55XGRFRPXEw7@``XQ#7p!6@f|?8=egi%4fU zm!5H83Bfy@&j{)VcIjL9=5{=5!7@YddX&??C!rG3fQ(`bIs~P9PHrs9e!}~eL#5@4 zpkrug{T&UHhti)y#*Z26`s4(Lm{aXs7S|PTlJ6fxyJgowupu%GzJHkgT2E?~*aH(@ z1X<dFVm%phvw{1xxcO60<BR7CTBKnaR#|{dm;+vhDDC=~t!QK9J~+b-3-m9L9^371 z`x%)nx7*w8R8Ap(j5rN)@M8IGqvZq_ZiAwITh_Ct^}}9F9&5YV<gRq*&`H<D8yF^y z*Jt#!iEz#Io#(GkS8D_Go~uV(lVkN~7-aaq2CO63y|uOZ?Qj=Pc~ftI23hO<`-gx0 zLo$J!TbkV5^`x(%#a6cUE;-ipN~F;5u??zQaA)m7k3ccn?$!yTT12rz*I_gwmOH%w zCr&_yOH|!FcW%P1*iVU#QNoujaO@$2I+F#%)eQCMg&zS=*uk)tFoKykBH#}{L>t`H z9X6UcqAkN|9|up+EcL+mDI7P@GgjCX=zu4Nz`22j$M_@cqxFKD`g%->P&fD$FY<cQ z?{IK?=MNK1u+=PUZH(XgEzFI2pEu4GDS%OsD>kyaleCTh#8(j&`G)nS_=<%qF|d!V z=kpQ4XbT?I_%Z+%?#Az8PH-Od;JU<>xjr3qY2In7s0)K>hAv)*IL^0MN8inv3w<6$ zZZdH=_5-vlTT~rQhvzE~KSRd$gf@J7_S2hv1b<+RipJJM_xaX#Gpk`XNLGJiaT~kV zG#YJwS9{>iZbKYBMRiSer%a{FugkO&YLvMNF`FUk!NtiDx@jG9hS(BE0b!&-)3uPc z*1?5!a>VMqBQnjRy<`XfvFWyc$i%<Jn?N{Xpp2?*nx0S!S@X+^aEB!h<IcL*so^ zcuEiwI@-Z`lO3w%oxVgAyF~tV_u|||z6f87yV8b2g-ww~fw6KA8jbpU_Lz9DX(sQJ zs)@Dr;B@o1uez?bbUVACQ4JARM4SL6OkDT7X1!T#THJ#F!y^L`>^(I4{^2j*y?^*_ zJDv-4Bg;1%*UFuQa#Y%SPVXve!HcR|IkwEq;^;j8!>x|a^A!u<{8^|t+vY1|h4ED4 z@>rGq0+oaV3jB}bW7K79iy|knFM4EMB7H2+7#0!z&$)OmjNmSgd(4f	BJ(pqpfA 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 literal 0 HcmV?d00001 -- GitLab From 450e5381677aac9e9a024eca5bf2027effe54bb4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 23 Jan 2019 22:05:51 +0100 Subject: [PATCH 076/192] Fix python code style warnings After upgrade to flake8 3.6.0, fix the following additional python code style issues: - bare exception - use double-backslash for printing a backslash --- Control/AthenaCommon/CMakeLists.txt | 2 +- Control/AthenaCommon/python/CfgMergerLib.py | 4 ++-- Control/AthenaCommon/python/ConfigurationShelve.py | 4 ++-- Control/AthenaCommon/python/DumpProperties.py | 4 ++-- Control/AthenaCommon/python/Include.py | 6 +++--- Control/AthenaCommon/python/JobProperties.py | 6 +++--- Control/AthenaConfiguration/python/ComponentAccumulator.py | 6 +++--- Control/AthenaConfiguration/python/UnifyProperties.py | 2 +- HLT/Trigger/TrigControl/TrigCommon/bin/athenaHLT.py | 2 +- .../TriggerJobOpts/python/TriggerConfigGetter.py | 6 +++--- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Control/AthenaCommon/CMakeLists.txt b/Control/AthenaCommon/CMakeLists.txt index 68b6abb75163..a29b6dca8c2a 100644 --- a/Control/AthenaCommon/CMakeLists.txt +++ b/Control/AthenaCommon/CMakeLists.txt @@ -33,5 +33,5 @@ atlas_add_test( CFElementsTest SCRIPT python -m unittest -v AthenaCommon.CFEleme # Check python syntax: atlas_add_test( flake8 - SCRIPT flake8 --select=F,E101,E112,E113,E7,E9,W6 --ignore=E701 ${CMAKE_CURRENT_SOURCE_DIR}/python + SCRIPT flake8 --select=F,E101,E112,E113,E7,E9,W6 --ignore=E701,E741 ${CMAKE_CURRENT_SOURCE_DIR}/python POST_EXEC_SCRIPT nopost.sh ) diff --git a/Control/AthenaCommon/python/CfgMergerLib.py b/Control/AthenaCommon/python/CfgMergerLib.py index f0d05cf7e630..4eb2394b4994 100644 --- a/Control/AthenaCommon/python/CfgMergerLib.py +++ b/Control/AthenaCommon/python/CfgMergerLib.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # @file AthenaCommon/python/CfgMergerLib # @purpose a set of python tools to analyze configurables and find candidates @@ -188,7 +188,7 @@ def dump_josvc_content(fname='josvc.ascii'): cfg = dict(cfg) print >> f, "# content of the joboptions-svc" - print >> f, "josvc_catalog = \ " + print >> f, "josvc_catalog = \\ " from pprint import pprint pprint(cfg, stream=f) diff --git a/Control/AthenaCommon/python/ConfigurationShelve.py b/Control/AthenaCommon/python/ConfigurationShelve.py index e3add9820caf..4038da3a33a3 100644 --- a/Control/AthenaCommon/python/ConfigurationShelve.py +++ b/Control/AthenaCommon/python/ConfigurationShelve.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # @file: AthenaCommon/python/ConfigurationShelve.py # @author: Wim Lavrijsen (WLavrijsen@lbl.gov) @@ -311,7 +311,7 @@ def loadJobOptionsCatalogue( cfg_fname ): p = gaudi.StringProperty( n, '' ) try: p.fromString(v).ignore() - except: + except Exception: print "Failed to convert",n,v if not josvc.addPropertyToCatalogue( client, p ).isSuccess(): diff --git a/Control/AthenaCommon/python/DumpProperties.py b/Control/AthenaCommon/python/DumpProperties.py index d914322c3f90..21f5805c2fab 100755 --- a/Control/AthenaCommon/python/DumpProperties.py +++ b/Control/AthenaCommon/python/DumpProperties.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # File: AthenaCommon/python/DumpProperties.py # Author: Wim Lavrijsen (WLavrijsen@lbl.gov) @@ -76,7 +76,7 @@ def pprint( obj, stream = sys.stdout ): if not obj._ip: try: value = eval( value ) - except: + except Exception: pass if value and type(value) == list: diff --git a/Control/AthenaCommon/python/Include.py b/Control/AthenaCommon/python/Include.py index 6081b56bf06c..e7816b84f537 100755 --- a/Control/AthenaCommon/python/Include.py +++ b/Control/AthenaCommon/python/Include.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # File: AthenaCommon/python/Include.py # Author: Wim Lavrijsen (WLavrijsen@lbl.gov) @@ -57,7 +57,7 @@ class IncludeError( RuntimeError ): ### files locator ------------------------------------------------------------ try: optionsPathEnv = os.environ[ 'JOBOPTSEARCHPATH' ] -except: +except Exception: optionsPathEnv = os.curdir optionsPath = re.split( ',|' + os.pathsep, optionsPathEnv ) @@ -232,7 +232,7 @@ class Include( object ): try: if 'import' in _filecache[ f.f_code.co_filename ][ f.f_lineno ]: return self._trace_include - except: + except Exception: pass f = f.f_back del f diff --git a/Control/AthenaCommon/python/JobProperties.py b/Control/AthenaCommon/python/JobProperties.py index 2b19ec588ba0..4afe912fc3e6 100755 --- a/Control/AthenaCommon/python/JobProperties.py +++ b/Control/AthenaCommon/python/JobProperties.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration #======================================================================= # File: JobProperties/python/JobProperties.py @@ -483,13 +483,13 @@ class JobPropertyContainer (object): closestMatch=get_close_matches(name,self.__dict__.keys(),1) if len(closestMatch)>0: errString+=". Did you mean \'%s\'?" % closestMatch[0] - except: + except Exception: pass #No execption from here raise AttributeError(errString) try: protected=hasattr(self.__dict__[name],'_context_name') - except: + except Exception: protected=False if not protected: self.__dict__[name] = n_value diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py index 15e71f94d961..a85a9ffc3d2a 100644 --- a/Control/AthenaConfiguration/python/ComponentAccumulator.py +++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py @@ -90,13 +90,13 @@ class ComponentAccumulator(object): return seq.getValuedProperties()[name] return seq.getDefaultProperties()[name] - self._msg.info( " "*nestLevel +"\__ "+ seq.name() +" (seq: %s %s)" %( "SEQ" if __prop("Sequential") else "PAR", "OR" if __prop("ModeOR") else "AND" ) ) + self._msg.info( " "*nestLevel +"\\__ "+ seq.name() +" (seq: %s %s)" %( "SEQ" if __prop("Sequential") else "PAR", "OR" if __prop("ModeOR") else "AND" ) ) nestLevel += 3 for c in seq.getChildren(): if isSequence(c): printSeqAndAlgs(c, nestLevel ) else: - self._msg.info( " "*nestLevel +"\__ "+ c.name() +" (alg)" ) + self._msg.info( " "*nestLevel +"\\__ "+ c.name() +" (alg)" ) if summariseProps: printProperties(c, nestLevel) printSeqAndAlgs(self._sequence) @@ -251,7 +251,7 @@ class ComponentAccumulator(object): #The following is to work with internal list of service as well as gobal svcMgr as second parameter try: compList.append(newComp) - except: + except Exception: compList+=newComp pass return True #True means something got added diff --git a/Control/AthenaConfiguration/python/UnifyProperties.py b/Control/AthenaConfiguration/python/UnifyProperties.py index dbbb6d968d1a..2781f6d40a1c 100644 --- a/Control/AthenaConfiguration/python/UnifyProperties.py +++ b/Control/AthenaConfiguration/python/UnifyProperties.py @@ -63,7 +63,7 @@ def getUnificationKey(propname): if matchingByObject in _propsToUnify: return matchingByObject - except: + except Exception: pass return None diff --git a/HLT/Trigger/TrigControl/TrigCommon/bin/athenaHLT.py b/HLT/Trigger/TrigControl/TrigCommon/bin/athenaHLT.py index 1a8e7bb85926..e2618adc6dd8 100755 --- a/HLT/Trigger/TrigControl/TrigCommon/bin/athenaHLT.py +++ b/HLT/Trigger/TrigControl/TrigCommon/bin/athenaHLT.py @@ -76,7 +76,7 @@ def arg_ros2rob(s): if type(ros2robdict) is not dict: raise(ValueError) return ros2robdict - except: + except Exception: sys.stderr.write("ERROR! ros2rob cannot be evaluated as it is not a proper python dictionary: {}\n".format(s)) sys.stderr.write("Using empty ros2rob dictionary instead\n") return {} diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py index 6558072e19c4..7c817028a5ab 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration __author__ = 'J. Stelzer' @@ -248,7 +248,7 @@ class TriggerConfigGetter(Configured): ### preparations are done! try: self.svc.SetStates( self.ConfigSrcList ) - except: + except Exception as ex: log.error( 'Failed to set state of TrigConfigSvc to %r' % self.ConfigSrcList ) else: log.info('The following configuration services will be tried: %r' % self.ConfigSrcList ) @@ -256,7 +256,7 @@ class TriggerConfigGetter(Configured): try: self.svc.InitialiseSvc() - except Exception, ex: + except Exception as ex: log.error( 'Failed to activate TrigConfigSvc: %r' % ex ) if self.readTriggerDB: -- GitLab From d541d544a94e21c38b8810d615fcf1ed51900691 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 23 Jan 2019 21:24:56 +0000 Subject: [PATCH 077/192] Fix Mismatched delete, Definitely lost from Valgrind --- .../TElectronEfficiencyCorrectionTool.cxx | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/Root/TElectronEfficiencyCorrectionTool.cxx b/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/Root/TElectronEfficiencyCorrectionTool.cxx index 1fd6b01d3555..0120f7bc9e26 100644 --- a/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/Root/TElectronEfficiencyCorrectionTool.cxx +++ b/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/Root/TElectronEfficiencyCorrectionTool.cxx @@ -124,17 +124,6 @@ int Root::TElectronEfficiencyCorrectionTool::initialize() { ATH_MSG_DEBUG("Initializing tool with " << m_corrFileNameList.size() << " configuration file(s)"); - /* - * Check if the first file can be opened - * It is needed for auto-setting of the seed based on the md5-sum of the file - */ - const std::unique_ptr<char> fname(gSystem->ExpandPathName(m_corrFileNameList[0].c_str())); - std::unique_ptr<TFile> rootFile_tmp( TFile::Open(fname.get(), "READ") ); - if (!rootFile_tmp) { - ATH_MSG_ERROR("No ROOT file found here: " << m_corrFileNameList[0]); - return 0; - } - rootFile_tmp->Close(); if (m_doToyMC && m_doCombToyMC) { ATH_MSG_ERROR(" Both regular and combined toy MCs booked!" << " Only use one!"); @@ -146,6 +135,8 @@ int Root::TElectronEfficiencyCorrectionTool::initialize() { */ if (m_doToyMC || m_doCombToyMC) { if (m_seed == 0) { + // Use the name of the correction for auto-setting of the seed based on the md5-sum of the file + const std::unique_ptr<char[]> fname(gSystem->ExpandPathName(m_corrFileNameList[0].c_str())); std::unique_ptr<TMD5> tmd=CxxUtils::make_unique<TMD5>(); const char* tmd_as_string=tmd->FileChecksum(fname.get())->AsString(); m_seed = *(reinterpret_cast<const unsigned long int*>(tmd_as_string)); @@ -650,10 +641,9 @@ int Root::TElectronEfficiencyCorrectionTool::getHistograms() { /* * Get all ROOT files and histograms */ - for (unsigned int i = 0; i < m_corrFileNameList.size(); ++i) { // Load the ROOT file - const std::unique_ptr<char> fname (gSystem->ExpandPathName(m_corrFileNameList[i].c_str())); + const std::unique_ptr<char[]> fname (gSystem->ExpandPathName(m_corrFileNameList[i].c_str())); std::unique_ptr<TFile> rootFile( TFile::Open(fname.get(), "READ") ); if (!rootFile) { ATH_MSG_ERROR( "No ROOT file found here: " <<m_corrFileNameList[i]); @@ -661,21 +651,21 @@ int Root::TElectronEfficiencyCorrectionTool::getHistograms() { } // Loop over all directories inside the root file (correspond to the run number ranges TIter nextdir(rootFile->GetListOfKeys()); - TKey *dir; - TObject *obj; + TKey *dir=nullptr; + TObject *obj=nullptr; while ((dir = (TKey *) nextdir())) { obj = dir->ReadObj(); if (obj->IsA()->InheritsFrom("TDirectory")) { // splits string by delimiter --> e.g RunNumber1_RunNumber2 - TObjArray dirNameArray = *(TString(obj->GetName()).Tokenize("_")); + std::unique_ptr<TObjArray> dirNameArray(TString(obj->GetName()).Tokenize("_")); // returns index of last string --> if one, the directory name does not contain any run numbers - int lastIdx = dirNameArray.GetLast(); + int lastIdx = dirNameArray->GetLast(); if (lastIdx != 1) { ATH_MSG_ERROR("The folder name seems to have the wrong format! Directory name:"<< obj->GetName()); return 0; } rootFile->cd(obj->GetName()); - if (0 == this->setupHistogramsInFolder(dirNameArray, lastIdx)) { + if (0 == this->setupHistogramsInFolder(*dirNameArray, lastIdx)) { ATH_MSG_ERROR("Unable to setup the histograms in directory " << dir->GetName() << "in file " << m_corrFileNameList[i]); return 0; @@ -733,8 +723,8 @@ int Root::TElectronEfficiencyCorrectionTool::setupHistogramsInFolder(const TObjA std::vector<TObjArray > sysObjsFast; TIter nextkey(gDirectory->GetListOfKeys()); - TKey *key; - TObject *obj(0); + TKey *key=nullptr; + TObject *obj=nullptr; int seenSystematics= 0; //Loop of the keys -- GitLab From 6a3a899300c13157d7d3e0a951545dde7e4ed1c6 Mon Sep 17 00:00:00 2001 From: Susumu Oda <Susumu.Oda@cern.ch> Date: Thu, 24 Jan 2019 02:59:30 +0100 Subject: [PATCH 078/192] Remove ISiliconConditionsSvc.h --- .../ISiliconConditionsSvc.h | 52 ------------------- .../ReadSiDetectorElements.h | 1 - .../src/ReadSiDetectorElements.cxx | 1 - 3 files changed, 54 deletions(-) delete mode 100644 InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/ISiliconConditionsSvc.h diff --git a/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/ISiliconConditionsSvc.h b/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/ISiliconConditionsSvc.h deleted file mode 100644 index 6a6117022988..000000000000 --- a/InnerDetector/InDetConditions/InDetConditionsSummaryService/InDetConditionsSummaryService/ISiliconConditionsSvc.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file ISiliconConditionsSvc.h - * @author shaun.roe@cern.ch -**/ -#ifndef ISiliconConditionsSvc_h -#define ISiliconConditionsSvc_h -//Gaudi Includes -#include "GaudiKernel/IInterface.h" -// STL includes -#include <list> -#include <string> - -//forward declarations -class Identifier; -class IdentifierHash; -/** - * @class ISiliconConditionsSvc - * Interface class for service providing basic silicon parameters -**/ -class ISiliconConditionsSvc: virtual public IInterface{ -public: - virtual ~ISiliconConditionsSvc(){} - static const InterfaceID & interfaceID(); //!< reimplemented from IInterface - //@name methods taking the detector identifier - //@{ - virtual float temperature(const Identifier & detectorElement)=0; - virtual float biasVoltage(const Identifier & detectorElement)=0; - virtual float depletionVoltage(const Identifier & detectorElement)=0; - //@} - //@name methods taking the detector hash identifier - //@{ - virtual float temperature(const IdentifierHash & detectorElement)=0; - virtual float biasVoltage(const IdentifierHash & detectorElement)=0; - virtual float depletionVoltage(const IdentifierHash & detectorElement)=0; - //@} - - /// IOV CallBack - virtual StatusCode callBack(int&, std::list<std::string>&) = 0; - /// Query whether a CallBack has been registered. - virtual bool hasCallBack() = 0; - -}; - -inline const InterfaceID & ISiliconConditionsSvc::interfaceID(){ - static const InterfaceID IID_ISiliconConditionsSvc("ISiliconConditionsSvc",1,0); - return IID_ISiliconConditionsSvc; -} -#endif diff --git a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h index b939863d0d59..48456cad3a5b 100755 --- a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h +++ b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h @@ -16,7 +16,6 @@ #include "StoreGate/ReadCondHandleKey.h" #include "InDetConditionsSummaryService/ISiliconConditionsTool.h" #include "InDetCondServices/ISiLorentzAngleTool.h" -#include "InDetConditionsSummaryService/ISiliconConditionsSvc.h" #include <vector> diff --git a/InnerDetector/InDetExample/InDetDetDescrExample/src/ReadSiDetectorElements.cxx b/InnerDetector/InDetExample/InDetDetDescrExample/src/ReadSiDetectorElements.cxx index 35e47b009511..7a9ece0a7ac0 100755 --- a/InnerDetector/InDetExample/InDetDetDescrExample/src/ReadSiDetectorElements.cxx +++ b/InnerDetector/InDetExample/InDetDetDescrExample/src/ReadSiDetectorElements.cxx @@ -17,7 +17,6 @@ #include "InDetIdentifier/PixelID.h" #include "InDetIdentifier/SCT_ID.h" #include "Identifier/Identifier.h" -#include "InDetConditionsSummaryService/ISiliconConditionsSvc.h" #include "InDetReadoutGeometry/SiLocalPosition.h" -- GitLab From 4f75656076d56f2edd0e1cdd2260159ac768cec4 Mon Sep 17 00:00:00 2001 From: John Kenneth Anders <john.kenneth.anders@cern.ch> Date: Wed, 23 Jan 2019 13:16:20 +0000 Subject: [PATCH 079/192] Merge branch 'fix_Broken_TCT' into '21.0' Changed permissions for m16e TCT test See merge request atlas/athena!20563 (cherry picked from commit c6a7f5b421a074714cfbea55059da84721ec27b1) 72e530ec Changed permissions for m16e TCT test --- Tools/Tier0ChainTests/test/test_reco_mc16e.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 Tools/Tier0ChainTests/test/test_reco_mc16e.sh diff --git a/Tools/Tier0ChainTests/test/test_reco_mc16e.sh b/Tools/Tier0ChainTests/test/test_reco_mc16e.sh old mode 100644 new mode 100755 -- GitLab From 32e551c89360a96126b73c15ea04bbd4d58476da Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Wed, 23 Jan 2019 14:45:12 +0000 Subject: [PATCH 080/192] Merge branch 'nsw_clus_tools' into '21.3' Fixing the strip identifier in the MM RDO See merge request atlas/athena!20527 (cherry picked from commit 2ab00e524fdf23f33e22c64a62d6eb0a424784fa) 4cdff5d3 Fixing the strip identifier in the MM RDO --- .../CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 .../src/MM_DigitToRDO.cxx | 24 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) mode change 100644 => 100755 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100644 new mode 100755 diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx index 9f3560d6fb99..a86e114f2eb7 100644 --- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx +++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx @@ -70,7 +70,29 @@ StatusCode MM_DigitToRDO::execute() for ( unsigned int i=0 ; i<nstrips ; ++i ) { - MM_RawData* rdo = new MM_RawData(id, + /// + /// set the rdo id to a value consistent with the channel number + /// + bool isValid; + int stationName = m_idHelper->stationName(id); + int stationEta = m_idHelper->stationEta(id); + int stationPhi = m_idHelper->stationPhi(id); + int multilayer = m_idHelper->multilayer(id); + int gasGap = m_idHelper->gasGap(id); + /// + int channel = digit->stripResponsePosition().at(i); + + Identifier newId = m_idHelper->channelID(stationName,stationEta, + stationPhi,multilayer,gasGap,channel,true,&isValid); + + if (!isValid) { + ATH_MSG_WARNING("Invalid MM identifier. StationName="<<stationName << + " stationEta=" << stationEta << " stationPhi=" << stationPhi << + " multi=" << multilayer << " gasGap=" << gasGap << " channel=" << channel); + continue; + } + + MM_RawData* rdo = new MM_RawData(newId, digit->stripResponsePosition().at(i), digit->stripResponseTime().at(i), digit->stripResponseCharge().at(i)); -- GitLab From 930b0a4c71a2a9a97765e1ec52d26d130b8f2a93 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 23 Jan 2019 16:34:27 +0100 Subject: [PATCH 081/192] TileGeoG4Calib: A couple const fixes. Declare as const ServiceHandles to the detStore used as arguments. Needed for compatibility with thread-safety fixes in AthenaBaseComps. --- TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.cc | 4 ++-- TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.h | 4 ++-- .../TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc | 4 ++-- .../TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.h | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.cc b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.cc index 29a5d6697aca..5ea892a0a567 100644 --- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.cc +++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //************************************************************ @@ -60,7 +60,7 @@ //CONSTRUCTOR TileGeoG4CalibSD::TileGeoG4CalibSD(const G4String& name, const std::vector<std::string>& outputCollectionNames, ITileCalculator* tileCalculator, - ServiceHandle<StoreGateSvc> &detStore) + const ServiceHandle<StoreGateSvc> &detStore) : G4VSensitiveDetector(name), m_tileActiveCellCalibHits(outputCollectionNames[1]), m_tileInactiveCellCalibHits(outputCollectionNames[2]), diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.h b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.h index 84bc556df6c2..6a3a3fd70e4a 100644 --- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.h +++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSD.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //************************************************************ @@ -86,7 +86,7 @@ typedef std::vector<double> E_4; class TileGeoG4CalibSD: public G4VSensitiveDetector { public: TileGeoG4CalibSD(const G4String& name, const std::vector<std::string>& m_outputCollectionNames, - ITileCalculator* tileCalculator, ServiceHandle<StoreGateSvc> &detStore); + ITileCalculator* tileCalculator, const ServiceHandle<StoreGateSvc> &detStore); ~TileGeoG4CalibSD(); void InvokeUserRunAction(); diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc index eceab515f85a..09a9e908db2a 100644 --- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc +++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //************************************************************ @@ -44,7 +44,7 @@ TileGeoG4DMLookupBuilder::TileGeoG4DMLookupBuilder(TileGeoG4LookupBuilder* lookup_builder, ServiceHandle<IRDBAccessSvc> &raccess, ServiceHandle<IGeoModelSvc> &geo_svc, - ServiceHandle<StoreGateSvc> &pDetStore, const int verboseLevel) + const ServiceHandle<StoreGateSvc> &pDetStore, const int verboseLevel) : rBMin(0), rBMax(0), zBarrMaxPos(0), diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.h b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.h index 81cd050822fd..5f3db2a910a0 100644 --- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.h +++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //************************************************************ @@ -33,7 +33,7 @@ class StoreGateSvc; class TileGeoG4DMLookupBuilder { public: TileGeoG4DMLookupBuilder(TileGeoG4LookupBuilder* tile_lookup_builder, ServiceHandle<IRDBAccessSvc> &access, - ServiceHandle<IGeoModelSvc> &geo_svc, ServiceHandle<StoreGateSvc> &pDetStore, + ServiceHandle<IGeoModelSvc> &geo_svc, const ServiceHandle<StoreGateSvc> &pDetStore, const int verboseLevel); ~TileGeoG4DMLookupBuilder(); -- GitLab From c6a895eee70e34fb290c5bf92f11cbe29b41ad3d Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 23 Jan 2019 16:35:54 +0100 Subject: [PATCH 082/192] TrkExUtils: Additions to help with making intersection tools const. The intersection tools currently start with a TrackSurfaceIntersection object, cache the information from it in member variables, step the path through the detector, and then create a new TrackSurfaceIntersection object. We want to make the intersector interfaces const, which means getting rid of the information cached in tool member variables. We can streamline this by keeping the stepping state in a TrackSurfaceIntersection object directly, rather than in discrete member variables. This allows eliminating some copies at the end. Add (non-const) interfaces allowing retrieving non-const references to the member data of TrackSurfaceIntersection. --- .../TrkExUtils/TrackSurfaceIntersection.h | 17 ++++++++++++++++- .../TrkExUtils/src/TrackSurfaceIntersection.cxx | 14 +++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h index 87380ac46536..3d48b5df4603 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h +++ b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h @@ -33,14 +33,20 @@ namespace Trk { /**Destructor*/ virtual ~TrackSurfaceIntersection(); + TrackSurfaceIntersection (const TrackSurfaceIntersection& other); + TrackSurfaceIntersection& operator= (const TrackSurfaceIntersection& other) = default; + /** Method to retrieve the position of the Intersection */ const Amg::Vector3D& position() const; + Amg::Vector3D& position(); /** Method to retrieve the direction at the Intersection */ const Amg::Vector3D& direction() const; + Amg::Vector3D& direction(); /** Method to retrieve the pathlength propagated till the Intersection */ - double pathlength() const; + double pathlength() const; + double& pathlength(); /** Method to retrieve the object serial number (needed for speed optimization) */ unsigned long long serialNumber() const; @@ -57,12 +63,21 @@ namespace Trk { inline const Amg::Vector3D& TrackSurfaceIntersection::position() const { return m_position; } + inline Amg::Vector3D& TrackSurfaceIntersection::position() + { return m_position; } + inline const Amg::Vector3D& TrackSurfaceIntersection::direction() const { return m_direction; } + inline Amg::Vector3D& TrackSurfaceIntersection::direction() + { return m_direction; } + inline double TrackSurfaceIntersection::pathlength() const { return m_pathlength; } + inline double& TrackSurfaceIntersection::pathlength() + { return m_pathlength; } + inline unsigned long long TrackSurfaceIntersection::serialNumber() const { return m_serialNumber; } diff --git a/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx b/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx index 2e5da7898a9b..7780638f03d5 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx +++ b/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx @@ -22,11 +22,19 @@ unsigned long long Trk::TrackSurfaceIntersection::s_serialNumber = 0; Trk::TrackSurfaceIntersection::TrackSurfaceIntersection(const Amg::Vector3D& pos, const Amg::Vector3D& dir, double path) + : m_position (pos), + m_direction (dir), + m_pathlength (path) +{ + m_serialNumber = ++s_serialNumber; +} + +Trk::TrackSurfaceIntersection::TrackSurfaceIntersection(const TrackSurfaceIntersection& other) + : m_position (other.m_position), + m_direction (other.m_direction), + m_pathlength (other.m_pathlength) { m_serialNumber = ++s_serialNumber; - m_position = pos; - m_direction = dir; - m_pathlength = path; } // destructor -- GitLab From 6bdd3f36ece5a70ed4e5175017e237d81aa4c814 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 23 Jan 2019 16:45:35 +0100 Subject: [PATCH 083/192] IOVDbTestAlg: Fix compilation warning. Compilation warning: use of potentially uninitialized variable. --- AtlasTest/DatabaseTest/IOVDbTestAlg/src/IOVDbTestCoolDCS.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AtlasTest/DatabaseTest/IOVDbTestAlg/src/IOVDbTestCoolDCS.cxx b/AtlasTest/DatabaseTest/IOVDbTestAlg/src/IOVDbTestCoolDCS.cxx index 3cf49e3caef0..35f1426a15ba 100755 --- a/AtlasTest/DatabaseTest/IOVDbTestAlg/src/IOVDbTestCoolDCS.cxx +++ b/AtlasTest/DatabaseTest/IOVDbTestAlg/src/IOVDbTestCoolDCS.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // IOVDbTestCoolDCS.cxx @@ -50,7 +50,7 @@ StatusCode IOVDbTestCoolDCS::execute() { } // print all the AthenaAttributeList - const AthenaAttributeList* atrlist; + const AthenaAttributeList* atrlist = nullptr;; for (std::vector<std::string>::const_iterator itr=m_par_atrlist.begin(); itr!=m_par_atrlist.end();++itr) { if (StatusCode::SUCCESS==detStore()->retrieve(atrlist,*itr)) { -- GitLab From 8abad54f44ae65b12943b292179a21d934032807 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Thu, 24 Jan 2019 07:41:25 +0100 Subject: [PATCH 084/192] Partially cleaned SCT_GeoModel from obsolete comments --- .../SCT_GeoModel/src/SCT_Barrel.cxx | 6 --- .../src/SCT_BarrelModuleParameters.cxx | 19 ------- .../SCT_GeoModel/src/SCT_BarrelParameters.cxx | 1 - .../SCT_GeoModel/src/SCT_Forward.cxx | 16 ------ .../src/SCT_FwdCylinderServices.cxx | 7 --- .../SCT_GeoModel/src/SCT_FwdHybrid.cxx | 1 - .../SCT_GeoModel/src/SCT_FwdModule.cxx | 1 - .../src/SCT_FwdModuleConnector.cxx | 3 -- .../SCT_GeoModel/src/SCT_FwdOptoHarness.cxx | 3 -- .../SCT_GeoModel/src/SCT_FwdRing.cxx | 52 ------------------- .../SCT_GeoModel/src/SCT_FwdSensor.cxx | 19 ------- .../SCT_GeoModel/src/SCT_FwdWheel.cxx | 44 +--------------- .../src/SCT_GeneralParameters.cxx | 3 -- .../SCT_GeoModel/src/SCT_Layer.cxx | 34 ------------ .../SCT_GeoModel/src/SCT_MaterialManager.cxx | 1 - .../SCT_GeoModel/src/SCT_Module.cxx | 18 ------- .../SCT_GeoModel/src/SCT_Ski.cxx | 20 ------- .../SCT_GeoModel/src/SCT_SkiPowerTape.cxx | 5 -- 18 files changed, 1 insertion(+), 252 deletions(-) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx index a0294257cca2..f9daf218931f 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx @@ -256,17 +256,14 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const const GeoShape * emiShieldShape = 0; const GeoMaterial * material; const GeoTube * emiShieldTube = new GeoTube(innerRadius, outerRadius, 0.5*length); - // std::cout << "EMI tube volume = " << emiShieldTube->volume() << std::endl; if (m_isOldGeometry) { emiShieldShape = emiShieldTube; material = materials.getMaterial(materialName); } else { const GeoTube* cutOut = new GeoTube(innerRadius, outerRadius, 0.5*pixelAttachmentLength); - // std::cout << "Cut-out volume = " << cutOut->volume() << std::endl; const GeoShape* emiTemp = (GeoShape*)&(emiShieldTube->subtract(*cutOut << GeoTrf::TranslateZ3D(pixelAttachmentZpos))); emiShieldShape = (GeoShape*)&emiTemp->subtract(*cutOut << GeoTrf::TranslateZ3D(-pixelAttachmentZpos)); double emiVolume = emiShieldTube->volume() - 2. * cutOut->volume(); - // std::cout << "EMI final volume = " << emiVolume << std::endl; material = materials.getMaterialForVolume(materialName, emiVolume); } const GeoLogVol * emiShieldLog = new GeoLogVol("EMIShield", emiShieldShape, material); @@ -278,14 +275,11 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const double dphi = jointRPhi / outerRadius; const GeoTubs* emiJointTubs = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*length, -0.5 * dphi * Gaudi::Units::radian, dphi * Gaudi::Units::radian); - // std::cout << "EMIJoint tubs volume = " << emiJointTubs->volume() << std::endl; const GeoTubs* jointCutOut = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*pixelAttachmentLength, -0.5 * dphi * Gaudi::Units::radian, dphi * Gaudi::Units::radian); - // std::cout << "Cut-out volume = " << jointCutOut->volume() << std::endl; const GeoShape* jointTemp = (GeoShape*)&(emiJointTubs->subtract(*jointCutOut << GeoTrf::TranslateZ3D(pixelAttachmentZpos))); const GeoShape* emiJointShape = (GeoShape*)&jointTemp->subtract(*jointCutOut << GeoTrf::TranslateZ3D(-pixelAttachmentZpos)); double jointVolume = emiJointTubs->volume() - 2. * jointCutOut->volume(); - // std::cout << "EMIJoint final volume = " << jointVolume << std::endl; const GeoMaterial * jointMaterial = materials.getMaterialForVolume(jointMaterialName, jointVolume); const GeoLogVol * emiJointLog = new GeoLogVol("EMIShieldJoint", emiJointShape, jointMaterial); GeoPhysVol * emiJoint = new GeoPhysVol(emiJointLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx index ef197e7387e5..96f390bc501a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx @@ -15,25 +15,6 @@ using std::abs; -// -// A few hard wired numbers (some of which should go in NOVA) -// -/* -const double SCT_MODULE_HYBRID_OFFSET = 5.0 * Gaudi::Units::mm; // Planar distance from center of sensor to edge of hybrid. -const int STEREO_UPPER_SIGN = -1; // Sign of stereo rotation of upper sensor with axis going - // from lower to upper - -const double PITCH = 80 * micrometer; -const double HALF_ACTIVE_STRIP_LENGTH = 31 * Gaudi::Units::mm; -const double NOMINAL_WAFER_LENGTH = 63.960 * Gaudi::Units::mm; -const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19 * Gaudi::Units::mm; -const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750 * Gaudi::Units::mm; -const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8 * Gaudi::Units::mm; -const double DISTANCE_CENTER_TO_CENTER = 2 * (DISTANCE_CORNER_MARK_TO_CENTER - - DISTANCE_CORNER_MARK_TO_FIDUCIAL) - + REF_DISTANCE_BETWEEN_FIDUCIALS; -*/ - SCT_BarrelModuleParameters::SCT_BarrelModuleParameters() { m_rdb = SCT_DataBase::instance(); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx index 4edba82c1e48..c9cdeb4c5dd0 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx @@ -11,7 +11,6 @@ #include "GaudiKernel/SystemOfUnits.h" #include <cmath> -#include <iostream> SCT_BarrelParameters::SCT_BarrelParameters() diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx index 615d618c2b0d..405c90423da5 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx @@ -104,7 +104,6 @@ SCT_Forward::preBuild() for (int iWheel = 0; iWheel < m_numWheels; iWheel++){ // Build Wheels std::ostringstream name; name << "Wheel" << iWheel << ((m_endcap > 0) ? "A" : "C"); - //std::cout << getName() << ", iWheel = " << iWheel << ", " << name.str() << ", m_endcap = " << m_endcap << std::endl; const SCT_FwdWheel * wheel = new SCT_FwdWheel(name.str(), iWheel, m_modules, m_endcap); m_wheels.push_back(wheel); } @@ -127,17 +126,9 @@ SCT_Forward::build(SCT_Identifier id) const for (int iWheel = 0; iWheel < m_numWheels; iWheel++){ - // Build Wheels - // std::cout << "iWheel = " << iWheel << std::endl; - //std::ostringstream name; name << "Wheel" << iWheel << ((m_endcap > 0) ? "A" : "C"); - //const SCT_FwdWheel * wheel = new SCT_FwdWheel(name.str(), iWheel, m_modules, m_endcap); - //m_wheels.push_back(wheel); - const SCT_FwdWheel * wheel = m_wheels[iWheel]; std::ostringstream wheelName; wheelName << "Wheel#" << iWheel; double zpos = wheel->zPosition() - zCenter(); - // std::cout << "Adding wheel " << iWheel << ", z = " << m_wheels[iWheel]->zPosition() - // << " at " << zpos << ", thickness = " << wheel->thickness() << std::endl; forward->add(new GeoNameTag(wheelName.str())); forward->add(new GeoIdentifierTag(iWheel)); GeoAlignableTransform * transform = new GeoAlignableTransform(GeoTrf::TranslateZ3D(zpos)); @@ -196,11 +187,8 @@ SCT_Forward::build(SCT_Identifier id) const int numPipes = 8 * m_wheels[iWheel]->numRings(); // Label Cooling pipe with W# at end of string - // std::ostringstream label; label << "CoolingPipeW" << iWheel + 1; - //SCT_FwdCoolingPipe * coolingPipe = new SCT_FwdCoolingPipe(label.str(), numPipes, rStart, startPos, endPos); SCT_FwdCoolingPipe coolingPipe("OffDiskCoolingPipeW"+intToString(iWheel), numPipes, rStart, startPos, endPos); - //std::cout << "Cooling pipe rmin,rmax: " << coolingPipe.innerRadius() << ", " << coolingPipe.outerRadius() << std::endl; // Place the cooling pipes double coolingPipeZPos = coolingPipe.zPosition() - zCenter(); @@ -238,12 +226,8 @@ SCT_Forward::build(SCT_Identifier id) const int numModules = m_wheels[iWheel]->totalModules(); // Label power tape with W# at end of string - //std::ostringstream label; label << "PowerTapeW" << iWheel + 1; - //SCT_FwdPowerTape * powerTape = new SCT_FwdPowerTape(label.str(), numModules, rStart, startPos, endPos); SCT_FwdPowerTape powerTape("OffDiskPowerTapeW"+intToString(iWheel), numModules, rStart, startPos, endPos); - //std::cout << "PowerTape rmin,rmax: " << powerTape.innerRadius() << ", " << powerTape.outerRadius() << std::endl; - // Place Power Tapes double powerTapeZPos = powerTape.zPosition() - zCenter(); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx index 7d36ba704b34..e8bf3e68b7cc 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx @@ -23,8 +23,6 @@ #include <sstream> #include <cmath> -#include <iostream> - SCT_FwdCylinderServices::SCT_FwdCylinderServices(const std::string & name, double rmin, double rmax, @@ -191,7 +189,6 @@ SCT_FwdCylinderServices::build() // Cooling pipe for (unsigned int iLoc = 0; iLoc < m_coolingLocAngle.size(); iLoc++) { double coolingAngle = m_coolingLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; - // std::cout << "Placing cooling pipe at " << coolingAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(coolingAngle))); cylinder->add(coolingPipe); } @@ -199,7 +196,6 @@ SCT_FwdCylinderServices::build() // Low Mass Tapes and LMT Cooling are at same phi positions for (unsigned int iLoc = 0; iLoc < m_lmtLocAngle.size(); iLoc++) { double lmtAngle = m_lmtLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; - // std::cout << "Placing LMT at " << lmtAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle))); cylinder->add(lmt); cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle)*GeoTrf::TranslateZ3D(m_lmtCoolingZOffset))); @@ -209,7 +205,6 @@ SCT_FwdCylinderServices::build() // Fibres are between pairs of LMTs for (unsigned int iLoc = 0; iLoc < m_fibreLocAngle.size(); iLoc++) { double fibreAngle = m_fibreLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; - // std::cout << "Placing fibres at " << fibreAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(fibreAngle))); cylinder->add(fibres); } @@ -217,7 +212,6 @@ SCT_FwdCylinderServices::build() // N2 Pipes for (unsigned int iLoc = 0; iLoc < m_nPipeLocAngle.size(); iLoc++) { double nPipeAngle = m_nPipeLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; - // std::cout << "Placing N2 pipe at " << nPipeAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(nPipeAngle))); cylinder->add(nPipe); } @@ -225,7 +219,6 @@ SCT_FwdCylinderServices::build() // Rails for (unsigned int iLoc = 0; iLoc < m_railLocAngle.size(); iLoc++) { double railAngle = m_railLocAngle[iLoc] + iquad * 90*Gaudi::Units::degree; - // std::cout << "Placing rail at " << railAngle / Gaudi::Units::degree << " Gaudi::Units::degrees" << std::endl; cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(railAngle))); cylinder->add(rail); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx index fb526e58d6a8..99b73df0b4d4 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx @@ -112,7 +112,6 @@ GeoVPhysVol * SCT_FwdHybrid::build() SCT_MaterialManager materials; const GeoShapeUnion & hybridShape = hybridPos1.add(hybridPos2); // error getting volume directly. - //m_material = materials.getMaterialForVolume(m_materialName, hybridShape.volume()); m_material = materials.getMaterialForVolume(m_materialName, hybridShape1->volume()+hybridShape2->volume()); const GeoLogVol * hybridLog = new GeoLogVol(getName(), &hybridShape, m_material); GeoPhysVol * hybrid = new GeoPhysVol(hybridLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx index cd5b5cacd35c..c1170044dc73 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx @@ -82,7 +82,6 @@ void SCT_FwdModule::getParameters() { const SCT_ForwardModuleParameters * parameters = geometryManager()->forwardModuleParameters(); - // m_safety = geometryManager()->safety(); m_glueThickness = parameters->fwdModuleGlueThickness(m_ringType); m_distBtwMountPoints = parameters->fwdModuleDistBtwMountPoints(m_ringType); m_mountPointToCenter = parameters->fwdModuleMountPoint(m_ringType); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx index 93f207cf9ee8..5ba0a82cba9a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx @@ -17,7 +17,6 @@ #include "GaudiKernel/SystemOfUnits.h" #include <cmath> -#include <iostream> SCT_FwdModuleConnector::SCT_FwdModuleConnector(const std::string & name, int ringType) : SCT_SharedComponentFactory(name), m_ringType(ringType) @@ -47,8 +46,6 @@ SCT_FwdModuleConnector::build() // Construct box const GeoBox * moduleConnShape = new GeoBox(0.5 * m_thickness, 0.5 * m_rphi, 0.5 * m_deltaR); m_material = materials.getMaterialForVolume(m_materialName, moduleConnShape->volume()); - // std::cout << "Material = " << m_material->getName() << std::endl; - // std::cout << "Density = " << m_material->getDensity()/(gram/Gaudi::Units::cm3) << std::endl; // Shift to correct position within module double xposition = 0.5 * (parameters->fwdHybridThickness() + m_thickness); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx index e0bb9db2588a..0a25774b1979 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx @@ -56,9 +56,6 @@ SCT_FwdOptoHarness::build() const GeoTube * optoHarnessShape = new GeoTube(m_innerRadius, m_outerRadius, 0.5 * m_thickness); m_material = materials.getMaterialForVolume(m_materialName, optoHarnessShape->volume()); - // m_material = materials.getMaterial(m_materialName); - // cout << "Material = " << m_material->getName() << endl; - // cout << "Density = " << m_material->getDensity()/(gram/Gaudi::Units::cm3) << endl; const GeoLogVol * optoHarnessLog = new GeoLogVol(getName(), optoHarnessShape, m_material); GeoPhysVol * optoHarness = new GeoPhysVol(optoHarnessLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx index f72d096699d6..4ba75ed8c4e9 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx @@ -34,19 +34,11 @@ inline double sqr(double x) {return x*x;} SCT_FwdRing::SCT_FwdRing(const std::string & name, - //int ringType, const SCT_FwdModule * module, - //const SCT_FwdRingCooling * cooling, - //int stereoSign, - //int ringSide) int iWheel, int iRing, int ec) : SCT_UniqueComponentFactory(name), - // m_ringType(ringType), - // m_ringSide(ringSide), - //m_stereoSign(stereoSign), - //m_cooling(cooling) m_iWheel(iWheel), m_iRing(iRing), m_endcap(ec), @@ -94,14 +86,6 @@ SCT_FwdRing::~SCT_FwdRing() const GeoLogVol * SCT_FwdRing::preBuild() { - // std::cout << getName() << std::endl; - // std::cout << "Wheel, Ring = " << m_iWheel << ", " << m_iRing << std::endl; - // std::cout << "m_module->thickness() = " << m_module->thickness() << std::endl; - // std::cout << "m_moduleStagger = " << m_moduleStagger << std::endl; - // std::cout << "m_refStartAngle = " << m_refStartAngle << std::endl; - // std::cout << "m_refFirstStagger = " << m_refFirstStagger << std::endl; - // std::cout << "m_ringOffset = " << m_ringOffset << std::endl; - // Make a ring. This is made of two half rings. They are identical but as // we need different identifiers they are made seperately. // We will refer to the two halves as inner and outer. @@ -147,13 +131,6 @@ SCT_FwdRing::preBuild() m_firstStagger = m_refFirstStagger; if (moduleCountInt % 2) m_firstStagger = -m_refFirstStagger; - // std::cout << "RingType, RingSide, Stereo, rotated = " << m_iRing << " " << m_ringSide << " " - // << m_stereoSign << " " << m_discRotated << std::endl; - // std::cout << "Ref Start angle and stagger " << m_refStartAngle/Gaudi::Units::deg << " " << m_refFirstStagger << std::endl; - // std::cout << "First Start angle and stagger " << m_startAngle/Gaudi::Units::deg << " " << m_firstStagger << std::endl; - // std::cout << "Module zero in -ve endcap " << m_moduleZero << std::endl; - - makeModuleServices(); // Make envelope for ring @@ -165,17 +142,6 @@ SCT_FwdRing::preBuild() + 0.5*m_module->stereoAngle()*(0.5*m_module->outerWidth()) + moduleClearanceR; // Calculate clearance we have. NB. This is an approximate. - //std::cout << "Module clearance (radial value does not take into account stereo rotation:" << std::endl; - //std::cout << " radial: " << moduleClearanceR/Gaudi::Units::mm << " mm" << std::endl; - //std::cout << " away from disc in z " << moduleClearanceZ/Gaudi::Units::mm << " mm" << std::endl; - //std::cout << " Lo Module to cooling block: " << -m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos << std::endl; - //std::cout << " Hi Module to cooling block: " << +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos << std::endl; - //std::cout << " Module to Module: " << m_moduleStagger-m_module->thickness() << std::endl; - //std::cout << " towards disc in z " - // << std::min(m_moduleStagger-m_module->thickness(), - // std::min(-m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos, - // +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos)) / Gaudi::Units::mm << " mm" << std::endl; - m_thicknessOuter = 0.5 * m_module->thickness() + m_moduleStagger + moduleClearanceZ; m_thicknessInner = m_maxModuleServicesBaseToRingCenter + 2*m_safety; // We have to at least include 1*m_safety as the moduleservices envelope is increased by this amount. @@ -191,11 +157,7 @@ SCT_FwdRing::preBuild() const GeoShape & ringEnvelopeShape = (*tmpShape << GeoTrf::Translate3D(0, 0, envelopeShift)); GeoLogVol * ringLog = new GeoLogVol(getName(), &ringEnvelopeShape, materials.gasMaterial()); - //std::cout << "m_innerRadius = " << m_innerRadius << std::endl; - //std::cout << "m_outerRadius = " << m_outerRadius << std::endl; - return ringLog; - } @@ -237,15 +199,6 @@ SCT_FwdRing::build(SCT_Identifier id) const idModule = (m_numModules + m_moduleZero - idNumber) % m_numModules; } - //std::cout << "Endcap# = " <<id.getBarrelEC() - // << ", idModule = " << idModule - // << ", idModuleSimulation = " << idModuleSimulation - // << ", idModule2 = " << (idModuleSimulation & 0xffff) - // << ", max = " << ((idModuleSimulation & 0x00ff0000) >> 16) - // << ", moduleZero = " << ((idModuleSimulation & 0xff000000) >> 24) - // << std::endl; - - // The module is a TRD with length along z-axis. // We need to rotate this so length is along the y-axis // This can be achieved with a 90 deg rotation around Y. @@ -259,11 +212,6 @@ SCT_FwdRing::build(SCT_Identifier id) const double phi = i * deltaPhi + m_startAngle; - //std::cout << "Endcap# = " <<id.getBarrelEC() - // << ", idModule = " << idModule - // << ", i = " << i - // << ", phi = " << phi/Gaudi::Units::degree << std::endl; - GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(phi + 0.5 * m_module->stereoAngle() * m_stereoSign); if (m_ringSide > 0) { rot = rot*GeoTrf::RotateX3D(180*Gaudi::Units::degree); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx index 34400f89fbdb..c8cd1d7aa2eb 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx @@ -113,23 +113,10 @@ SCT_FwdSensor::getParameters() m_sensorOffset = m_radiusF - m_sensorRadius; } - //std::cout << "SCT_FwdSensor : " << std::endl; - //std::cout << " ringType = " << m_ringType << std::endl; - //std::cout << " sensorCenterRadius = " << m_sensorRadius << std::endl; - //std::cout << " innerRadius = " << m_innerRadius << std::endl; - //std::cout << " outerRadius = " << m_outerRadius << std::endl; - - - - // The thickness of the two are the same, but to be pedantic. m_thickness = std::max(m_thicknessF, m_thicknessN); - - } - - const GeoLogVol * SCT_FwdSensor::preBuild() { @@ -280,11 +267,6 @@ void SCT_FwdSensor::makeDesign() double step = parameters->fwdSensorAngularPitch(m_ringType); - /* - std::cout << "ZB -----------------" << cells << " " << std::endl; - std::cout << radius1 << " " << radius2 << " " << halfHeight1 << " " << halfHeight2 << std::endl; - */ - // Readout direction is same direction as local phi direction for outer module // and the opposite direction for inner and middle module. bool swapStripReadout = (m_ringType != 0); // ie false for outer module only. @@ -346,7 +328,6 @@ GeoVPhysVol *SCT_FwdSensor::build(SCT_Identifier id) const detectorManager()->addDetectorElement(detElement); } else { - // std::cout << " ZB --> build - warning" << std::endl; static bool noElementWarning = true; // So we don't get the message thousands of times. if (noElementWarning) { std::cout << "WARNING!!!!: No SCT id helper and so no elements being produced." << std::endl; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx index fd9d628e6db9..a8df7a8d0623 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx @@ -235,12 +235,8 @@ SCT_FwdWheel::preBuild() m_thicknessBack = tmp; } - // std::cout << " Wheel front thickness = " << m_thicknessFront << std::endl; - // std::cout << " Wheel back thickness = " << m_thicknessBack << std::endl; m_thickness = m_thicknessFront + m_thicknessBack; - - m_innerRadius = minInnerRadius - m_safety; m_outerRadius = maxOuterRadius + m_safety; @@ -248,11 +244,6 @@ SCT_FwdWheel::preBuild() //m_thickness = 2. * maxRingOffset + maxThickness; // m_thickness = 100 * Gaudi::Units::mm; - // std::cout << "Wheel " << m_iWheel << ":" << std::endl; - // std::cout << " innerRadius = " << m_innerRadius << std::endl; - // std::cout << " outerRadius = " << m_outerRadius << std::endl; - // std::cout << " thickness = " << m_thickness << std::endl; - // Make envelope for the wheel SCT_MaterialManager materials; @@ -271,9 +262,6 @@ SCT_FwdWheel::preBuild() GeoVPhysVol * SCT_FwdWheel::build(SCT_Identifier id) const { - - //std::cout << "SCT_FwdWheel: Building Wheel " << m_iWheel << std::endl; - GeoFullPhysVol * wheel = new GeoFullPhysVol(m_logVolume); // Add discsupport. Its centered so no need for a transform @@ -293,14 +281,8 @@ SCT_FwdWheel::build(SCT_Identifier id) const // Position ring double ringZpos = ring->ringSide() * ring->ringOffset(); - // std::cout << "Wheel, ring = " << m_iWheel << ", " << iRing << std::endl; - // std::cout << " ringZpos, thickness = " << ringZpos << ", " << ring->thickness() << std::endl; double ringOuterZ = ring->ringOffset() + ring->thicknessOuter(); - // std::cout << " ring outer z = " << ringOuterZ << std::endl; maxZOfRingsFront = std::max(maxZOfRingsFront, ringOuterZ); - // std::cout << " ring inner radius = " << ring->innerRadius() << std::endl; - // std::cout << " ring outer radius = " << ring->outerRadius() << std::endl; - std::string ringNameTag = "Ring#" + intToString(ring->identifier()); wheel->add(new GeoNameTag(ringNameTag)); @@ -314,7 +296,6 @@ SCT_FwdWheel::build(SCT_Identifier id) const SCT_FwdRingCooling cooling("RingCoolingW"+intToString(m_iWheel)+"R"+intToString(iRing), iRing); double coolingZpos = ring->ringSide() * (0.5*(m_discSupport->thickness() + cooling.thickness())); - //std::cout << "coolingZpos, thickness = " << coolingZpos << ", " << cooling->thickness() << std::endl; wheel->add(new GeoTransform(GeoTrf::TranslateZ3D(coolingZpos))); wheel->add(cooling.getVolume()); @@ -325,8 +306,6 @@ SCT_FwdWheel::build(SCT_Identifier id) const double powerTapeZpos = ring->ringSide() * (0.5*(m_discSupport->thickness() + powerTape.thickness()) + cooling.thickness()); - //std::cout << "powerTapeZpos, thickness = " << powerTapeZpos << ", " << powerTape->thickness() << std::endl; - // Make sure we don't overlap with powertape from outer rings // We store max extent of power tape for each side (Plus, Minus) // This is really only ever an issue for ring2 but we keep it general. @@ -334,24 +313,18 @@ SCT_FwdWheel::build(SCT_Identifier id) const double powerTapeZstart = powerTapeZpos - 0.5 * powerTape.thickness(); if (powerTapeZstart < powerTapeZPlusMax) { powerTapeZpos = powerTapeZPlusMax + 0.5 * powerTape.thickness(); - //std::cout << "Moving power tape!!!" << std::endl; } powerTapeZPlusMax = powerTapeZpos + 0.5 * powerTape.thickness(); } else { double powerTapeZstart = powerTapeZpos + 0.5 * powerTape.thickness(); if (powerTapeZstart > powerTapeZMinusMax) { powerTapeZpos = powerTapeZMinusMax - 0.5 * powerTape.thickness(); - //std::cout << "Moving power tape!!!" << std::endl; } powerTapeZMinusMax = powerTapeZpos - 0.5 * powerTape.thickness(); } if ((std::abs(powerTapeZpos)+0.5*powerTape.thickness()) > (std::abs(ringZpos) - 0.5*ring->thicknessInner())) { std::cout << "ERROR: Power tapes clash with modules!!!" << std::endl; } - //std::cout << " powertape max " << std::abs(powerTapeZpos)+0.5*powerTape.thickness() << std::endl; - //std::cout << " modules min " << std::abs(ringZpos) - 0.5*ring->thicknessInner() << std::endl; - - //std::cout << "new powerTapeZpos, thickness = " << powerTapeZpos << ", " << powerTape->thickness() << std::endl; wheel->add(new GeoTransform(GeoTrf::TranslateZ3D(powerTapeZpos))); wheel->add(powerTape.getVolume()); @@ -442,9 +415,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const // Add the optoharness - type depends on number of rings // The optoharness is always on the back side (except if the wheel is rotates) double optoHarnessZMax = 0.5 * m_discSupport->thickness(); - if (!m_optoHarnessPresent) { - //std::cout << "SCT_FwdOptoHarness not built" << std::endl; - } else { + if (m_optoHarnessPresent) { std::string optoharnessName = "OptoHarnessO"; if(m_numRings > 1) {optoharnessName+="M";} if(m_numRings > 2) {optoharnessName+="I";} @@ -464,19 +435,6 @@ SCT_FwdWheel::build(SCT_Identifier id) const int fsiSide = fsiUsualSide * m_rotateWheel; double fsiZpos = fsiSide * m_fsiType[type]->zOffset(); - // std::cout << "Placing FSI. Type: " << type << ", " - // << "Sim type: " << (*m_fsiVector)[iFSI]->simTypeString() << ", " - // << "Actual type: " << (*m_fsiVector)[iFSI]->actualType() << ", " - // << "Loc type: " << (*m_fsiVector)[iFSI]->locationType() << ", " - // << "Radius(mm): " << fsiRadius/Gaudi::Units::mm << ", " - // << "Phi(deg): " << fsiPhi/Gaudi::Units::deg << ", " - // << "Thickness(mm): " << m_fsiType[type]->thickness() << ", " - // << "ZOffset(mm): " << m_fsiType[type]->zOffset() << ", " - // << "RPhi(mm): " << m_fsiType[type]->rphi() << ", " - // << "DeltaR(mm): " << m_fsiType[type]->deltaR() - // << std::endl; - - // Check for clashes on front side if (fsiUsualSide < 0) { double zMin = std::abs(fsiZpos) - 0.5*m_fsiType[type]->thickness(); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx index 1bec07bc2435..cd861f5e5332 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx @@ -10,9 +10,6 @@ #include "GeoModelKernel/GeoDefinitions.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" -#include <iostream> - - const double SCT_SAFETY = 0.01 * Gaudi::Units::mm; // Used in some places to make envelopes slightly larger to ensure // no overlaps due to rounding errors. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx index 73758851473b..451ca68a6f01 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx @@ -108,11 +108,6 @@ SCT_Layer::getParameters() detectorManager()->numerology().setNumPhiModulesForLayer(m_iLayer,m_skisPerLayer); detectorManager()->numerology().setNumEtaModulesForLayer(m_iLayer,parameters->modulesPerSki()); - // std::cout << "In SCT_Layer:" << std::endl; - // std::cout << " skisPerLayer = " << m_skisPerLayer << std::endl; - // std::cout << " radius = " << m_radius << std::endl; - // std::cout << " tilt = " << m_tilt << std::endl; - } @@ -136,7 +131,6 @@ SCT_Layer::preBuild() m_endJewel = new SCT_FSIEndJewel("FSIEndJewel"+layerNumStr); m_scorpion = new SCT_FSIScorpion("FSIScorpion"+layerNumStr); double length_mask = 0.5*m_cylinderLength - m_flange->length() - m_zScorpion - 0.5*m_scorpion->length(); - // std::cout << "length_mask = " << length_mask << std::endl; m_fibreMask = new SCT_FSIFibreMask("FSIFibreMask"+layerNumStr, m_iLayer, length_mask); } else { @@ -247,10 +241,6 @@ SCT_Layer::preBuild() // if (m_iLayer == 0) {length = m_cylinderLength + m_safety;} const GeoTube * layerEnvelopeTube = new GeoTube(m_innerRadius, m_outerRadius, 0.5 * length); - // std::cout << "Layer " << m_iLayer << " envelope, rmin, rmax, length = " - // << m_innerRadius << ", " <<m_outerRadius << ", " << length - // << std::endl; - GeoLogVol * layerLog = new GeoLogVol(getName(), layerEnvelopeTube, materials.gasMaterial()); @@ -278,9 +268,6 @@ SCT_Layer::build(SCT_Identifier id) const // // Make envelope for active layer // - // std::cout << "Making Active Layer: rmin,rmax,len = " << m_innerRadiusActive - // << " " << m_outerRadiusActive << " " << 0.5 * m_cylinderLength - // << std::endl; const GeoTube * activeLayerEnvelopeShape = new GeoTube(m_innerRadiusActive, m_outerRadiusActive, 0.5 * m_cylinderLength); GeoLogVol * activeLayerLog = new GeoLogVol(getName()+"Active", activeLayerEnvelopeShape, materials.gasMaterial()); GeoPhysVol * activeLayer = new GeoPhysVol(activeLayerLog); @@ -290,8 +277,6 @@ SCT_Layer::build(SCT_Identifier id) const double phi = m_skiPhiStart + iSki * divisionAngle; - // std::cout << "m_skiPhiStart = " << m_skiPhiStart/Gaudi::Units::degree << ", phi = " << phi/Gaudi::Units::degree << std::endl; - GeoTrf::Vector3D pos(m_radius, 0, 0); pos = GeoTrf::RotateZ3D(phi)*pos; GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(m_tilt)*GeoTrf::RotateZ3D(phi); @@ -300,8 +285,6 @@ SCT_Layer::build(SCT_Identifier id) const // apply the inverse of refPointTransform() of the ski. GeoTrf::Transform3D trans(GeoTrf::Transform3D(GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rot) * m_ski->getRefPointTransform()->getTransform().inverse()); - // std::cout << "Adding ski at pos: " << pos << std::endl; - // std::cout << " StereoInner = " << m_module->stereoInner() << std::endl; activeLayer->add(new GeoAlignableTransform(trans)); activeLayer->add(new GeoNameTag(name.str())); activeLayer->add(new GeoIdentifierTag(iSki)); @@ -326,9 +309,6 @@ SCT_Layer::build(SCT_Identifier id) const // Aux Layer // Envelope for brackets and powertapes. // - // std::cout << "Making Aux Layer: rmin,rmax,len = " << m_skiAux->innerRadius() - // << " " << m_skiAux->outerRadius() << " " << 0.5 * m_skiAux->length() - // << std::endl; const GeoTube * auxLayerEnvelopeShape = new GeoTube(m_skiAux->innerRadius(), m_skiAux->outerRadius(), 0.5*m_skiAux->length()); GeoLogVol * auxLayerLog = new GeoLogVol(getName()+"Aux", auxLayerEnvelopeShape, materials.gasMaterial()); @@ -349,9 +329,6 @@ SCT_Layer::build(SCT_Identifier id) const // Envelope for support cylinder, flanges and FSI. // Layer0 no longer needs cut-out // - // std::cout << "Making Support Layer: rmin,rmax,len = " << m_innerRadius - // << " " << m_outerRadiusOfSupport << " " << 0.5 * m_cylinderLength - // << std::endl; const GeoTube * supportLayerTube = new GeoTube(m_innerRadius, m_outerRadiusOfSupport, 0.5 * m_cylinderLength); GeoLogVol * supportLayerLog = new GeoLogVol(getName()+"Support", supportLayerTube, materials.gasMaterial()); @@ -377,10 +354,8 @@ SCT_Layer::build(SCT_Identifier id) const // Position FSI End jewels double jewelRadius = std::sqrt(m_fibreMask->innerRadius()*m_fibreMask->innerRadius() - 0.25 * m_endJewel->rPhiWidth()*m_endJewel->rPhiWidth()) - 0.5 * m_endJewel->radialWidth(); - // std::cout << "jewelRadius = " << jewelRadius << std::endl; for ( int i=0; i<m_nRepeatEndJewel; i++) { double jewelAngle = m_phiEndJewel + i * 360.*Gaudi::Units::degree/m_nRepeatEndJewel; - // std::cout << "jewelAngle = " << jewelAngle << std::endl; supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(jewelAngle)*GeoTrf::TranslateX3D(jewelRadius)*GeoTrf::TranslateZ3D(m_zEndJewel))); supportLayer->add(m_endJewel->getVolume()); supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(jewelAngle)*GeoTrf::TranslateX3D(jewelRadius)*GeoTrf::TranslateZ3D(-m_zEndJewel))); @@ -389,10 +364,8 @@ SCT_Layer::build(SCT_Identifier id) const // Position FSI Scorpions double scorpionRadius = std::sqrt(m_supportCyl->innerRadius()*m_supportCyl->innerRadius() - 0.25 * m_scorpion->rPhiWidth()*m_scorpion->rPhiWidth()) - 0.5 * m_scorpion->radialWidth(); - // std::cout << "scorpionRadius = " << scorpionRadius << std::endl; for ( int i=0; i<m_nRepeatScorpion; i++) { double scorpionAngle = m_phiScorpion + i * 360.*Gaudi::Units::degree/m_nRepeatScorpion; - // std::cout << "scorpionAngle = " << scorpionAngle << std::endl; supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(scorpionAngle)*GeoTrf::TranslateX3D(scorpionRadius)*GeoTrf::TranslateZ3D(m_zScorpion))); supportLayer->add(m_scorpion->getVolume()); supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(scorpionAngle)*GeoTrf::TranslateX3D(scorpionRadius)*GeoTrf::TranslateZ3D(-m_zScorpion))); @@ -490,12 +463,5 @@ SCT_Layer::calcSkiPhiOffset() // skiPhiOffset < 0 for +ve tilt and > 0 for -ve tilt. double skiPhiOffset = tiltSign * (0.5 * divisionAngle - alpha); - //std::cout << "In Volume: " << getName() << ":" << std::endl; - //// std::cout << " Module width = " << m_skiAux->ski()->module()->width() << std::endl; - //// std::cout << " Active width = " << m_skiAux->ski()->module()->activeWidth() << std::endl; - //std::cout << " Module width = " << m_module->width() << std::endl; - //std::cout << " Active width = " << m_module->activeWidth() << std::endl; - //std::cout << " Division angle = " << divisionAngle/Gaudi::Units::degree << " Gaudi::Units::deg" << std::endl; - //std::cout << " Ski phi offset = " << skiPhiOffset/Gaudi::Units::degree << " Gaudi::Units::deg" << std::endl; return skiPhiOffset; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx index 6143317a4d1e..09b44a2e1428 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx @@ -33,7 +33,6 @@ SCT_MaterialManager::SCT_MaterialManager() } const SCT_DataBase * rdb = SCT_DataBase::instance(); - //s_materialManager = new InDetMaterialManager("SCT_MaterialManager", detStore, rdb->weightTable(), "sct") s_materialManager = new InDetMaterialManager("SCT_MaterialManager", rdb->athenaComps()); s_materialManager->addWeightTable(rdb->weightTable(), "sct"); s_materialManager->addScalingTable(rdb->scalingTable()); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx index 502e1d7d6b5d..f48ab25d870e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx @@ -41,7 +41,6 @@ SCT_Module::SCT_Module(const std::string & name) : SCT_UniqueComponentFactory(name), - //m_stereoSign(0), m_innerSide(0), m_outerSide(0), m_baseBoard(0) @@ -149,20 +148,6 @@ SCT_Module::preBuild() GeoTrf::Vector3D x(0.0, u.y(),w.z()); // for corner of hybrid, connectorouter and pigtail of outer side. - //GeoTrf::Vector3D i(0.0, - // 0.5*outerSideHybridWidth, - // m_outerSide->hybridOffsetZ() + 0.5*outerSideHybridLength); - // GeoTrf::Vector3D k(0.0, - // -0.5*outerSideHybridWidth, - // m_outerSide->hybridOffsetZ() + 0.5*outerSidePigtailLength); - //GeoTrf::Vector3D l(0.0, - // -0.5*outerSideHybridWidth - m_outerSide->pigtail()->width(), k.z()); - //GeoTrf::Vector3D m(0.0, l.y(), - // m_outerSide->hybridOffsetZ() - 0.5*outerSidePigtailLength); - //GeoTrf::Vector3D n(0.0, k.y(),m.z()); - //GeoTrf::Vector3D p(0.0, i.y(), - // m_outerSide->hybridOffsetZ() - 0.5*outerSideHybridLength); - GeoTrf::Vector3D i(0.0, 0.5*outerSideHybridWidth, m_outerSide->hybridOffsetZ() + 0.5*outerSidePigtailLength); @@ -215,9 +200,6 @@ SCT_Module::preBuild() const double y_bc = std::min(b.y(), c.y()); const double y_fg = std::min(f.y(), g.y()); - //const double y_ux = std::max(u.y(), x.y()); - //const double y_vw = std::min(v.y(), w.y()); - const double zmaxEnv1 = std::max(z_ab, z_ef); const double zminEnv1 = std::min(z_cd, z_gh); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx index ef7d865734e9..bb7405a950f3 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx @@ -183,8 +183,6 @@ SCT_Ski::preBuild() // *** End of modified lines. ------------------ (12)********************************* - //std::cout << "xPos, yPos = " << xPos << " " << yPos << std::endl; - // // Calculate position of cooling block // @@ -237,8 +235,6 @@ SCT_Ski::preBuild() // double zDoglegOffset = m_module->baseBoardCenter(); double zDoglegOffset = coolingBlockOffsetZ(); - //std::cout << "Dogleg offset: " << yDoglegOffset << std::endl; - // // Calculate position of cooling pipe. // @@ -401,13 +397,11 @@ SCT_Ski::preBuild() xmax1 += m_safety; ymin1 -= m_safety; ymax1 += m_safety; - // std::cout << "xmin1,xmax1,ymin1,ymax1= " << xmin1 << " " << xmax1 << " " << ymin1 << " " << ymax1 << std::endl; xmin2 -= m_safety; xmax2 += m_safety; ymin2 -= m_safety; ymax2 += m_safety; - // std::cout << "xmin2,xmax2,ymin2,ymax2= " << xmin2 << " " << xmax2 << " " << ymin2 << " " << ymax2 << std::endl; double xCenter = 0.5*(xmin1+xmax1); double yCenter = 0.5*(ymin1+ymax1); @@ -418,9 +412,6 @@ SCT_Ski::preBuild() m_refPointTransform = new GeoTransform(GeoTrf::Translate3D(-xCenter, -yCenter, 0)); m_refPointTransform->ref(); - // std::cout << "xCenter, yCenter = " << xCenter << " " << yCenter << std::endl; - // std::cout << "xShift2, yShift2 = " << xShift2 << " " << yShift2 << std::endl; - // std::cout << "xCoolingPipePos, yCoolingPipePos = " << xCoolingPipePos << " " << yCoolingPipePos << std::endl; // *** 10:00 Tue 31st May 2005 D.Naito modified. (14)********************************* // *** -->> (14)********************************* @@ -470,17 +461,6 @@ SCT_Ski::preBuild() // Calculate the clearances. Module envelope1 is the thickness up to the sensors. This is used for the module to // module distance - //std::cout << "Clearance Module to Module: " - // << m_radialSep - m_module->env1Thickness() << std::endl; - //std::cout << "Clearance Module to Dogleg: " - // << std::abs(xDoglegOffset) - 0.5*m_dogleg->thickness() - 0.5*m_module->thickness() << std::endl; - //std::cout << "Clearance Module to Cooling Block: " - // << std::abs(xCoolingBlockOffset) - 0.5*m_coolingBlock->thickness() - 0.5 * m_module->baseBoard()->thickness() - m_safety - // << std::endl; - //std::cout << "Cooling block to pipe: " << std::abs(-xModuleOffset + xCoolingBlockOffset - xCoolingPipePos) - // - 0.5*m_coolingBlock->thickness() - m_coolingPipe->pipeRadius() - // << std::endl; - return skiLog; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx index d9f62da5c53a..b28581610c0c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx @@ -13,9 +13,7 @@ #include "SCT_GeoModel/SCT_GeometryManager.h" #include "SCT_GeoModel/SCT_BarrelParameters.h" -//#include "SCT_GeoModel/SCT_Dogleg.h" // Tue 30th Aug 2005 D.Naito removed. #include "SCT_GeoModel/SCT_Ski.h" -//#include "SCT_GeoModel/SCT_PowerTape.h" #include "SCT_GeoModel/SCT_PowerTape.h" #include "SCT_GeoModel/SCT_Module.h" // 28th Mar 2005 S.Mima modified. @@ -162,8 +160,5 @@ SCT_SkiPowerTape::build() } - // std::cout << "Total power tape mass = " << mass << std::endl; - // std::cout << "Total power tape length = " << ltot << std::endl; return skiPowerTape; - } -- GitLab From 9a4217d2247a9974b95129f81e98b938a021a900 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Thu, 24 Jan 2019 08:37:36 +0100 Subject: [PATCH 085/192] Migrated 8 LArGeoModel packages from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../LArGeoAlgsNV/src/LArDetectorFactory.cxx | 6 +- .../LArGeoBarrel/src/BarrelConstruction.cxx | 131 +++--- .../src/BarrelCryostatConstruction.cxx | 54 +-- .../LArGeoBarrel/src/BarrelDMConstruction.cxx | 277 ++++++------ .../src/BarrelPresamplerConstruction.cxx | 64 +-- .../LArGeoCode/src/LArMaterialManager.cxx | 121 ++--- .../EndcapPresamplerGeometryHelper.h | 2 +- .../LArGeoEndcap/src/EMECConstruction.cxx | 65 ++- .../src/EMECSupportConstruction.cxx | 416 +++++++++--------- .../src/EndcapCryostatConstruction.cxx | 100 ++--- .../LArGeoEndcap/src/EndcapDMConstruction.cxx | 12 +- .../src/EndcapPresamplerConstruction.cxx | 10 +- .../src/EndcapPresamplerGeometryHelper.cxx | 14 +- .../LArGeoFcal/src/FCALConstruction.cxx | 92 ++-- .../LArGeoHec/src/HEC2WheelConstruction.cxx | 8 +- .../LArGeoHec/src/HECClampConstruction.cxx | 8 +- .../LArGeoHec/src/HECModuleConstruction.cxx | 8 +- .../LArGeoHec/src/HECWheelConstruction.cxx | 8 +- .../src/MiniFcalConstruction.cxx | 32 +- .../LArReadoutGeometry/EMECDetectorRegion.h | 4 +- .../LArReadoutGeometry/FCALModule.h | 4 +- .../LArReadoutGeometry/HECDetectorRegion.h | 4 +- .../src/EMBAccordionDetails.cxx | 20 +- .../src/EMBBasicReadoutNumbers.cxx | 12 +- .../src/EMECDetectorManager.cxx | 20 +- .../src/FCAL_ChannelMap.cxx | 8 +- .../LArReadoutGeometry/src/HECDetDescr.cxx | 3 +- .../src/HECDetectorManager.cxx | 16 +- 28 files changed, 758 insertions(+), 761 deletions(-) diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx index 3ff752ce74b8..cc101e02c612 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx @@ -17,7 +17,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "CLHEP/Geometry/Transform3D.h" @@ -237,7 +237,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) a_container->add(endcapEnvelopePos); a_container->add( new GeoNameTag("LArEndcapNeg")); a_container->add(xfEndcapNeg); - a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*GeoModelKernelUnits::deg))); + a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*Gaudi::Units::deg))); a_container->add(endcapEnvelopeNeg); } else if(!m_buildEndcap) @@ -302,7 +302,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) a_container->add(endcapEnvelopePos); a_container->add( new GeoNameTag("LArEndcapNeg")); a_container->add(xfEndcapNeg); - a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*GeoModelKernelUnits::deg))); + a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*Gaudi::Units::deg))); a_container->add(endcapEnvelopeNeg); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx index 25ca516e9cda..7d4c3146179a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx @@ -15,9 +15,6 @@ #include "LArGeoCode/VDetectorParameters.h" -//#include "LArDetDescr/LArDetDescrManager.h" -//#include "CaloDetDescr/CaloSubdetNames.h" - #include "GeoModelKernel/GeoElement.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoFullPhysVol.h" @@ -55,7 +52,7 @@ #include "GeoGenericFunctions/Variable.h" #include "GeoGenericFunctions/FixedConstant.h" // For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -201,7 +198,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoGenfun::Sqrt Sqrt; GeoGenfun::ATan ATan; - double twopi64 = GeoModelKernelUnits::pi/32.; + double twopi64 = Gaudi::Units::pi/32.; double twopi32 = 2.*twopi64; @@ -316,13 +313,13 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Moth_outer_radius = m_parameters->GetValue("LArEMBMotherRmax"); double Moth_Phi_Min = 0.; - double Moth_Phi_Max = m_parameters->GetValue("LArEMBphiMaxBarrel")*GeoModelKernelUnits::deg; + double Moth_Phi_Max = m_parameters->GetValue("LArEMBphiMaxBarrel")*Gaudi::Units::deg; #ifdef DEBUGGEO std::cout << " *** Mother volume (Ecam) parameters " << std::endl; std::cout << " Rmin/Rmax " << Moth_inner_radius << " " << Moth_outer_radius << std::endl; std::cout << " Zmin/Zmax " << Moth_Z_min << " " << Moth_Z_max << std::endl; - std::cout << " phi1,Dphi (GeoModelKernelUnits::deg)" << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " phi1,Dphi (Gaudi::Units::deg)" << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; #endif // number of zigs for accordion @@ -371,9 +368,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() (double) (m_parameters->GetValue("LArEMBPhiAtCurvature",idat)); Delta[idat] = (double) (m_parameters->GetValue("LArEMBDeltaZigAngle",idat)); - if(idat == 14) Delta[idat] = (90.0) * GeoModelKernelUnits::deg; + if(idat == 14) Delta[idat] = (90.0) * Gaudi::Units::deg; - // Maximum SAGGING displacement for each of the fifteen folds in GeoModelKernelUnits::mm + // Maximum SAGGING displacement for each of the fifteen folds in Gaudi::Units::mm // (should be 0.0, 0.17, 0.30, 0.63, 0.78, 1.06, 1.09, 1.21, 1.07, 1.03, 0.74, 0.61, 0.27, 0.20, 0.0) //GUtmp sagging amplied by 10 if (m_A_SAGGING) { @@ -393,8 +390,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // #ifdef DEBUGGEO log << MSG::DEBUG << "idat " << idat << " Rhocen/Phice/Delta/deltay/deltax/etatrans " - << Rhocen[idat] << " " << Phicen[idat]*(1./GeoModelKernelUnits::deg) << " " - << Delta[idat]*(1./GeoModelKernelUnits::deg) << " " << deltay[idat] << " " << deltax[idat] + << Rhocen[idat] << " " << Phicen[idat]*(1./Gaudi::Units::deg) << " " + << Delta[idat]*(1./Gaudi::Units::deg) << " " << deltay[idat] << " " << deltax[idat] << " " << etaTrans << endmsg; // #endif @@ -452,10 +449,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // very confused at the common surface between ECAM and STAC) //-----------------ECAM---------------------------------------------------------// { // - double Moth_Phi_Min2 = (Ncell == 64) ? -1.555*GeoModelKernelUnits::deg : 0.; // - double Moth_Phi_Max2 = (Ncell == 64) ? 25.61*GeoModelKernelUnits::deg : 2*M_PI; // + double Moth_Phi_Min2 = (Ncell == 64) ? -1.555*Gaudi::Units::deg : 0.; // + double Moth_Phi_Max2 = (Ncell == 64) ? 25.61*Gaudi::Units::deg : 2*M_PI; // // - double safety_rhocen1 = 0.040*GeoModelKernelUnits::mm; // + double safety_rhocen1 = 0.040*Gaudi::Units::mm; // double Zplan[] = {Bar_Z_min-Zp0,Bar_Z_cut-Zp0,Bar_Z_max-Zp0}; // double Riacc[] = {Moth_inner_radius,Moth_inner_radius, Rhocen1-safety_rhocen1}; // double Roacc[] = {Moth_outer_radius,Moth_outer_radius,Moth_outer_radius}; // @@ -465,7 +462,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Zplan " << Zplan[0] << " " << Zplan[1] << " " << Zplan[2] << std::endl; std::cout << " Rin " << Riacc[0] << " " << Riacc[1] << " " << Riacc[2] << std::endl; std::cout << " Rout " << Roacc[0] << " " << Roacc[1] << " " << Roacc[2] << std::endl; - std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/GeoModelKernelUnits::deg << " " << Moth_Phi_Max2/GeoModelKernelUnits::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/Gaudi::Units::deg << " " << Moth_Phi_Max2/Gaudi::Units::deg << std::endl; #endif int ecamArraySize = sizeof(Zplan) / sizeof(double); // std::string name = baseName + "ECAM"; // @@ -510,19 +507,19 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoPhysVol *Elnicsf_phys=NULL; double Xel1f; { - // WARNING : this "hard_coded" 0.010*GeoModelKernelUnits::mm is a "security" to avoid + // WARNING : this "hard_coded" 0.010*Gaudi::Units::mm is a "security" to avoid // fake "overlapping" diagnostics with "DAVID" - Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*GeoModelKernelUnits::mm + Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*Gaudi::Units::mm double DeltaZ = Zhalfc; double Zpos = Zhalfc+Bar_Z_min; - double Rmini = Moth_inner_radius + 0.010*GeoModelKernelUnits::mm; - double Rmaxi = Rmini+Xel1f - 0.010*GeoModelKernelUnits::mm; + double Rmini = Moth_inner_radius + 0.010*Gaudi::Units::mm; + double Rmaxi = Rmini+Xel1f - 0.010*Gaudi::Units::mm; std::string name = baseName + "TELF"; #ifdef DEBUGGEO std::cout << " *** parameters for TELF tubs " << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; std::cout << " Rmin/Rmax " << Rmini << " " << Rmaxi << std::endl, - std::cout << " PhiMin,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; std::cout << " Zpos in ECAM " << Zpos << std::endl; #endif GeoTubs* tubs = new GeoTubs(Rmini, // rmin @@ -545,9 +542,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // (follow mixture described in Pascal Perrodo note GeoPhysVol *Sumb_phys=NULL; { - double ThickSum = 10.*GeoModelKernelUnits::mm; // FIXME should be in geometry database + double ThickSum = 10.*Gaudi::Units::mm; // FIXME should be in geometry database double Rmini = Moth_inner_radius+Xel1f-ThickSum; - double Rmaxi = Moth_inner_radius+Xel1f -0.020*GeoModelKernelUnits::mm; // safety margin + double Rmaxi = Moth_inner_radius+Xel1f -0.020*Gaudi::Units::mm; // safety margin double DeltaZ = Zhalfc; double Zpos=0.; std::string name = baseName + "SUMB"; @@ -555,7 +552,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for SUMB tubs " << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; std::cout << " Rmin/Rmax " << Rmini << " " << Rmaxi << std::endl, - std::cout << " PhiMin,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; std::cout << " Zpos in TELF " << Zpos << std::endl; #endif @@ -571,9 +568,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() { double ClearancePS = m_parameters->GetValue("LArEMBMoBoclearfrPS"); double RhoPosB = Moth_inner_radius + ClearancePS; - double bdx = .5*(m_parameters->GetValue("LArEMBMoBoTchickness")); // 4.3/2.*GeoModelKernelUnits::mm - double bdy = .5*(m_parameters->GetValue("LArEMBMoBoHeight")); // 72.3/2.*GeoModelKernelUnits::mm; - double bdz = Zhalfc - 0.007*GeoModelKernelUnits::mm; + double bdx = .5*(m_parameters->GetValue("LArEMBMoBoTchickness")); // 4.3/2.*Gaudi::Units::mm + double bdy = .5*(m_parameters->GetValue("LArEMBMoBoHeight")); // 72.3/2.*Gaudi::Units::mm; + double bdz = Zhalfc - 0.007*Gaudi::Units::mm; //------------------------MOTHERBOARDS--------------------------------------------// // JFB Make & Place the motherboards inside overall tube // @@ -587,7 +584,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for MotherBoard (box)" << std::endl; std::cout << " dx,dy,dz " << bdx << " " << bdy << " " << bdz << std::endl; std::cout << " Radius pos " << RhoPosB << std::endl; - std::cout << " Phi0,Dphi " << PhiPos0/GeoModelKernelUnits::deg << " " << twopi32/GeoModelKernelUnits::deg << std::endl; + std::cout << " Phi0,Dphi " << PhiPos0/Gaudi::Units::deg << " " << twopi32/Gaudi::Units::deg << std::endl; #endif GeoBox * box = new GeoBox(bdx,bdy,bdz); // const GeoLogVol * logVol = new GeoLogVol(name,box,Moth_elect); // @@ -616,11 +613,11 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // JFB Place the cables // { // // // - double Dzc = Zhalfc - 0.007*GeoModelKernelUnits::mm; // - double Dx1 = .5*(m_parameters->GetValue("LArEMBCablethickat0")); // 1./2.*GeoModelKernelUnits::mm + double Dzc = Zhalfc - 0.007*Gaudi::Units::mm; // + double Dx1 = .5*(m_parameters->GetValue("LArEMBCablethickat0")); // 1./2.*Gaudi::Units::mm double Dx2 = .5*Bar_Eta_cut*(m_parameters->GetValue("LArEMBthickincrfac")); // - // Dx2 should be 5.17/2.*Bar_Eta_cut*GeoModelKernelUnits::mm Trapezoid's side linear with Eta // - double Dy1 = .5*(m_parameters->GetValue("LArEMBCableEtaheight")); // 70./2.*GeoModelKernelUnits::mm + // Dx2 should be 5.17/2.*Bar_Eta_cut*Gaudi::Units::mm Trapezoid's side linear with Eta // + double Dy1 = .5*(m_parameters->GetValue("LArEMBCableEtaheight")); // 70./2.*Gaudi::Units::mm double Dy2 = Dy1; // // // int NoOFcable = (int) m_parameters->GetValue("LArEMBnoOFcableBundle"); // 64 @@ -658,7 +655,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoGenfun::Mod Mod1(1.0),Mod2(2.0),Mod4(4.0); // GeoGenfun::GENFUNCTION Int = I - Mod1; // GeoGenfun::GENFUNCTION Ccopy = Int(I + 0.5); // - GeoGenfun::GENFUNCTION PhiOrig = 22.5*GeoModelKernelUnits::deg*Int(Ccopy/4); // + GeoGenfun::GENFUNCTION PhiOrig = 22.5*Gaudi::Units::deg*Int(Ccopy/4); // GeoGenfun::GENFUNCTION PhiPos1 = PhiPos0 + PhiOrig; // GeoGenfun::GENFUNCTION PhiPos2 = twopi32 - PhiPos0 + PhiOrig; // GeoGenfun::GENFUNCTION PhiPos00 = // @@ -672,7 +669,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoSerialTransformer *st = new GeoSerialTransformer(pV, &TX, NoOFcable); // #ifdef DEBUGGEO for (int ii=0;ii<NoOFcable;ii++) { - std::cout << "copy, phi " << ii << " " << PhiPos(ii)/GeoModelKernelUnits::deg << std::endl; + std::cout << "copy, phi " << ii << " " << PhiPos(ii)/Gaudi::Units::deg << std::endl; } #endif Elnicsf_phys->add(iD); // @@ -683,10 +680,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() } #endif // BUILD_FRONT_ELECTRONICS - // add 1.3 GeoModelKernelUnits::mm in z to allow cleareance for absorber with non // + // add 1.3 Gaudi::Units::mm in z to allow cleareance for absorber with non // // 0 thickness, at eta=1.475, low r part of the barrel // // this affects STAC and TELB volumes // - double clearance = 1.3*GeoModelKernelUnits::mm; + double clearance = 1.3*Gaudi::Units::mm; #ifdef BUILD_HIGHETA_ELECTRONICS @@ -702,20 +699,20 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // GU fix of TELB // double ze1= zmax1_Stac+clearance; // double ze2 = Bar_Z_max; // - double safety = 0.05*GeoModelKernelUnits::mm; + double safety = 0.05*Gaudi::Units::mm; double DeltaZ = 0.5*(ze2-ze1)-safety; // 50 micron for safety. double Zpos = ze1+DeltaZ+0.5*safety; // - double Rmini1 = Rhocen[0] - .030*GeoModelKernelUnits::mm; // - double Rmaxi1 = Rhocen[0] - .020*GeoModelKernelUnits::mm; // - double Rmini2 = Rhocen[0] - .030*GeoModelKernelUnits::mm; // - double Rmaxi2 = Bar_Rcmx - clearance - .070*GeoModelKernelUnits::mm; // + double Rmini1 = Rhocen[0] - .030*Gaudi::Units::mm; // + double Rmaxi1 = Rhocen[0] - .020*Gaudi::Units::mm; // + double Rmini2 = Rhocen[0] - .030*Gaudi::Units::mm; // + double Rmaxi2 = Bar_Rcmx - clearance - .070*Gaudi::Units::mm; // std::string name = baseName + "TELB"; // #ifdef DEBUGGEO std::cout << " *** Parameters for high eta electronics (Cons) " <<std::endl; std::cout << " Rmini1,Rmini2,Rmaxi1,Rmaxi2 " << Rmini1 << " " << Rmini2 << " " << Rmaxi1 << " " << Rmaxi2 << std::endl, std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " Phi_Min,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " Phi_Min,Dphi " << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif GeoCons* cons = new GeoCons(Rmini1,Rmini2,Rmaxi1,Rmaxi2, // @@ -742,8 +739,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() //---------------------------------FRONT G10-------------------------------------// { // - double Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*GeoModelKernelUnits::mm - double Xg10f = m_parameters->GetValue("LArEMBG10SupportBarsIn"); // 20.*GeoModelKernelUnits::mm + double Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*Gaudi::Units::mm + double Xg10f = m_parameters->GetValue("LArEMBG10SupportBarsIn"); // 20.*Gaudi::Units::mm double DeltaZ = 0.5* m_parameters->GetValue("LArEMBG10FrontDeltaZ"); // double Zpos = DeltaZ+Bar_Z_min; // double Rmini = Moth_inner_radius + Xel1f; // @@ -753,7 +750,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for front G10 ring (tubs) " << std::endl; std::cout << " Rmini,Rmaxi " << Rmini << " " << Rmaxi << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " phimin,dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " phimin,dphi " << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif GeoTubs* tubs = new GeoTubs(Rmini,Rmaxi,DeltaZ,Moth_Phi_Min,Moth_Phi_Max); // @@ -806,18 +803,18 @@ void LArGeo::BarrelConstruction::MakeEnvelope() { // double DeltaZ = Zhalf; // double Zpos = Zhalf+Bar_Z_min; // - double Xtal = m_parameters->GetValue("LArEMBLArGapTail")+ 0.1*GeoModelKernelUnits::mm; // 13.*GeoModelKernelUnits::mm + double Xtal = m_parameters->GetValue("LArEMBLArGapTail")+ 0.1*Gaudi::Units::mm; // 13.*Gaudi::Units::mm double Rmini = Rhocen[Nbrt]+Xtal; // // // GU to be sure that GTENB does not go outside mother ECAM volume // // Rmaxi = Rmini+Xg10b; // - double Rmaxi = Moth_outer_radius-0.01*GeoModelKernelUnits::mm; // 10 microns for more safety.. // + double Rmaxi = Moth_outer_radius-0.01*Gaudi::Units::mm; // 10 microns for more safety.. // // // std::string name = baseName +"GTENB"; // #ifdef DEBUGGEO std::cout << " *** parameters for back G10 ring (tubs) " << std::endl; std::cout << " Rmini,Rmaxi " << Rmini << " " << Rmaxi << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " phimin,dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; + std::cout << " phimin,dphi " << Moth_Phi_Min/Gaudi::Units::deg << " " << Moth_Phi_Max/Gaudi::Units::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif @@ -841,8 +838,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // (i.e. a little bit wider than one calorimeter module) { // - double Moth_Phi_Min2 = (Ncell == 64) ? -1.055*GeoModelKernelUnits::deg : 0.; // - double Moth_Phi_Max2 = (Ncell == 64) ? 24.61*GeoModelKernelUnits::deg : 2*M_PI; // + double Moth_Phi_Min2 = (Ncell == 64) ? -1.055*Gaudi::Units::deg : 0.; // + double Moth_Phi_Max2 = (Ncell == 64) ? 24.61*Gaudi::Units::deg : 2*M_PI; // double Zplan1[] = {Bar_Z_min,zmax1_Stac+clearance,Bar_Z_max}; // double Riacc1[] = {Rhocen[0],Rhocen[0], Bar_Rcmx-clearance}; // @@ -854,7 +851,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Zplan " << Zplan1[0] << " " << Zplan1[1] << " " << Zplan1[2] << std::endl; std::cout << " Rin " << Riacc1[0] << " " << Riacc1[1] << " " << Riacc1[2] << std::endl; std::cout << " Rout " << Roacc1[0] << " " << Roacc1[1] << " " << Roacc1[2] << std::endl; - std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/GeoModelKernelUnits::deg << " " << Moth_Phi_Max2/GeoModelKernelUnits::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/Gaudi::Units::deg << " " << Moth_Phi_Max2/Gaudi::Units::deg << std::endl; std::cout << " Zpos " << -Zp0 << std::endl; #endif GeoPcon* pCone = new GeoPcon(Moth_Phi_Min2,Moth_Phi_Max2); // @@ -882,7 +879,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Thpb_thin = m_parameters->GetValue("LArEMBThinAbsLead"); double Thcu = m_parameters->GetValue("LArEMBThickElecCopper"); double Thfg = m_parameters->GetValue("LArEMBThickElecKapton"); - double Psi = m_parameters->GetValue("LArEMBPhiGapAperture"); // 360.*GeoModelKernelUnits::deg/1024 + double Psi = m_parameters->GetValue("LArEMBPhiGapAperture"); // 360.*Gaudi::Units::deg/1024 double Contract = m_parameters->GetValue("LArEMBAbsorberContraction"); double Thce = (Thpb+Thgl+Thfe)*Contract; @@ -906,7 +903,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Zcp1l[14],Zcp1h[14],Zcp2l[14],Zcp2h[14]; double Rhol[14],Rhoh[14]; - double safety_along = 0.007*GeoModelKernelUnits::mm; + double safety_along = 0.007*Gaudi::Units::mm; // Compute centers of curvature coordinates in a local frame. @@ -999,7 +996,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // Absorber (thick, thin) { double radius = fb==FRONT ? Cenx[0] - Xtip_pb/2 : Cenx[Nbrt] + Xtipt/2; - double Xhalfb = fb==FRONT ? Xtip_pb/2 -0.002*GeoModelKernelUnits::mm : Xtipt/2 - .004*GeoModelKernelUnits::mm; + double Xhalfb = fb==FRONT ? Xtip_pb/2 -0.002*Gaudi::Units::mm : Xtipt/2 - .004*Gaudi::Units::mm; double Zhalfb = fb==FRONT ? (Bar_Z_cut-Zmin)/2. : (Zmax-Zmin)/2.; double dz01 = (std::min(Zcp1[irl],Zmax)-Zmin)/2.; // half lenght for thick lead @@ -1032,14 +1029,14 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Thick Abs Box " << Xhalfb << " " << Thce/2. << " " << dz01 << std::endl; std::cout << " Z position thick in thin " << dz01-Zhalfb << std::endl; std::cout << " Radial position " << radius << std::endl; - std::cout << " Phi0 (GeoModelKernelUnits::deg) " << Gama(0)/GeoModelKernelUnits::deg << std::endl; + std::cout << " Phi0 (Gaudi::Units::deg) " << Gama(0)/Gaudi::Units::deg << std::endl; std::cout << " Z position in ECAM " << Zmin+Zhalfb << std::endl; #endif } // G10 (only for front part) if (fb==FRONT) { - double Xhalfbg = Xtip_gt/2-0.002*GeoModelKernelUnits::mm; + double Xhalfbg = Xtip_gt/2-0.002*Gaudi::Units::mm; double radiusg = Cenx[0]-Xtip_pb/2. - Xtips/2 ; double Zhalfbg = (Bar_Z_cut-Zmin)/2. ; std::string name = baseName + "FrontBack::G10"; @@ -1086,14 +1083,14 @@ void LArGeo::BarrelConstruction::MakeEnvelope() m_ecamPhysicalNeg->add(st); #ifdef DEBUGGEO std::cout << " Radial position G10 tip " << radiusg << std::endl; - std::cout << " Phi0 (GeoModelKernelUnits::deg)" << Gama(0)/GeoModelKernelUnits::deg << std::endl; + std::cout << " Phi0 (Gaudi::Units::deg)" << Gama(0)/Gaudi::Units::deg << std::endl; std::cout << " Zposition in ECAM " << Zmin+Zhalfbg << std::endl; #endif } // Electrode { - double Xhalfbe = fb==FRONT ? Xtips/2 -0.002*GeoModelKernelUnits::mm : Xtipt/2 - .004*GeoModelKernelUnits::mm; + double Xhalfbe = fb==FRONT ? Xtips/2 -0.002*Gaudi::Units::mm : Xtipt/2 - .004*Gaudi::Units::mm; double Zhalfbe = fb==FRONT ? (Bar_Z_cut-Zmin)/2. : (Zmax - Zmin)/2; double radiuse = fb==FRONT ? Cenx[0] - Xtips/2 : Cenx[Nbrt] + Xtipt/2; std::string name = baseName + "FrontBack::Electrode"; @@ -1119,7 +1116,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() else std::cout << " *** Back tip electrode " << std::endl; std::cout << " Box " << Xhalfbe << " " << Thel/2. << " " << Zhalfbe << std::endl; std::cout << " Radial position " << radiuse << std::endl; - std::cout << " Phi0 (GeoModelKernelUnits::deg)" << Game(0)/GeoModelKernelUnits::deg << std::endl; + std::cout << " Phi0 (Gaudi::Units::deg)" << Game(0)/Gaudi::Units::deg << std::endl; std::cout << " Z position in ECAM " << Zmin+Zhalfbe << std::endl; #endif @@ -1136,7 +1133,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // // GU 09/06/2004 add some safety in z size - double safety_zlen=0.050*GeoModelKernelUnits::mm; + double safety_zlen=0.050*Gaudi::Units::mm; for(int irl=0; irl<Nbrt; irl++) // loop over zig-zag in radius { @@ -1237,7 +1234,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoGenfun::GENFUNCTION sinalfa = (da*dy +iparit*2.*Rint*dx)/Da/Da; GeoGenfun::GENFUNCTION newalpha = ATan2(sinalfa,cosalfa); - GeoGenfun::GENFUNCTION h1 = da/2. * frac - .007*GeoModelKernelUnits::mm; + GeoGenfun::GENFUNCTION h1 = da/2. * frac - .007*Gaudi::Units::mm; double Zx0 = (tl1+bl1)/2.; // thick absorber pieces @@ -1259,7 +1256,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() } } // translation in x to include thick absorber into thin absorber - double Xtrans = (Xb1+Xt1)/2.-Zx0 + .007*GeoModelKernelUnits::mm; + double Xtrans = (Xb1+Xt1)/2.-Zx0 + .007*Gaudi::Units::mm; // lengths that remain to be covered with the thin absorber double Xt2 = tl1-Xt1; @@ -1267,8 +1264,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // trabslation that would be needed to include think absorber only into overall thin+thick volume double Xtrans2 = Zx0 - (Xb2+Xt2)/2.; - Xt2 = Xt2 -0.007*GeoModelKernelUnits::mm; - Xb2 = Xb2 -0.007*GeoModelKernelUnits::mm; + Xt2 = Xt2 -0.007*Gaudi::Units::mm; + Xb2 = Xb2 -0.007*Gaudi::Units::mm; GeoGenfun::GENFUNCTION alpha = ATan(0.5*(bl1-tl1)/h1); @@ -1301,7 +1298,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycd) * GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcd) * GeoXF::Pow(GeoTrf::RotateZ3D(1.0),-alfrot)* - GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D(-90*Gaudi::Units::deg); // @@ -1739,7 +1736,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoGenfun::GENFUNCTION Zcde = GeoGenfun::FixedConstant(Zmin+(tl1+bl1)/2.+safety_zlen); - GeoGenfun::GENFUNCTION h1e = de/2.*frac - .007*GeoModelKernelUnits::mm; + GeoGenfun::GENFUNCTION h1e = de/2.*frac - .007*Gaudi::Units::mm; GeoGenfun::GENFUNCTION alpha_e = ATan(0.5*(bl1-tl1)/h1e); @@ -1748,7 +1745,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycde) * GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcde) * GeoXF::Pow(GeoTrf::RotateZ3D(1.0),-alfrote)* - GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D(-90*Gaudi::Units::deg); for (int instance = 0; instance < Nelectrode; instance++) @@ -2111,7 +2108,7 @@ void LArGeo::BarrelConstruction::printParams() m_parameters->GetValue("LArEMBphiMaxBarrel") << std::endl; std::cout << "Number of zigs " << m_parameters->GetValue("LArEMBnoOFAccZigs") << std::endl; - std::cout << "Fold GeoModelKernelUnits::rad of curvature " << + std::cout << "Fold Gaudi::Units::rad of curvature " << m_parameters->GetValue("LArEMBNeutFiberRadius") << std::endl; for (int i=0;i<15;i++) { std::cout << "Fold " << i << " radius " << diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx index 9aeeec35266d..08dbdb8dbc52 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx @@ -49,7 +49,7 @@ // For transforms: #include "CLHEP/Geometry/Transform3D.h" // For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GaudiKernel/PhysicalConstants.h" // For Transformation Fields: #include "GeoGenericFunctions/Abs.h" #include "GeoGenericFunctions/Mod.h" @@ -243,9 +243,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // (LArVDetectorParameters) and adjust the volume geometry // accordingly. - // double cryoMotherRin[] = {1149.8*GeoModelKernelUnits::mm, 1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm}; - // double cryoMotherRout[] = {2890. *GeoModelKernelUnits::mm, 2890. *GeoModelKernelUnits::mm,2250. *GeoModelKernelUnits::mm,2250. *GeoModelKernelUnits::mm,2890. *GeoModelKernelUnits::mm,2890. *GeoModelKernelUnits::mm}; - // double cryoMotherZplan[] = {-3490.*GeoModelKernelUnits::mm,-2850.*GeoModelKernelUnits::mm,-2849.*GeoModelKernelUnits::mm, 2849.*GeoModelKernelUnits::mm, 2850.*GeoModelKernelUnits::mm, 3490.*GeoModelKernelUnits::mm}; + // double cryoMotherRin[] = {1149.8*Gaudi::Units::mm, 1149.8*Gaudi::Units::mm,1149.8*Gaudi::Units::mm,1149.8*Gaudi::Units::mm,1149.8*Gaudi::Units::mm,1149.8*Gaudi::Units::mm}; + // double cryoMotherRout[] = {2890. *Gaudi::Units::mm, 2890. *Gaudi::Units::mm,2250. *Gaudi::Units::mm,2250. *Gaudi::Units::mm,2890. *Gaudi::Units::mm,2890. *Gaudi::Units::mm}; + // double cryoMotherZplan[] = {-3490.*Gaudi::Units::mm,-2850.*Gaudi::Units::mm,-2849.*Gaudi::Units::mm, 2849.*Gaudi::Units::mm, 2850.*Gaudi::Units::mm, 3490.*Gaudi::Units::mm}; // Access source of detector parameters. // VDetectorParameters* parameters = VDetectorParameters::GetInstance(); @@ -322,8 +322,8 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() std::string cylName= cylStream.str(); int cylNumber = currentRecord->getInt("CYL_NUMBER"); - double zMin = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm; - double dZ = currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm; + double zMin = currentRecord->getDouble("ZMIN")*Gaudi::Units::cm; + double dZ = currentRecord->getDouble("DZ")*Gaudi::Units::cm; double zInCryostat = zMin + dZ / 2.; if(m_fullGeo){ @@ -395,9 +395,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // For Reco Geometry construct only solenoid cylinders if(m_fullGeo || (10<=cylID && cylID<=14)) { solidBarrelCylinder - = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, - currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, - currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*Gaudi::Units::cm, + currentRecord->getDouble("RMIN")*Gaudi::Units::cm + currentRecord->getDouble("DR")*Gaudi::Units::cm, + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2., (double) 0., dphi_all); @@ -722,9 +722,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // sub-divided into sensitive-detector regions in the detector // routine. - // double totalLArRin[] = { 1565.5*GeoModelKernelUnits::mm, 1385.*GeoModelKernelUnits::mm, 1385.*GeoModelKernelUnits::mm, 1565.5*GeoModelKernelUnits::mm }; - // double totalLArRout[] = { 2140. *GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140. *GeoModelKernelUnits::mm }; - // double totalLArZplan[] = {-3267. *GeoModelKernelUnits::mm,-3101.*GeoModelKernelUnits::mm, 3101.*GeoModelKernelUnits::mm, 3267. *GeoModelKernelUnits::mm }; + // double totalLArRin[] = { 1565.5*Gaudi::Units::mm, 1385.*Gaudi::Units::mm, 1385.*Gaudi::Units::mm, 1565.5*Gaudi::Units::mm }; + // double totalLArRout[] = { 2140. *Gaudi::Units::mm, 2140.*Gaudi::Units::mm, 2140.*Gaudi::Units::mm, 2140. *Gaudi::Units::mm }; + // double totalLArZplan[] = {-3267. *Gaudi::Units::mm,-3101.*Gaudi::Units::mm, 3101.*Gaudi::Units::mm, 3267. *Gaudi::Units::mm }; GeoPcon* totalLArShape = new GeoPcon(0., // starting phi @@ -763,11 +763,11 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // to this shape to allow for mis-alignments in other dimensions.) // increase internal radius to allow misalignments - // ----------------------------------------------- double rInShift = 0.*GeoModelKernelUnits::mm; + // ----------------------------------------------- double rInShift = 0.*Gaudi::Units::mm; - // double halfLArZplan[] = { 3.0 *GeoModelKernelUnits::mm, 3101.*GeoModelKernelUnits::mm, 3267. *GeoModelKernelUnits::mm }; - // double halfLArRin[] = {1385.*GeoModelKernelUnits::mm + rInShift, 1385.*GeoModelKernelUnits::mm + rInShift, 1565.5*GeoModelKernelUnits::mm + rInShift}; - // double halfLArRout[] = {2140.*GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140. *GeoModelKernelUnits::mm }; + // double halfLArZplan[] = { 3.0 *Gaudi::Units::mm, 3101.*Gaudi::Units::mm, 3267. *Gaudi::Units::mm }; + // double halfLArRin[] = {1385.*Gaudi::Units::mm + rInShift, 1385.*Gaudi::Units::mm + rInShift, 1565.5*Gaudi::Units::mm + rInShift}; + // double halfLArRout[] = {2140.*Gaudi::Units::mm, 2140.*Gaudi::Units::mm, 2140. *Gaudi::Units::mm }; std::string halfLArName = "LAr::Barrel::Cryostat::HalfLAr"; GeoPcon* halfLArShape = @@ -810,7 +810,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // add alignable transform totalLArPhysical->add(xfHalfLArNeg); - totalLArPhysical->add( new GeoTransform(GeoTrf::RotateY3D(180.*GeoModelKernelUnits::deg)) ); + totalLArPhysical->add( new GeoTransform(GeoTrf::RotateY3D(180.*Gaudi::Units::deg)) ); totalLArPhysical->add(halfLArPhysicalNeg); { @@ -865,9 +865,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() std::string cylName= cylStream.str(); GeoTubs* solidBarrelCylinder - = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, - currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, - currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*Gaudi::Units::cm, + currentRecord->getDouble("RMIN")*Gaudi::Units::cm + currentRecord->getDouble("DR")*Gaudi::Units::cm, + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2., (double) 0., dphi_all); @@ -876,7 +876,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() GeoPhysVol* physBarrelCylinder = new GeoPhysVol(logicBarrelCylinder); - double zInCryostat = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + double zInCryostat = currentRecord->getDouble("ZMIN")*Gaudi::Units::cm + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; int cylNumber = currentRecord->getInt("CYL_NUMBER"); @@ -913,8 +913,8 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() } { // ----- Presampler ------ - double PresamplerMother_length = 1549.0*GeoModelKernelUnits::mm; // Copied from PresParameterDef.icc - double presamplerShift = 3.*GeoModelKernelUnits::mm; + double PresamplerMother_length = 1549.0*Gaudi::Units::mm; // Copied from PresParameterDef.icc + double presamplerShift = 3.*Gaudi::Units::mm; BarrelPresamplerConstruction barrelPSConstruction(m_fullGeo); // The "envelope" determined by the EMB should be a GeoFullPhysVol. @@ -957,7 +957,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() throw std::runtime_error(message.c_str()); } - GeoPcon* pcon = new GeoPcon(startPhi*GeoModelKernelUnits::deg,dPhi*GeoModelKernelUnits::deg); + GeoPcon* pcon = new GeoPcon(startPhi*Gaudi::Units::deg,dPhi*Gaudi::Units::deg); for(unsigned int ii=0; ii<sctEcCoolingPlanes.size(); ii++) { iter = sctEcCoolingPlanes.find(ii); @@ -979,9 +979,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() GeoPhysVol* sctCiCoolingPhys = new GeoPhysVol(sctCiCoolingLog); GeoTransform* xfPos1 = new GeoTransform(GeoTrf::Transform3D::Identity()); - GeoTransform* xfPos2 = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); - GeoTransform* xfNeg1 = new GeoTransform(GeoTrf::RotateZ3D((180+2*centerPhi)*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); - GeoTransform* xfNeg2 = new GeoTransform(GeoTrf::RotateZ3D(2*centerPhi*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); + GeoTransform* xfPos2 = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg)); + GeoTransform* xfNeg1 = new GeoTransform(GeoTrf::RotateZ3D((180+2*centerPhi)*Gaudi::Units::deg)*GeoTrf::RotateY3D(180*Gaudi::Units::deg)); + GeoTransform* xfNeg2 = new GeoTransform(GeoTrf::RotateZ3D(2*centerPhi*Gaudi::Units::deg)*GeoTrf::RotateY3D(180*Gaudi::Units::deg)); m_cryoMotherPhysical->add(xfPos1); m_cryoMotherPhysical->add(sctCiCoolingPhys); diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx index eb57b265ddd4..22939866b91c 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx @@ -30,6 +30,7 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeSubtraction.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -44,7 +45,7 @@ #include "CLHEP/Vector/Rotation.h" // For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -71,7 +72,7 @@ namespace BarrelDM { static const unsigned int NCrates=16; -static const double Alfa=360*GeoModelKernelUnits::deg/NCrates; +static const double Alfa=360*Gaudi::Units::deg/NCrates; static const double Enda=1155; static const double Endb=1695.2; static const double Endc=2771.6; @@ -176,8 +177,8 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, const GeoMaterial *alu = materialManager.getMaterial("std::Aluminium"); //2.7 g/cm3 const GeoMaterial *air = materialManager.getMaterial("std::Air"); //0.001214 g/cm3 - GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxztr)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxztr)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxztr)*GeoTrf::RotateX3D(-20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxztr)*GeoTrf::RotateX3D(20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); // build 5 instances of SectorEnvelopes1 with 3 different materials! GeoTrd *Trdair2 = new GeoTrd(SecE2xhlen1, SecE2xhlen2, DYb, DYc, (Endc-Endb)/2); @@ -195,28 +196,28 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, GeoPhysVol *sectorenvelopes2l = new GeoPhysVol(lvse2l); // for left-handed splice boxes GeoLogVol *lvse2h = new GeoLogVol("LAr::DM::SectorEnvelopes2h",&SectorEnvelopes,matLArServices19); - GeoPhysVol *sectorenvelopes2h = new GeoPhysVol(lvse2h); // no splice boxes horizontal at 0 & 180 GeoModelKernelUnits::deg. + GeoPhysVol *sectorenvelopes2h = new GeoPhysVol(lvse2h); // no splice boxes horizontal at 0 & 180 Gaudi::Units::deg. GeoLogVol *lvse2vup = new GeoLogVol("LAr::DM::SectorEnvelopes2vup",&SectorEnvelopes,matLArServices17); - GeoPhysVol *sectorenvelopes2vup = new GeoPhysVol(lvse2vup); // no splice boxes vertical up at 90 GeoModelKernelUnits::deg + GeoPhysVol *sectorenvelopes2vup = new GeoPhysVol(lvse2vup); // no splice boxes vertical up at 90 Gaudi::Units::deg GeoLogVol *lvse2vd = new GeoLogVol("LAr::DM::SectorEnvelopes2Vd",&SectorEnvelopes,matLArServices18); - GeoPhysVol *sectorenvelopes2vd = new GeoPhysVol(lvse2vd); // no splice boxes vertical down at 270 GeoModelKernelUnits::deg + GeoPhysVol *sectorenvelopes2vd = new GeoPhysVol(lvse2vd); // no splice boxes vertical down at 270 Gaudi::Units::deg //---------- Build Splice boxes for InDet optical fibers-------- GeoTrap *GeoTrap1 = new GeoTrap(Spb1zhlen, Spb1theta, Spb1phi, Spb1yzn, Spb1xynzn, Spb1xypzn, Spb1angn, Spb1yzp, Spb1xynzp, Spb1xypzp, Spb1angp); GeoBox *Box1 = new GeoBox(SplBoxhlen, SplBoxhwdt, SplBoxhhgt); const GeoShape & SpliceBox = ((*GeoTrap1). - subtract(*Box1 << GeoTrf::TranslateZ3D(SplBoxztr)*GeoTrf::TranslateY3D(-SplBoxytr)*GeoTrf::RotateX3D(SplBoxxrot*GeoModelKernelUnits::deg))); + subtract(*Box1 << GeoTrf::TranslateZ3D(SplBoxztr)*GeoTrf::TranslateY3D(-SplBoxytr)*GeoTrf::RotateX3D(SplBoxxrot*Gaudi::Units::deg))); - GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateX3D(Spb1xrot*GeoModelKernelUnits::deg)); + GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateX3D(Spb1xrot*Gaudi::Units::deg)); sectorenvelopes2r->add(xtr); GeoLogVol *lvspbr = new GeoLogVol("LAr::DM::SPliceBoxr",&SpliceBox,alu); GeoPhysVol *spliceboxr = new GeoPhysVol(lvspbr); sectorenvelopes2r->add(spliceboxr); - GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateY3D(-180*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-(Alfa/2))); + GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateY3D(-180*Gaudi::Units::deg)*GeoTrf::RotateX3D(-(Alfa/2))); sectorenvelopes2l->add(xtl); GeoLogVol *lvspbl = new GeoLogVol("LAr::DM::SpliceBoxl",&SpliceBox,alu); GeoPhysVol *spliceboxl = new GeoPhysVol(lvspbl); @@ -227,7 +228,7 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, GeoTrap *GeoTrap2 = new GeoTrap(Spb2zhlen, Spb2theta, Spb2phi, Spb2yzn, Spb2xynzn, Spb2xypzn, Spb2angn, Spb2yzp, Spb2xynzp, Spb2xypzp, Spb2angp); GeoTrap *GeoTrap3 = new GeoTrap(Spb3zhlen, Spb3theta, Spb3phi, Spb3yzn, Spb3xynzn, Spb3xypzn, Spb3angn, Spb3yzp, Spb3xynzp, Spb3xypzp, Spb3angp); - GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-Spb0ytr)*GeoTrf::RotateX3D(Spb0xrot*GeoModelKernelUnits::deg)); + GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-Spb0ytr)*GeoTrf::RotateX3D(Spb0xrot*Gaudi::Units::deg)); spliceboxr->add(xt1); spliceboxl->add(xt1); GeoLogVol *lt1 = new GeoLogVol("LAr::DM::TBox1",Trd1,air); @@ -253,16 +254,16 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, //-------------- Place volumes in LAr Envelope ------------------- - TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *setA2r = new GeoSerialTransformer(sectorenvelopes2r,&seA2r, 2); GeoSerialTransformer *setA2l = new GeoSerialTransformer(sectorenvelopes2l,&seA2l, 2); @@ -311,12 +312,12 @@ createBridgeEnvelopesFromDB (GeoFullPhysVol* envelope, double BridgeExtr = r->getDouble("XTR"); double BridgeEztr = r->getDouble("ZTR"); - GeoTrap *Trapair = new GeoTrap(BridgeEzhlen, BridgeEtheta*GeoModelKernelUnits::deg, BridgeEphi, BridgeEyzn, BridgeExynzn, BridgeExypzn, BridgeEangn, BridgeEyzp, BridgeExynzp, BridgeExypzp, BridgeEangp); + GeoTrap *Trapair = new GeoTrap(BridgeEzhlen, BridgeEtheta*Gaudi::Units::deg, BridgeEphi, BridgeEyzn, BridgeExynzn, BridgeExypzn, BridgeEangn, BridgeEyzp, BridgeExynzp, BridgeExypzp, BridgeEangp); GeoLogVol *lvbre = new GeoLogVol("LAr::DM::BridgeEnvelopes",Trapair,matLArServices8);//In the end Density at least >= than SE1 because of Cryo Pipes GeoPhysVol *bridgeenvelopes = new GeoPhysVol(lvbre); - TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(BridgeEztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(-BridgeEztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(BridgeEztr)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(-BridgeEztr)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); GeoSerialTransformer *bretA = new GeoSerialTransformer(bridgeenvelopes,&breA, NCrates); GeoSerialTransformer *bretC = new GeoSerialTransformer(bridgeenvelopes,&breC, NCrates); envelope->add(bretA); @@ -345,8 +346,8 @@ createBaseEnvelopesFromDB (GeoFullPhysVol* envelope, GeoLogVol *lvbe = new GeoLogVol("LAr::DM::BaseEnvelopes",Trd1air,matLArServices8); //In the end Density at least >= than SE1 because of Cryo Pipes GeoPhysVol *baseenvelopes = new GeoPhysVol(lvbe); - TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(BaseEztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(-BaseEztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(BaseEztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(-BaseEztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *betA = new GeoSerialTransformer(baseenvelopes,&beA, NCrates); GeoSerialTransformer *betC = new GeoSerialTransformer(baseenvelopes,&beC, NCrates); envelope->add(betA); @@ -476,9 +477,9 @@ void createFromDB (GeoFullPhysVol* envelope, GeoTube *Ped2 = new GeoTube(ped2minr, ped2maxr, ped2zhlen); GeoTube *Ped3 = new GeoTube(ped3minr,ped3maxr , ped3zhlen); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)). subtract((*Ped3) <<GeoTrf::TranslateX3D(-ped3xtr)). - subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -568,8 +569,8 @@ void createFromDB (GeoFullPhysVol* envelope, // transforms GeoBox *Box = new GeoBox(Boxhlen, Boxhwdt, Boxhhgt); - GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxxrot)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxxrot)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxxrot)*GeoTrf::RotateX3D(-20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxxrot)*GeoTrf::RotateX3D(20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); // ----- build sector envelopes ----- // build 16 instances of SectorEnvelopes1 each with its own material! @@ -723,7 +724,7 @@ void createFromDB (GeoFullPhysVol* envelope, GeoPhysVol *baseplates = new GeoPhysVol(lvbp); // ----- build bridge plates ----- - GeoTrap *Trapalu = new GeoTrap(BridgePzhlen, BridgePtheta*GeoModelKernelUnits::deg, BridgePphi, BridgePyzn, BridgePxynzn, BridgePxypzn, BridgePangn, BridgePyzp, BridgePxynzp, BridgePxypzp, BridgePangp); + GeoTrap *Trapalu = new GeoTrap(BridgePzhlen, BridgePtheta*Gaudi::Units::deg, BridgePphi, BridgePyzn, BridgePxynzn, BridgePxypzn, BridgePangn, BridgePyzp, BridgePxynzp, BridgePxypzp, BridgePangp); GeoLogVol *lvbrp = new GeoLogVol("LAr::DM::BridgePlates",Trapalu,alu); GeoPhysVol *bridgeplates = new GeoPhysVol(lvbrp); @@ -740,18 +741,18 @@ void createFromDB (GeoFullPhysVol* envelope, //-------------- Place volumes in LAr Envelope ------------------- //sectorPlates - TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(SecPztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg);/// - TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(-SecPztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg);/// + TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(SecPztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);/// + TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(-SecPztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);/// GeoSerialTransformer *sptA = new GeoSerialTransformer(sectorplates,&spA, NCrates); GeoSerialTransformer *sptC = new GeoSerialTransformer(sectorplates,&spC, NCrates); envelope->add(sptA); envelope->add(sptC); //bridgePlates - TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); + TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); + TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); GeoSerialTransformer *brptA2 = new GeoSerialTransformer(bridgeplates,&brpA2, 5); GeoSerialTransformer *brptC1 = new GeoSerialTransformer(bridgeplates,&brpC1, 5); GeoSerialTransformer *brptC2 = new GeoSerialTransformer(bridgeplates,&brpC2, 5); @@ -761,8 +762,8 @@ void createFromDB (GeoFullPhysVol* envelope, envelope->add(brptC2); //basePlates - TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(BasePztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(-BasePztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(BasePztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(-BasePztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *bptA = new GeoSerialTransformer(baseplates,&bpA, NCrates); GeoSerialTransformer *bptC = new GeoSerialTransformer(baseplates,&bpC, NCrates); envelope->add(bptA); @@ -770,39 +771,39 @@ void createFromDB (GeoFullPhysVol* envelope, //sectorEnvelopes1 //counter-clockwise from top if taking sideA for reference (clockwise for sideC) - TRANSFUNCTION seA1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); //clockwise from top if taking sideA for reference (counter-clockwise for sideC) - TRANSFUNCTION seA1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *setA1G5 = new GeoSerialTransformer(sectorenvelopes1g5,&seA1G5, 1); GeoSerialTransformer *setC1G5 = new GeoSerialTransformer(sectorenvelopes1g5,&seC1G5, 1); @@ -976,13 +977,13 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // Define some custom materials - That will move to the GeomDB //Fiberglass - GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matFiberglass->add(silicon,silicon->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->add(oxygen,2*oxygen->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->lock(); //Epoxy Resin - GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy", 1.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy", 1.9*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matEpoxyResin->add(hydrogen, 14*hydrogen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); matEpoxyResin->add(oxygen, 4*oxygen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); matEpoxyResin->add(carbon, 8*carbon->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); @@ -990,7 +991,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matEpoxyResin->lock(); //FEBBoards - GeoMaterial *matFEBBoards = new GeoMaterial("FEBBoards", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matFEBBoards = new GeoMaterial("FEBBoards", 4.03*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matFEBBoards->add(matFiberglass, 0.52); matFEBBoards->add(copper, 0.28); matFEBBoards->add(matEpoxyResin, 0.20); @@ -999,13 +1000,13 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //SERVICES:CABLES, TUBES ETC...// //Water - GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matWater->add(hydrogen, 2*hydrogen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->add(oxygen, 1*oxygen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->lock(); //InDetServices - GeoMaterial* matLArServices = new GeoMaterial("LArServices", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial* matLArServices = new GeoMaterial("LArServices", 4.03*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matLArServices->add(shieldSteel, 0.20); matLArServices->add(copper, 0.60); matLArServices->add(matRubber, 0.10); @@ -1021,16 +1022,16 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoBox *Pedestal = new GeoBox(71, 400.05, 248.65); GeoBox *Ped1 = new GeoBox(67, 397.05, 245.65); GeoTube *Ped2 = new GeoTube(0, 150, 75); - GeoTube *Ped3 = new GeoTube(0, 2775, 300); //, -75*GeoModelKernelUnits::deg, 150*GeoModelKernelUnits::deg); // 0, 2775, 300, -8.2*GeoModelKernelUnits::deg, 16.4*GeoModelKernelUnits::deg) + GeoTube *Ped3 = new GeoTube(0, 2775, 300); //, -75*Gaudi::Units::deg, 150*Gaudi::Units::deg); // 0, 2775, 300, -8.2*Gaudi::Units::deg, 16.4*Gaudi::Units::deg) //GeoLogVol *lvped3 = new GeoLogVol("LAr::DM::PED3",Ped3,air); //GeoPhysVol *ped3 = new GeoPhysVol(lvped3); //envelope->add(ped3); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)). subtract((*Ped3) <<GeoTrf::TranslateX3D(-2815)). - subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*Gaudi::Units::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::PED",&CratePed,air); @@ -1072,9 +1073,9 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) const unsigned int NCrates=16; Variable i; - GENFUNCTION f = (360*GeoModelKernelUnits::deg/NCrates)*i; - GENFUNCTION f1 = (360*GeoModelKernelUnits::deg/NCrates)*i+315*GeoModelKernelUnits::deg; - GENFUNCTION f2 = (360*GeoModelKernelUnits::deg/NCrates)*i+157.5*GeoModelKernelUnits::deg; + GENFUNCTION f = (360*Gaudi::Units::deg/NCrates)*i; + GENFUNCTION f1 = (360*Gaudi::Units::deg/NCrates)*i+315*Gaudi::Units::deg; + GENFUNCTION f2 = (360*Gaudi::Units::deg/NCrates)*i+157.5*Gaudi::Units::deg; GENFUNCTION g = i*19.685; //(f=22.5|| f=45|| f=67.5|| f=180|| f=203.5|| f=225|| f=247.5|| f=270|| f=337.5|| f=360) @@ -1133,16 +1134,16 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //----------- Building envelope for Cables and Tubes -------------- GeoTrd *Trd1air = new GeoTrd(123.5, 123.5, 167, 245.43, 117.65); - GeoTrap *Trapair = new GeoTrap(178.33, 39.596*GeoModelKernelUnits::deg, 0, 167, 53.5, 53.5, 0, 167, 123.5, 123.5, 0); + GeoTrap *Trapair = new GeoTrap(178.33, 39.596*Gaudi::Units::deg, 0, 167, 53.5, 53.5, 0, 167, 123.5, 123.5, 0); GeoTrd *Trd2air = new GeoTrd(53.5, 53.5, 280, 548, 677.5); GeoBox *Box = new GeoBox(280, 280, 100); GeoTrd *Trd1alu = new GeoTrd(5, 5, 167, 245.43, 117.65); - GeoTrap *Trapalu = new GeoTrap(178.33, 45.5*GeoModelKernelUnits::deg, 0, 167, 5, 5, 0, 167, 5, 5, 0); + GeoTrap *Trapalu = new GeoTrap(178.33, 45.5*Gaudi::Units::deg, 0, 167, 5, 5, 0, 167, 5, 5, 0); GeoTrd *Trd2alu = new GeoTrd(5, 5, 280, 548, 677.5); - GeoTrf::Transform3D Cut1Box = GeoTrf::Translate3D(-295.5, 500, -473.563)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut2Box = GeoTrf::Translate3D(-295.5, -500, -473.563)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut1Box = GeoTrf::Translate3D(-295.5, 500, -473.563)*GeoTrf::RotateX3D(-20*Gaudi::Units::deg); + GeoTrf::Transform3D Cut2Box = GeoTrf::Translate3D(-295.5, -500, -473.563)*GeoTrf::RotateX3D(20*Gaudi::Units::deg); @@ -1167,31 +1168,31 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //envelopes - TRANSFUNCTION xf3a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3165.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xf4a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3165.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf3a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3165.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xf4a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3165.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg); GeoSerialTransformer *st3 = new GeoSerialTransformer(envelopes,&xf3a, NCrates); GeoSerialTransformer *st4 = new GeoSerialTransformer(envelopes,&xf4a, NCrates); envelope->add(st3); envelope->add(st4); //baseplates - TRANSFUNCTION xf3b = Pow(GeoTrf::RotateZ3D(1.0),f1)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xf4b = Pow(GeoTrf::RotateZ3D(1.0),(f1+22.5*GeoModelKernelUnits::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf3b = Pow(GeoTrf::RotateZ3D(1.0),f1)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xf4b = Pow(GeoTrf::RotateZ3D(1.0),(f1+22.5*Gaudi::Units::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg); GeoSerialTransformer *st3bis = new GeoSerialTransformer(baseplates,&xf3b, (NCrates-11)); GeoSerialTransformer *st4bis = new GeoSerialTransformer(baseplates,&xf4b, (NCrates-11)); envelope->add(st3bis); envelope->add(st4bis); - TRANSFUNCTION xf5b = Pow(GeoTrf::RotateZ3D(1.0),f2)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xf6b = Pow(GeoTrf::RotateZ3D(1.0),(f2-22.5*GeoModelKernelUnits::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf5b = Pow(GeoTrf::RotateZ3D(1.0),f2)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xf6b = Pow(GeoTrf::RotateZ3D(1.0),(f2-22.5*Gaudi::Units::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg); GeoSerialTransformer *st5bis = new GeoSerialTransformer(baseplates,&xf5b, (NCrates-11)); GeoSerialTransformer *st6bis = new GeoSerialTransformer(baseplates,&xf6b, (NCrates-11)); envelope->add(st5bis); envelope->add(st6bis); //sectorplates - TRANSFUNCTION xf3bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xf4bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf3bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xf4bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg); GeoSerialTransformer *st3biss = new GeoSerialTransformer(sectorplates,&xf3bb, NCrates); GeoSerialTransformer *st4biss = new GeoSerialTransformer(sectorplates,&xf4bb, NCrates); envelope->add(st3biss); @@ -1220,30 +1221,30 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //C6F14 - GeoMaterial *matC6F14 = new GeoMaterial("C6F14",1.68*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matC6F14 = new GeoMaterial("C6F14",1.68*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matC6F14->add(carbon, 6*carbon->getA() / (6*carbon->getA() + 14*fluorine->getA())); matC6F14->add(fluorine, 14*fluorine->getA() / (6*carbon->getA() + 14*fluorine->getA())); matC6F14->lock(); //Water - GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matWater->add(hydrogen, 2*hydrogen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->add(oxygen, 1*oxygen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->lock(); //Nitrogen - GeoMaterial *matN2 = new GeoMaterial("N2", 0.0012506*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matN2 = new GeoMaterial("N2", 0.0012506*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matN2->add(nitrogen,1); matN2->lock(); //Fiberglass - GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matFiberglass->add(silicon,silicon->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->add(oxygen,2*oxygen->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->lock(); //Epoxy Resin - GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy:C8H14O4Si", 1.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy:C8H14O4Si", 1.9*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matEpoxyResin->add(hydrogen, 14*hydrogen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); matEpoxyResin->add(oxygen, 4*oxygen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); matEpoxyResin->add(carbon, 8*carbon->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); @@ -1251,14 +1252,14 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matEpoxyResin->lock(); //FEBoards - GeoMaterial *matFEBoards = new GeoMaterial("FEBoards", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *matFEBoards = new GeoMaterial("FEBoards", 4.03*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matFEBoards->add(matFiberglass, 0.52); matFEBoards->add(copper, 0.28); matFEBoards->add(matEpoxyResin, 0.20); matFEBoards->lock(); //BoardsEnvelope (FEBoards + Cooling Plates + Water + Air) - GeoMaterial* matBoardsEnvelope = new GeoMaterial("BoardsEnvelope", 0.932*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial* matBoardsEnvelope = new GeoMaterial("BoardsEnvelope", 0.932*GeoModelKernelUnits::gram/Gaudi::Units::cm3); matBoardsEnvelope->add(matFEBoards, 0.4147); matBoardsEnvelope->add(matWater, 0.0736); matBoardsEnvelope->add(air, 0.0008); @@ -1266,8 +1267,8 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matBoardsEnvelope->lock(); //InDetServices !!! Provisoire !!! - double density1 = 1.*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; - if (strDMTopTag=="LArBarrelDM-02") density1 = 1.7*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + double density1 = 1.*GeoModelKernelUnits::gram/Gaudi::Units::cm3; + if (strDMTopTag=="LArBarrelDM-02") density1 = 1.7*GeoModelKernelUnits::gram/Gaudi::Units::cm3; GeoMaterial* matLArServices1 = new GeoMaterial("LArServices1", density1); matLArServices1->add(copper, .60); matLArServices1->add(shieldSteel, .05); @@ -1280,8 +1281,8 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matLArServices1->lock(); //InDetServices !!! Provisoire !!! - double density2 = 2.*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; - if (strDMTopTag=="LArBarrelDM-02") density2 = 3.4*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + double density2 = 2.*GeoModelKernelUnits::gram/Gaudi::Units::cm3; + if (strDMTopTag=="LArBarrelDM-02") density2 = 3.4*GeoModelKernelUnits::gram/Gaudi::Units::cm3; GeoMaterial* matLArServices2 = new GeoMaterial("LArServices2", density2); matLArServices2->add(copper, .60); matLArServices2->add(shieldSteel, .05); @@ -1299,7 +1300,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // << matLArServices2->getRadLength() << " " << matLArServices2->getIntLength() << std::endl; const unsigned int NCrates=16; - const double Alfa=360*GeoModelKernelUnits::deg/NCrates; + const double Alfa=360*Gaudi::Units::deg/NCrates; const double Enda=1155; const double Endb=1695.2; const double Endc=2771.6; @@ -1318,9 +1319,9 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTube *Ped2 = new GeoTube(0, 150, 75); GeoTube *Ped3 = new GeoTube(0, 2775, 300); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)). subtract((*Ped3) <<GeoTrf::TranslateX3D(-2800)). - subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*Gaudi::Units::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -1377,10 +1378,10 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // transforms GeoBox *Box = new GeoBox(280, 280, 100); - GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(0, 548, 711)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(0, -548,711)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(0, 548, 850)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(0, -548,850)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(0, 548, 711)*GeoTrf::RotateX3D(-20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(0, -548,711)*GeoTrf::RotateX3D(20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(0, 548, 850)*GeoTrf::RotateX3D(-20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(0, -548,850)*GeoTrf::RotateX3D(20*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); // ----- build base envelopes ----- GeoTrd *Trd1air = new GeoTrd(123.5, 123.5, 167, 305, 287.5); @@ -1388,7 +1389,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoPhysVol *baseenvelopes = new GeoPhysVol(lvbe); // ----- build bridge envelopes ----- - GeoTrap *Trapair = new GeoTrap(201.70, 45.35*GeoModelKernelUnits::deg, 0, 160, 52.95, 52.95, 0, 160, 123.5, 123.5, 0); + GeoTrap *Trapair = new GeoTrap(201.70, 45.35*Gaudi::Units::deg, 0, 160, 52.95, 52.95, 0, 160, 123.5, 123.5, 0); GeoLogVol *lvbre = new GeoLogVol("LAr::DM::BridgeEnvelopes",Trapair,matLArServices1); GeoPhysVol *bridgeenvelopes = new GeoPhysVol(lvbre); @@ -1421,7 +1422,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoPhysVol *baseplates = new GeoPhysVol(lvbp); // ----- build bridge plates ----- - GeoTrap *Trapalu = new GeoTrap(201.70, 49.92*GeoModelKernelUnits::deg, 0, 160, 5, 5, 0, 160, 5, 5, 0); + GeoTrap *Trapalu = new GeoTrap(201.70, 49.92*Gaudi::Units::deg, 0, 160, 5, 5, 0, 160, 5, 5, 0); GeoLogVol *lvbrp = new GeoLogVol("LAr::DM::BridgePlates",Trapalu,alu); GeoPhysVol *bridgeplates = new GeoPhysVol(lvbrp); @@ -1439,15 +1440,15 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTrap *GeoTrap1 = new GeoTrap(237.5, 0, 0, 307, 47.5, 47.5, 0, 259.17, 47.5, 47.5, 0); GeoBox *Box1 = new GeoBox(50, 244.80, 150); const GeoShape & SpliceBox = ((*GeoTrap1). - subtract(*Box1 << GeoTrf::TranslateZ3D(193.88)*GeoTrf::TranslateY3D(-223.49)*GeoTrf::RotateX3D(41.592*GeoModelKernelUnits::deg))); + subtract(*Box1 << GeoTrf::TranslateZ3D(193.88)*GeoTrf::TranslateY3D(-223.49)*GeoTrf::RotateX3D(41.592*Gaudi::Units::deg))); - GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateX3D(191.25*GeoModelKernelUnits::deg)); + GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateX3D(191.25*Gaudi::Units::deg)); sectorenvelopes2r->add(xtr); GeoLogVol *lvspbr = new GeoLogVol("LAr::DM::SPliceBoxr",&SpliceBox,alu); GeoPhysVol *spliceboxr = new GeoPhysVol(lvspbr); sectorenvelopes2r->add(spliceboxr); - GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateY3D(-180*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-(Alfa/2))); + GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateY3D(-180*Gaudi::Units::deg)*GeoTrf::RotateX3D(-(Alfa/2))); sectorenvelopes2l->add(xtl); GeoLogVol *lvspbl = new GeoLogVol("LAr::DM::SpliceBoxl",&SpliceBox,alu); GeoPhysVol *spliceboxl = new GeoPhysVol(lvspbl); @@ -1459,7 +1460,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTrap *GeoTrap2 = new GeoTrap(149, 0, 0, 126.215, 44.5, 44.5, 0, 95, 44.5, 44.5, 0); GeoTrap *GeoTrap3 = new GeoTrap(72, 0, 0, 294.5, 44.5, 44.5, 0, 279.396, 44.5, 44.5, 0); - GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-53)*GeoTrf::RotateX3D(42.25*GeoModelKernelUnits::deg)); + GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-53)*GeoTrf::RotateX3D(42.25*Gaudi::Units::deg)); spliceboxr->add(xt1); spliceboxl->add(xt1); GeoLogVol *lt1 = new GeoLogVol("LAr::DM::TBox1",Trd1,air); @@ -1487,18 +1488,18 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //-------------- Place volumes in LAr Envelope ------------------- //sectorPlates - TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(3410.1)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(-3410.1)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(3410.1)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(-3410.1)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *sptA = new GeoSerialTransformer(sectorplates,&spA, NCrates); GeoSerialTransformer *sptC = new GeoSerialTransformer(sectorplates,&spC, NCrates); envelope->add(sptA); envelope->add(sptC); //bridgePlates - TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); - TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); + TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); + TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); GeoSerialTransformer *brptA2 = new GeoSerialTransformer(bridgeplates,&brpA2, 5); GeoSerialTransformer *brptC1 = new GeoSerialTransformer(bridgeplates,&brpC1, 5); GeoSerialTransformer *brptC2 = new GeoSerialTransformer(bridgeplates,&brpC2, 5); @@ -1508,27 +1509,27 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) envelope->add(brptC2); //basePlates - TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(2930.6)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-2930.6)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(2930.6)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-2930.6)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *bptA = new GeoSerialTransformer(baseplates,&bpA, NCrates); GeoSerialTransformer *bptC = new GeoSerialTransformer(baseplates,&bpC, NCrates); envelope->add(bptA); envelope->add(bptC); //sectorEnvelopes - TRANSFUNCTION seA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *setA1 = new GeoSerialTransformer(sectorenvelopes1,&seA1, NCrates); GeoSerialTransformer *setC1 = new GeoSerialTransformer(sectorenvelopes1,&seC1, NCrates); envelope->add(setA1); envelope->add(setC1); - TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seA2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seA2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *setA2r = new GeoSerialTransformer(sectorenvelopes2r,&seA2r, 2); GeoSerialTransformer *setA2l = new GeoSerialTransformer(sectorenvelopes2l,&seA2l, 2); GeoSerialTransformer *setA2 = new GeoSerialTransformer(sectorenvelopes2,&seA2, 4); @@ -1543,16 +1544,16 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) envelope->add(setC2l); //bridgeEnvelopes - TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(3263.65)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(-3263.65)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(3263.65)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); + TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(-3263.65)*GeoTrf::RotateZ3D(-90*Gaudi::Units::deg)*GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(-90*Gaudi::Units::deg); GeoSerialTransformer *bretA = new GeoSerialTransformer(bridgeenvelopes,&breA, NCrates); GeoSerialTransformer *bretC = new GeoSerialTransformer(bridgeenvelopes,&breC, NCrates); envelope->add(bretA); envelope->add(bretC); //baseEnvelopes - TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(3059.2)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-3059.2)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(3059.2)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-3059.2)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer *betA = new GeoSerialTransformer(baseenvelopes,&beA, NCrates); GeoSerialTransformer *betC = new GeoSerialTransformer(baseenvelopes,&beC, NCrates); envelope->add(betA); diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx index 8d31d8851e2c..06c574fc7260 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx @@ -34,7 +34,7 @@ #include "CLHEP/Vector/Rotation.h" // For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -123,17 +123,17 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo const GeoMaterial *ConnecMat = materialManager->getMaterial("LAr::ConnecMat"); if (!ConnecMat) throw std::runtime_error("Error in BarrelPresamplerConstruction, LAr::ConnecMat is not found."); - // double rMinPresamplerMother =1385*GeoModelKernelUnits::mm; - double rMinPresamplerMother =1410*GeoModelKernelUnits::mm; - double rMaxPresamplerMother =1447*GeoModelKernelUnits::mm-0.001*GeoModelKernelUnits::mm; - double presamplerMother_length=1549*GeoModelKernelUnits::mm; - double Phi_min=0.*GeoModelKernelUnits::deg; - double Phi_span=360.*GeoModelKernelUnits::deg; + // double rMinPresamplerMother =1385*Gaudi::Units::mm; + double rMinPresamplerMother =1410*Gaudi::Units::mm; + double rMaxPresamplerMother =1447*Gaudi::Units::mm-0.001*Gaudi::Units::mm; + double presamplerMother_length=1549*Gaudi::Units::mm; + double Phi_min=0.*Gaudi::Units::deg; + double Phi_span=360.*Gaudi::Units::deg; int nbsectors=32; if (itb==1) { - Phi_min=-0.5*GeoModelKernelUnits::deg; - Phi_span=23.5*GeoModelKernelUnits::deg; + Phi_min=-0.5*Gaudi::Units::deg; + Phi_span=23.5*Gaudi::Units::deg; nbsectors=2; } @@ -209,42 +209,42 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo // Make a presampler sector: if(m_fullGeo){ // ? - double epsil = 0.007*GeoModelKernelUnits::mm; + double epsil = 0.007*Gaudi::Units::mm; // contraction factor - double cmm = (1-0.0026)*GeoModelKernelUnits::mm; + double cmm = (1-0.0026)*Gaudi::Units::mm; double mod_leng[8]; for(int ii=0; ii<8; ii++ ) mod_leng[ii]=mod[ii][0]*cmm+2*epsil; double mod_heig[8]; - double larheight = 13*GeoModelKernelUnits::mm; + double larheight = 13*Gaudi::Units::mm; - double prep1_th = 1.*GeoModelKernelUnits::mm; // bottom prepreg layer - double prep2_th = 4.5*GeoModelKernelUnits::mm; - double smallLength = 275.6*GeoModelKernelUnits::mm; + double prep1_th = 1.*Gaudi::Units::mm; // bottom prepreg layer + double prep2_th = 4.5*Gaudi::Units::mm; + double smallLength = 275.6*Gaudi::Units::mm; double bigLength = 277.5; double prep1_height = (smallLength/2+1.)*cmm; - double larheight2 = larheight*cos(-mod[1][3]*GeoModelKernelUnits::deg)*GeoModelKernelUnits::mm; + double larheight2 = larheight*cos(-mod[1][3]*Gaudi::Units::deg)*Gaudi::Units::mm; mod_heig[0]= (larheight+prep1_th+prep2_th)*cmm+4*epsil; mod_heig[1]= (larheight2+prep1_th+prep2_th)*cmm+5.*epsil; for(int i=2; i<8; i++ ) mod_heig[i] = mod_heig[0]; - double shell_th = 0.4*GeoModelKernelUnits::mm; - double rail_th = 8.6*GeoModelKernelUnits::mm; - double mech_clear = 0.5*GeoModelKernelUnits::mm; + double shell_th = 0.4*Gaudi::Units::mm; + double rail_th = 8.6*Gaudi::Units::mm; + double mech_clear = 0.5*Gaudi::Units::mm; double mb_length = 3100.3; double sector_length = mb_length*cmm +9.*epsil; - double sector_height = mod_heig[0]+(shell_th+rail_th)*cmm+mech_clear*GeoModelKernelUnits::mm+3*epsil; + double sector_height = mod_heig[0]+(shell_th+rail_th)*cmm+mech_clear*Gaudi::Units::mm+3*epsil; unsigned int nsectors=32; double mod_xm = prep1_height+epsil; - double mod_xp = (bigLength/2+1.+prep2_th*tan((360./(2*nsectors))*GeoModelKernelUnits::deg))*cmm; + double mod_xp = (bigLength/2+1.+prep2_th*tan((360./(2*nsectors))*Gaudi::Units::deg))*cmm; double sect_xm = mod_xm+epsil; - double sect_xp = sect_xm+sector_height*tan((360./(2*nsectors))*GeoModelKernelUnits::deg); - double rpres = 1426.*GeoModelKernelUnits::mm; + double sect_xp = sect_xm+sector_height*tan((360./(2*nsectors))*Gaudi::Units::deg); + double rpres = 1426.*Gaudi::Units::mm; double zpres = -presamplerMother_length+sector_length/2+epsil; @@ -254,9 +254,9 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoPhysVol *sectorPhysVol = new GeoPhysVol(logVol); GeoGenfun::Variable I; - double dphiSector = (360.*GeoModelKernelUnits::deg)/nsectors; + double dphiSector = (360.*Gaudi::Units::deg)/nsectors; GeoGenfun::GENFUNCTION f = dphiSector*I+0.5*dphiSector; - GeoXF::TRANSFUNCTION t = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(rpres)*GeoTrf::TranslateZ3D(zpres)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + GeoXF::TRANSFUNCTION t = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(rpres)*GeoTrf::TranslateZ3D(zpres)*GeoTrf::RotateZ3D(90*Gaudi::Units::deg)*GeoTrf::RotateX3D(90*Gaudi::Units::deg); GeoSerialTransformer *st = new GeoSerialTransformer(sectorPhysVol,&t, nbsectors); m_psPhysicalPos->add(st); @@ -271,7 +271,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo // recompute length of module 0 and 1 to have avoid overshoorting of first cathode of module 1 // into module 0 => reduce module 0 length by 0.5*lar_height*tan(tilt angle) // and increase module 1 length by same amount - double delta01 = 0.5*larheight*tan(-mod[1][3]*GeoModelKernelUnits::deg); // delta01 is >0 + double delta01 = 0.5*larheight*tan(-mod[1][3]*Gaudi::Units::deg); // delta01 is >0 mod_leng[0]=mod_leng[0]-delta01; mod_leng[1]=mod_leng[1]+delta01; GeoPhysVol* pvModule[8]; @@ -303,7 +303,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double shell_leng = mod[0][0]+mod[1][0]+mod[2][0]+mod[3][0]+mod[4][0]+mod[5][0]+mod[6][0]+mod[7][0]; double prot_y = (shell_leng/2)*cmm; - double glX = 0.*GeoModelKernelUnits::mm; + double glX = 0.*Gaudi::Units::mm; double glY = -sector_length/2+prot_y+epsil; //-----------------------------A Protection Shell--------------------------// @@ -379,7 +379,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double connZ = mbZ+(mb_th/2+heightOut/2)*cmm+epsil; GeoTransform* xf1 = new GeoTransform(GeoTrf::TranslateZ3D(connZ)); - GeoTransform* xf2 = new GeoTransform(GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg)); + GeoTransform* xf2 = new GeoTransform(GeoTrf::RotateX3D(-90*Gaudi::Units::deg)); sectorPhysVol->add(xf1); sectorPhysVol->add(xf2); @@ -413,8 +413,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double anode_th = 0.330; double cathode_th = 0.270; - double heig_elec1 = (larheight/cos(-mod[0][3]*GeoModelKernelUnits::deg)-0.5*anode_th/cos(mod[0][3]*GeoModelKernelUnits::deg))*cmm; - double heig_elec3 = (larheight-0.5*cathode_th/cos(mod[1][3]*GeoModelKernelUnits::deg))*cmm; + double heig_elec1 = (larheight/cos(-mod[0][3]*Gaudi::Units::deg)-0.5*anode_th/cos(mod[0][3]*Gaudi::Units::deg))*cmm; + double heig_elec3 = (larheight-0.5*cathode_th/cos(mod[1][3]*Gaudi::Units::deg))*cmm; GeoTrd* catho1 = new GeoTrd(smallLength/2*cmm,bigLength/2*cmm,cathode_th/2*cmm,cathode_th/2*cmm,heig_elec1/2*cmm); GeoLogVol* LV_catho1 = new GeoLogVol(basename+"::Cathode1",catho1,CathodeMat); @@ -492,8 +492,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoGenfun::GENFUNCTION cathoGF = YStartC[i]+I*mod[i][4]*cmm; GeoGenfun::GENFUNCTION anoGF = YStartA[i]+I*mod[i][4]*cmm; - GeoXF::TRANSFUNCTION cathoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),cathoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*GeoModelKernelUnits::deg); - GeoXF::TRANSFUNCTION anoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),anoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*GeoModelKernelUnits::deg); + GeoXF::TRANSFUNCTION cathoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),cathoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*Gaudi::Units::deg); + GeoXF::TRANSFUNCTION anoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),anoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*Gaudi::Units::deg); GeoSerialTransformer *cathoST,*anoST; diff --git a/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx b/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx index 967131032979..5b7e6ed8dd7a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx @@ -9,6 +9,7 @@ #include "StoreGate/StoreGate.h" #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GaudiKernel/ISvcLocator.h" @@ -49,7 +50,7 @@ void LArMaterialManager::buildMaterials() if (!Copper) throw std::runtime_error("Error in LArMaterialManager, std::Copper is not found."); #ifdef DEBUGGEO msg << "Copper radiation length " << Copper->getRadLength() << " " - << Copper->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << Copper->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; #endif @@ -60,7 +61,7 @@ void LArMaterialManager::buildMaterials() if (!Lead) throw std::runtime_error("Error in LArMaterialManager, std::Lead is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Lead radiation length " << Lead->getRadLength() << " " - << Lead->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << Lead->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; #endif @@ -69,7 +70,7 @@ void LArMaterialManager::buildMaterials() #ifdef DEBUGGEO msg << MSG::INFO<< "LAr radiation length " << LAr->getRadLength() << " " - << LAr->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << LAr->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; #endif const GeoMaterial *Air = m_storedManager->getMaterial("std::Air"); @@ -79,7 +80,7 @@ void LArMaterialManager::buildMaterials() if (!Kapton) throw std::runtime_error("Error in LArMaterialManager, std::Kapton is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Kapton radiation length " << Kapton->getRadLength() << " " - << Kapton->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << Kapton->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; for (size_t i = 0; i< Kapton->getNumElements();i++) { msg << MSG::INFO << int (Kapton->getFraction(i)*100) << "% \t" << Kapton->getElement(i)->getName() << endmsg; } @@ -91,7 +92,7 @@ void LArMaterialManager::buildMaterials() if (!Glue) throw std::runtime_error("Error in LArMaterialManager, LAr::Glue is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Glue radiation length " << Glue->getRadLength() << " " - << Glue->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << Glue->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; for (size_t i = 0; i< Glue->getNumElements();i++) { msg << MSG::INFO << int (Glue->getFraction(i)*100) << "% \t" << Glue->getElement(i)->getName() << endmsg; } @@ -102,7 +103,7 @@ void LArMaterialManager::buildMaterials() if (!G10) throw std::runtime_error("Error in LArMaterialManager, LAr::G10 is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "G10 radiation length " << G10->getRadLength() << " " - << G10->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << G10->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; for (size_t i = 0; i< G10->getNumElements();i++) { msg << MSG::INFO << int (G10->getFraction(i)*100) << "% \t" << G10->getElement(i)->getName() << endmsg; } @@ -128,9 +129,9 @@ void LArMaterialManager::buildMaterials() double contract=dB.getDouble("ColdContraction","ColdContraction-00", "ABSORBERCONTRACTION"); // LArEMBAbsorberContraction // first thin absorbers - Tggl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGGL")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsGlue - Tgfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGFE")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsIron - Tgpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGPB")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsLead + Tggl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGGL")*Gaudi::Units::cm*contract; // LArEMBThinAbsGlue + Tgfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGFE")*Gaudi::Units::cm*contract; // LArEMBThinAbsIron + Tgpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGPB")*Gaudi::Units::cm*contract; // LArEMBThinAbsLead Totalthick = Tggl+Tgfe+Tgpb; Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); //***GU below are the fraction per mass @@ -143,7 +144,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<"," <<Fracgl<< endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ," <<Totalthick<< endmsg; msg << MSG::DEBUG<<" Contraction " << contract << endmsg; - msg << MSG::DEBUG <<" Thinabs Density = "<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density = "<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thin_abs = new GeoMaterial("Thinabs",density); Thin_abs->add(Lead,Fracpb); @@ -156,9 +157,9 @@ void LArMaterialManager::buildMaterials() #endif // then thick absorbers - Thgl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THGL")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsGlue - Thfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFE")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsIron - Thpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THPB")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsLead + Thgl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THGL")*Gaudi::Units::cm*contract; // LArEMBThickAbsGlue + Thfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFE")*Gaudi::Units::cm*contract; // LArEMBThickAbsIron + Thpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THPB")*Gaudi::Units::cm*contract; // LArEMBThickAbsLead Totalthick = Thgl+Thfe+Thpb; Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -171,7 +172,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<"---- THICK absorber characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<","<<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thickabs Density = " << density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" Thickabs Density = " << density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thick_abs = new GeoMaterial("Thickabs",density); Thick_abs->add(Lead,Fracpb); @@ -183,8 +184,8 @@ void LArMaterialManager::buildMaterials() #endif // electrode =mixture Kapton+Cu - Thcu=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THCU")*GeoModelKernelUnits::cm; // LArEMBThickElecCopper - Thfg=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFG")*GeoModelKernelUnits::cm; // LArEMBThickElecKapton + Thcu=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THCU")*Gaudi::Units::cm; // LArEMBThickElecCopper + Thfg=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFG")*Gaudi::Units::cm; // LArEMBThickElecKapton Totalthicke = Thcu+Thfg; Totalmasse = (Thcu*Copper->getDensity()+Thfg*Kapton->getDensity()); //**GU below are the fractions per mass @@ -198,7 +199,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<"---- Electrode characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Fraction Cu, Kapton: " << FracCu << ","<< FracKap << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness:"<<Totalmasse<<" ,"<<Totalthicke<< endmsg; - msg << MSG::DEBUG <<" Electrode Density = " << density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" Electrode Density = " << density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Kapton_Cu = new GeoMaterial("KaptonC",density); Kapton_Cu->add(Copper,FracCu); @@ -209,7 +210,7 @@ void LArMaterialManager::buildMaterials() #endif // material for Cables/electronics (mixture of Kapton and copper) - // density = 2.440*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + // density = 2.440*Gaudi::Units::g/Gaudi::Units::cm3; //**GU get fractions per mass double frmassCu = dB.getDouble("BarrelAccordionCables","BarrelAccordionCables-00","PERCU"); // LArEMBmasspercentCu double frmassKap= dB.getDouble("BarrelAccordionCables","BarrelAccordionCables-00","PERKAP"); // LArEMBmasspercentKap @@ -219,8 +220,8 @@ void LArMaterialManager::buildMaterials() /(1.+frmassKapOverCu*Copper->getDensity()/Kapton->getDensity()); GeoMaterial* Cable_elect = new GeoMaterial("Cables",density); double fractionmass; - Cable_elect->add(Copper, fractionmass=frmassCu*GeoModelKernelUnits::perCent); - Cable_elect->add(Kapton, fractionmass=frmassKap*GeoModelKernelUnits::perCent); + Cable_elect->add(Copper, fractionmass=frmassCu*Gaudi::Units::perCent); + Cable_elect->add(Kapton, fractionmass=frmassKap*Gaudi::Units::perCent); m_storedManager->addMaterial("LAr", Cable_elect); #ifdef DEBUGGEO msg << MSG::INFO<< "Cable radiation length " << Cable_elect->getRadLength() << endmsg; @@ -228,8 +229,8 @@ void LArMaterialManager::buildMaterials() // material for motherboard // Mother_board is defined as a mixture of epox_G10 (C8 H14 O4) and Copper - ThMBcu = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THICU")*GeoModelKernelUnits::cm; // LArEMBCuThickness - ThMBG10 = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THIG10")*GeoModelKernelUnits::cm; // LArEMBG10Thickness + ThMBcu = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THICU")*Gaudi::Units::cm; // LArEMBCuThickness + ThMBG10 = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THIG10")*Gaudi::Units::cm; // LArEMBG10Thickness double TotalthickMBe = ThMBcu+ThMBG10; double TotalmassMBe = (ThMBcu*Copper->getDensity()+ThMBG10*G10->getDensity()); double FracMBCu = (ThMBcu*Copper->getDensity())/TotalmassMBe; @@ -240,7 +241,7 @@ void LArMaterialManager::buildMaterials() << FracMBG10 << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness:" << TotalmassMBe <<" ," <<TotalthickMBe<< endmsg; - msg << MSG::DEBUG <<" M_board Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" M_board Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Moth_elect = new GeoMaterial("MBoards",density); // ****GU: use fraction per masses of G10 and Cu Moth_elect->add(G10,FracMBG10); @@ -255,7 +256,7 @@ void LArMaterialManager::buildMaterials() const GeoElement* Si = m_storedManager->getElement("Silicon"); const GeoElement *O = m_storedManager->getElement("Oxygen"); - density = dB.getDouble("BarrelMotherboards", "BarrelMotherboards-00", "DG10")*(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); //LArEMBEpoxyVolumicMass + density = dB.getDouble("BarrelMotherboards", "BarrelMotherboards-00", "DG10")*(GeoModelKernelUnits::g/Gaudi::Units::cm3); //LArEMBEpoxyVolumicMass GeoMaterial* SiO2 = new GeoMaterial("SiO2",density); double fractionSi=28.09/(28.09+2*16.0); SiO2->add(Si,fractionSi); @@ -263,21 +264,21 @@ void LArMaterialManager::buildMaterials() SiO2->add(O,fractionO); SiO2->lock(); // Gten for the bars of the calorimeter= mixture of regular G10 and SiO2 - density=1.72*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; // should be replaced by number from database + density=1.72*GeoModelKernelUnits::g/Gaudi::Units::cm3; // should be replaced by number from database GeoMaterial* Gten_bar = new GeoMaterial("G10_bar",density); Gten_bar->add(G10,0.38); // should be replaced by number from database Gten_bar->add(SiO2,0.62); // should be replaced by number from database m_storedManager->addMaterial("LAr",Gten_bar); #ifdef DEBUGGEO msg << MSG::INFO<< "fracionSi,fracionO2 " << fractionSi << " " << fractionO << endmsg; - msg << MSG::INFO<< "SiO2 density " << SiO2->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + msg << MSG::INFO<< "SiO2 density " << SiO2->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; msg << MSG::INFO<< "SiO2 radiation length " << SiO2->getRadLength() << endmsg; msg << MSG::INFO<< "G10bar radiation length " << Gten_bar->getRadLength() << endmsg; #endif // material for the effective M_PIn+summing board effect - double ThSBCu = 0.28*GeoModelKernelUnits::mm; // should be replaced by number from database - double ThSBAr = 9.72*GeoModelKernelUnits::mm; // should be replaced by number from database + double ThSBCu = 0.28*Gaudi::Units::mm; // should be replaced by number from database + double ThSBAr = 9.72*Gaudi::Units::mm; // should be replaced by number from database double TotalThickSB = ThSBCu+ThSBAr; double dcu = Copper->getDensity(); double dar = LAr->getDensity(); @@ -312,12 +313,12 @@ void LArMaterialManager::buildMaterials() const GeoElement *H = m_storedManager->getElement( "Hydrogen" ); - GeoMaterial *Vacuum = new GeoMaterial( "Vacuum", GeoModelKernelUnits::universe_mean_density ); + GeoMaterial *Vacuum = new GeoMaterial( "Vacuum", Gaudi::Units::universe_mean_density ); Vacuum->add( H, 1. ); m_storedManager->addMaterial("LAr", Vacuum ); #ifdef DEBUGGEO msg << MSG::INFO<< "Vacuum radiation length " << Vacuum->getRadLength() << " " - << Vacuum->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + << Vacuum->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; #endif @@ -335,13 +336,13 @@ void LArMaterialManager::buildMaterials() // EMEC thin absorbers // -/* Tggl = 0.30 * GeoModelKernelUnits::mm; - Tgfe = 0.40 * GeoModelKernelUnits::mm; - Tgpb = 1.70 * GeoModelKernelUnits::mm; */ +/* Tggl = 0.30 * Gaudi::Units::mm; + Tgfe = 0.40 * Gaudi::Units::mm; + Tgpb = 1.70 * Gaudi::Units::mm; */ - Tggl = 0.20 * GeoModelKernelUnits::mm; - Tgfe = 0.40 * GeoModelKernelUnits::mm; - Tgpb = 1.69 * GeoModelKernelUnits::mm; + Tggl = 0.20 * Gaudi::Units::mm; + Tgfe = 0.40 * Gaudi::Units::mm; + Tgpb = 1.69 * Gaudi::Units::mm; Totalthick = Tggl+Tgfe+Tgpb; Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); @@ -354,13 +355,13 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness pb,fe,gl,[mm]="<<Tgpb<<" "<<Tgfe<<" "<<Tggl << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl ="<<Fracpb<<","<<Fracfe<<"," <<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness ="<<Totalmass<<" ," <<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thinabs Density ="<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density ="<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; msg << MSG::DEBUG << "---- EMEC THIN absorber characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Thickness pb,fe,gl,[mm]="<<Tgpb<<" "<<Tgfe<<" "<<Tggl << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl ="<<Fracpb<<","<<Fracfe<<"," <<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness ="<<Totalmass<<" ," <<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thinabs Density ="<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density ="<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thin_abs = new GeoMaterial("EMEC_Thinabs",density); @@ -377,13 +378,13 @@ void LArMaterialManager::buildMaterials() // EMEC thick absorbers // -/* Thgl = 0.30 * GeoModelKernelUnits::mm; - Thfe = 0.40 * GeoModelKernelUnits::mm; - Thpb = 2.20 * GeoModelKernelUnits::mm; */ +/* Thgl = 0.30 * Gaudi::Units::mm; + Thfe = 0.40 * Gaudi::Units::mm; + Thpb = 2.20 * Gaudi::Units::mm; */ - Thgl = 0.20 * GeoModelKernelUnits::mm; - Thfe = 0.40 * GeoModelKernelUnits::mm; - Thpb = 2.20 * GeoModelKernelUnits::mm; + Thgl = 0.20 * Gaudi::Units::mm; + Thfe = 0.40 * Gaudi::Units::mm; + Thpb = 2.20 * Gaudi::Units::mm; Totalthick = Thgl+Thfe+Thpb; Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -397,7 +398,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness pb,fe,gl[mm]="<<Thpb<<" "<<Thfe<<" "<<Thgl<<endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<","<<Fracgl<<endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick<<endmsg; - msg << MSG::DEBUG <<" Thickabs Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) <<endmsg; + msg << MSG::DEBUG <<" Thickabs Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) <<endmsg; GeoMaterial* Thick_abs = new GeoMaterial("EMEC_Thickabs",density); Thick_abs->add(Lead,Fracpb); @@ -411,8 +412,8 @@ void LArMaterialManager::buildMaterials() // // EMEC shell = iron + glue, identical for inner and outer absorbers // - Thgl = 0.20 * GeoModelKernelUnits::mm; - Thfe = 0.40 * GeoModelKernelUnits::mm; + Thgl = 0.20 * Gaudi::Units::mm; + Thfe = 0.40 * Gaudi::Units::mm; Totalthick = Thgl+Thfe; Totalmass = (Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -425,7 +426,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness fe,gl[mm]="<<Thfe<<" "<<Thgl<<endmsg; msg << MSG::DEBUG <<" Fraction fe,gl: "<<Fracfe<<","<<Fracgl<<endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick<<endmsg; - msg << MSG::DEBUG <<" Thickabs Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) <<endmsg; + msg << MSG::DEBUG <<" Thickabs Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g) <<endmsg; GeoMaterial* EMEC_shell = new GeoMaterial("EMEC_shell",density); EMEC_shell->add(Iron,Fracfe); @@ -446,13 +447,13 @@ void LArMaterialManager::buildMaterials() //!! Check whether G10 or G10_bar is to be used!!!! -/* Tggl = 0.30 * GeoModelKernelUnits::mm; - Tgfe = 0.40 * GeoModelKernelUnits::mm; - TgG10 =1.70 * GeoModelKernelUnits::mm;*/ +/* Tggl = 0.30 * Gaudi::Units::mm; + Tgfe = 0.40 * Gaudi::Units::mm; + TgG10 =1.70 * Gaudi::Units::mm;*/ - Tggl = 0.20 * GeoModelKernelUnits::mm; - Tgfe = 0.40 * GeoModelKernelUnits::mm; - TgG10 =1.69 * GeoModelKernelUnits::mm; + Tggl = 0.20 * Gaudi::Units::mm; + Tgfe = 0.40 * Gaudi::Units::mm; + TgG10 =1.69 * Gaudi::Units::mm; Totalthick = Tggl+Tgfe+TgG10; Totalmass = (TgG10*G10->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); @@ -477,13 +478,13 @@ void LArMaterialManager::buildMaterials() // EMEC Inner Wheel barrette // -/* Thgl = 0.30 * GeoModelKernelUnits::mm; - Thfe = 0.40 * GeoModelKernelUnits::mm; - ThG10 =2.20 * GeoModelKernelUnits::mm;*/ +/* Thgl = 0.30 * Gaudi::Units::mm; + Thfe = 0.40 * Gaudi::Units::mm; + ThG10 =2.20 * Gaudi::Units::mm;*/ - Thgl = 0.20 * GeoModelKernelUnits::mm; - Thfe = 0.40 * GeoModelKernelUnits::mm; - ThG10 =2.20 * GeoModelKernelUnits::mm; + Thgl = 0.20 * Gaudi::Units::mm; + Thfe = 0.40 * Gaudi::Units::mm; + ThG10 =2.20 * Gaudi::Units::mm; Totalthick = Thgl+Thfe+ThG10; Totalmass = (ThG10*G10->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h index e7da0ad2f4da..3031eb28baec 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h @@ -24,7 +24,7 @@ namespace LArGeo { // Accessor for pointer to the singleton. static EndcapPresamplerGeometryHelper* GetInstance(); - // "zShift" is the z-distance (GeoModelKernelUnits::cm) that the EM endcap is shifted + // "zShift" is the z-distance (cm) that the EM endcap is shifted // (due to cabling, etc.) float zShift() const { return m_zShift; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx index 3f4ea5cacf40..99348afb50e2 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx @@ -61,7 +61,6 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -69,7 +68,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" - +#include "GaudiKernel/PhysicalConstants.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -219,19 +218,19 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double phiPosition, phiSize; if(m_isTB) { - phiPosition = GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad; - phiSize = M_PI*GeoModelKernelUnits::rad / 8. + 0.065*GeoModelKernelUnits::rad; // half-angle of inner part of module + phiPosition = Gaudi::Units::halfpi*Gaudi::Units::rad; + phiSize = M_PI*Gaudi::Units::rad / 8. + 0.065*Gaudi::Units::rad; // half-angle of inner part of module } else { - phiPosition = M_PI*GeoModelKernelUnits::rad; - phiSize = M_PI*GeoModelKernelUnits::rad; // half-angle of a full wheel + phiPosition = M_PI*Gaudi::Units::rad; + phiSize = M_PI*Gaudi::Units::rad; // half-angle of a full wheel } // Define the mother volume for the emec. Everything // else in the emec (wheels,structure, etc.) should be // placed inside here. - //double emecMotherZplan[] = {3641.*GeoModelKernelUnits::mm,4273.*GeoModelKernelUnits::mm}; //warm + //double emecMotherZplan[] = {3641.*Gaudi::Units::mm,4273.*Gaudi::Units::mm}; //warm // 21-Jul-2005, C.S. : above line valid in warm, below is in cold. // The latter one should apply, othervise SupportMotherVolumes cross @@ -246,17 +245,17 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) cryoPcons = pAccessSvc->getRecordsetPtr("CryoPcons", "CryoPcons-EMEC-00"); } - //double emecMotherZplan[] = {3639.5*GeoModelKernelUnits::mm,3639.5*GeoModelKernelUnits::mm+630.*GeoModelKernelUnits::mm}; //cold (J.T) - // // Zplane[0]=endg_z0*GeoModelKernelUnits::cm-50*GeoModelKernelUnits::mm - // // Zplane[1]=Zplane[0]+endg_dzende*GeoModelKernelUnits::cm-2.GeoModelKernelUnits::mm - //double emecMotherRin[] = { 279.*GeoModelKernelUnits::mm, 324*GeoModelKernelUnits::mm}; //{ 302.*GeoModelKernelUnits::mm, 302.*GeoModelKernelUnits::mm }; - //double emecMotherRout[] = {(2077.-7)*GeoModelKernelUnits::mm,(2077.-7)*GeoModelKernelUnits::mm}; // -7 for cold + //double emecMotherZplan[] = {3639.5*Gaudi::Units::mm,3639.5*Gaudi::Units::mm+630.*Gaudi::Units::mm}; //cold (J.T) + // // Zplane[0]=endg_z0*Gaudi::Units::cm-50*Gaudi::Units::mm + // // Zplane[1]=Zplane[0]+endg_dzende*Gaudi::Units::cm-2.Gaudi::Units::mm + //double emecMotherRin[] = { 279.*Gaudi::Units::mm, 324*Gaudi::Units::mm}; //{ 302.*Gaudi::Units::mm, 302.*Gaudi::Units::mm }; + //double emecMotherRout[] = {(2077.-7)*Gaudi::Units::mm,(2077.-7)*Gaudi::Units::mm}; // -7 for cold //int lastPlaneEmec = (sizeof(emecMotherZplan) / sizeof(double)); std::string emecMotherName = baseName + "::Mother"; //+ extension; GeoTransform *refSystemTransform = 0; - double zTrans = 0.*GeoModelKernelUnits::mm, zMSTrans = 0.*GeoModelKernelUnits::mm; + double zTrans = 0.*Gaudi::Units::mm, zMSTrans = 0.*Gaudi::Units::mm; GeoPcon* emecMotherShape = new GeoPcon(phiPosition - phiSize, 2.*phiSize); //start phi,total phi for(unsigned int i = 0; i < cryoPcons->size(); ++ i){ @@ -264,11 +263,11 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(currentRecord->getString("PCON") == "EMEC::Mother"){ if(!refSystemTransform){ if(m_isTB){ - zTrans = -3700.5*GeoModelKernelUnits::mm; + zTrans = -3700.5*Gaudi::Units::mm; zMSTrans = zTrans; } else { - zTrans = currentRecord->getDouble("ZPLANE") - 3639.5*GeoModelKernelUnits::mm; - zMSTrans = 0.*GeoModelKernelUnits::mm; + zTrans = currentRecord->getDouble("ZPLANE") - 3639.5*Gaudi::Units::mm; + zMSTrans = 0.*Gaudi::Units::mm; } refSystemTransform = new GeoTransform(GeoTrf::TranslateZ3D(zTrans)); } @@ -283,8 +282,8 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(DB_EmecGeometry->size() == 0){ DB_EmecGeometry = pAccessSvc->getRecordsetPtr("EmecGeometry", "EmecGeometry-00"); } - double zWheelRefPoint = (*DB_EmecGeometry)[0]->getDouble("Z0")*GeoModelKernelUnits::cm; - double LArTotalThickness = (*DB_EmecGeometry)[0]->getDouble("ETOT") *GeoModelKernelUnits::cm; + double zWheelRefPoint = (*DB_EmecGeometry)[0]->getDouble("Z0")*Gaudi::Units::cm; + double LArTotalThickness = (*DB_EmecGeometry)[0]->getDouble("ETOT") *Gaudi::Units::cm; const GeoLogVol* emecMotherLogical = new GeoLogVol(emecMotherName, emecMotherShape, LAr); @@ -311,7 +310,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double zWheelFrontFace = zWheelRefPoint + lwc->GetdWRPtoFrontFace(); GeoPcon* innerShape= new GeoPcon(phiPosition - phiSize, 2.*phiSize); - innerShape->addPlane( 0.*GeoModelKernelUnits::mm, rMinInner[0], rMaxInner[0]); + innerShape->addPlane( 0.*Gaudi::Units::mm, rMinInner[0], rMaxInner[0]); innerShape->addPlane(zBack , rMinInner[1], rMaxInner[1]); GeoLogVol* innerLogical = new GeoLogVol (innerName,innerShape, LAr); @@ -387,7 +386,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double zWheelFrontFace = zWheelRefPoint + lwc->GetdWRPtoFrontFace(); GeoPcon* outerShape= new GeoPcon(phiPosition - phiSize, 2.*phiSize); - outerShape->addPlane( 0.*GeoModelKernelUnits::mm, rMinOuter[0], rMaxOuter[0]); + outerShape->addPlane( 0.*Gaudi::Units::mm, rMinOuter[0], rMaxOuter[0]); outerShape->addPlane( zMid , rMinOuter[1], rMaxOuter[1]); outerShape->addPlane(zBack , rMinOuter[2], rMaxOuter[2]); @@ -471,36 +470,36 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(DB_EMECmn->size() == 0) DB_EMECmn = pAccessSvc->getRecordsetPtr("EmecMagicNumbers","EMECMagigNumbers-00"); - double front_shift = 0.*GeoModelKernelUnits::mm, back_shift = 0.*GeoModelKernelUnits::mm; + double front_shift = 0.*Gaudi::Units::mm, back_shift = 0.*Gaudi::Units::mm; try { for(unsigned int i = 0; i < DMpcons->size(); ++ i){ std::string object = (*DMpcons)[i]->getString("PCONNAME"); if(object == "FrontSupportMother"){ int zplane = (*DMpcons)[i]->getInt("NZPLANE"); - if(zplane == 0) front_shift += (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; - else if(zplane == 1) front_shift -= (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; + if(zplane == 0) front_shift += (*DMpcons)[i]->getDouble("ZPOS")*Gaudi::Units::mm; + else if(zplane == 1) front_shift -= (*DMpcons)[i]->getDouble("ZPOS")*Gaudi::Units::mm; else continue; } else if(object == "BackSupportMother"){ int zplane = (*DMpcons)[i]->getInt("NZPLANE"); - if(zplane == 0) back_shift -= 0.;//(*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; - else if(zplane == 1) back_shift += (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; + if(zplane == 0) back_shift -= 0.;//(*DMpcons)[i]->getDouble("ZPOS")*Gaudi::Units::mm; + else if(zplane == 1) back_shift += (*DMpcons)[i]->getDouble("ZPOS")*Gaudi::Units::mm; else continue; } } - double reftoactive = (*DB_EMECmn)[0]->getDouble("REFTOACTIVE")*GeoModelKernelUnits::mm; + double reftoactive = (*DB_EMECmn)[0]->getDouble("REFTOACTIVE")*Gaudi::Units::mm; front_shift += reftoactive; back_shift += LArTotalThickness - reftoactive; } catch (...){ - front_shift = -50.*GeoModelKernelUnits::mm; // start of EMEC envelop in the cryo.(length of env=630.) - back_shift = 580.*GeoModelKernelUnits::mm; + front_shift = -50.*Gaudi::Units::mm; // start of EMEC envelop in the cryo.(length of env=630.) + back_shift = 580.*Gaudi::Units::mm; std::cout << "EMECConstruction: WARNING: cannot get front|back_shift from DB" << std::endl; } //std::cout << "EMECConstruction : " << front_shift << " " << back_shift << std::endl; z0 = zWheelRefPoint + front_shift; EMECSupportConstruction *fsc = 0; - if(m_isTB) fsc = new EMECSupportConstruction(FrontIndx, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); + if(m_isTB) fsc = new EMECSupportConstruction(FrontIndx, true, "LAr::EMEC::", Gaudi::Units::halfpi*Gaudi::Units::rad); else fsc = new EMECSupportConstruction(FrontIndx); GeoPhysVol* physicalFSM = fsc->GetEnvelope(); emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); @@ -510,7 +509,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) z0 = zWheelRefPoint + back_shift; // end of EMEC envelop in the cryo. EMECSupportConstruction *bsc = 0; - if(m_isTB) bsc = new EMECSupportConstruction(BackIndx, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); + if(m_isTB) bsc = new EMECSupportConstruction(BackIndx, true, "LAr::EMEC::", Gaudi::Units::halfpi*Gaudi::Units::rad); else bsc = new EMECSupportConstruction(BackIndx); GeoPhysVol *physicalBSM = bsc->GetEnvelope(); GeoTrf::Transform3D rotBSM(GeoTrf::RotateX3D(-M_PI)); @@ -523,7 +522,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) z0 = zWheelRefPoint + LArTotalThickness * 0.5; //dist. to middle of sens vol. along z from WRP EMECSupportConstruction *osc = 0; - if(m_isTB) osc = new EMECSupportConstruction(2, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); + if(m_isTB) osc = new EMECSupportConstruction(2, true, "LAr::EMEC::", Gaudi::Units::halfpi*Gaudi::Units::rad); else osc = new EMECSupportConstruction(2); GeoPhysVol *physicalOSM = osc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); @@ -534,7 +533,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) z0 = zWheelRefPoint + LArTotalThickness * 0.5; EMECSupportConstruction *isc = 0; - if(m_isTB) isc = new EMECSupportConstruction(3, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); + if(m_isTB) isc = new EMECSupportConstruction(3, true, "LAr::EMEC::", Gaudi::Units::halfpi*Gaudi::Units::rad); else isc = new EMECSupportConstruction(3); GeoPhysVol *physicalISM = isc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); @@ -544,7 +543,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) z0 = zWheelRefPoint + LArTotalThickness * 0.5; EMECSupportConstruction *msc = 0; - if(m_isTB) msc = new EMECSupportConstruction(4, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); + if(m_isTB) msc = new EMECSupportConstruction(4, true, "LAr::EMEC::", Gaudi::Units::halfpi*Gaudi::Units::rad); else msc = new EMECSupportConstruction(4); GeoPhysVol *physicalMSM = msc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx index 23ebc8306eb0..c46de7bf338f 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx @@ -72,7 +72,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -80,6 +79,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/ISvcLocator.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -110,11 +110,11 @@ EMECSupportConstruction::EMECSupportConstruction } m_PhiStart = 0.; - m_PhiSize = GeoModelKernelUnits::twopi*GeoModelKernelUnits::rad; + m_PhiSize = Gaudi::Units::twopi*Gaudi::Units::rad; if(m_isModule){ - m_PhiStart = m_Position - M_PI*GeoModelKernelUnits::rad / 8.; - m_PhiSize = M_PI*GeoModelKernelUnits::rad / 4.; + m_PhiStart = m_Position - M_PI*Gaudi::Units::rad / 8.; + m_PhiSize = M_PI*Gaudi::Units::rad / 4.; } // Get the materials from the manager @@ -338,24 +338,24 @@ GeoPcon* EMECSupportConstruction::getPcon(std::string id) const } pcone[key] = i; if(key >= 0) ++ nzplanes; - else R0 = (*m_DB_pcons)[i]->getDouble("RMIN")*GeoModelKernelUnits::mm; + else R0 = (*m_DB_pcons)[i]->getDouble("RMIN")*Gaudi::Units::mm; } } if(nzplanes > 0){ zplane.resize(nzplanes); rmin.resize(nzplanes); rmax.resize(nzplanes); for(int n = 0; n < nzplanes; ++ n){ - zplane[n] = (*m_DB_pcons)[pcone[n]]->getDouble("ZPOS")*GeoModelKernelUnits::mm; - rmin[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMIN")*GeoModelKernelUnits::mm; - rmax[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMAX")*GeoModelKernelUnits::mm; + zplane[n] = (*m_DB_pcons)[pcone[n]]->getDouble("ZPOS")*Gaudi::Units::mm; + rmin[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMIN")*Gaudi::Units::mm; + rmax[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMAX")*Gaudi::Units::mm; } if(id1 == "FrontSupportMother"){ if(id.find("Inner") != std::string::npos){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - double rlim = getNumber(m_DB_numbers, id, "Inner", 614.)*GeoModelKernelUnits::mm; + double rlim = getNumber(m_DB_numbers, id, "Inner", 614.)*Gaudi::Units::mm; rmax[0] = rlim; rmax[1] = rlim; } else if(id.find("Outer") != std::string::npos){ - double rlim = getNumber(m_DB_numbers, id, "Outer", 603.-1.)*GeoModelKernelUnits::mm; + double rlim = getNumber(m_DB_numbers, id, "Outer", 603.-1.)*Gaudi::Units::mm; rmin[0] = rlim; rmin[1] = rlim; } @@ -363,24 +363,24 @@ GeoPcon* EMECSupportConstruction::getPcon(std::string id) const if(id1 == "BackSupportMother"){ if(id.find("Inner") != std::string::npos){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - double rlim = getNumber(m_DB_numbers, id, "Inner", 699.)*GeoModelKernelUnits::mm; + double rlim = getNumber(m_DB_numbers, id, "Inner", 699.)*Gaudi::Units::mm; rmax[0] = rlim; rmax[1] = rlim; } else if(id.find("Outer") != std::string::npos){ - double rlim = getNumber(m_DB_numbers, id, "Outer", 687.-1.)*GeoModelKernelUnits::mm; + double rlim = getNumber(m_DB_numbers, id, "Outer", 687.-1.)*Gaudi::Units::mm; rmin[0] = rlim; rmin[1] = rlim; } } if(id1 == "Stretchers"){ if(id == "WideStretchers"){ - double dfiWS = 360./3./256.*24.*GeoModelKernelUnits::deg; //this is the design variable for WS + double dfiWS = 360./3./256.*24.*Gaudi::Units::deg; //this is the design variable for WS phi_start = m_Position - dfiWS*0.5; phi_size = dfiWS; } if(id == "NarrowStretchers"){ - double lengthNS = getNumber(m_DB_numbers, id, "Width", 200.)*GeoModelKernelUnits::mm; // transversal length of NS - double dfiNS = lengthNS / rmax[0] * GeoModelKernelUnits::rad; + double lengthNS = getNumber(m_DB_numbers, id, "Width", 200.)*Gaudi::Units::mm; // transversal length of NS + double dfiNS = lengthNS / rmax[0] * Gaudi::Units::rad; phi_start = m_Position - dfiNS*0.5; phi_size = dfiNS; } @@ -395,42 +395,42 @@ for(int i = 0; i < nzplanes; ++ i){ } else { if(id.find("FrontSupportMother") == 0){ zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = 292.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[0] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[1] = 61. *GeoModelKernelUnits::mm; rmin[1] = 292.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[1] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[2] = 61. *GeoModelKernelUnits::mm; rmin[2] = 2023.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[2] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[3] = 72.3*GeoModelKernelUnits::mm; rmin[3] = 2023.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[3] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[4] = 124.2*GeoModelKernelUnits::mm; rmin[4] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[4] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[5] = 153. *GeoModelKernelUnits::mm; rmin[5] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[5] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = 292.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[0] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[1] = 61. *Gaudi::Units::mm; rmin[1] = 292.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[1] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[2] = 61. *Gaudi::Units::mm; rmin[2] = 2023.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[2] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[3] = 72.3*Gaudi::Units::mm; rmin[3] = 2023.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[3] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[4] = 124.2*Gaudi::Units::mm; rmin[4] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[4] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[5] = 153. *Gaudi::Units::mm; rmin[5] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[5] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; if(id == "FrontSupportMother::Outer"){ - rmin[0] = 603.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; - rmin[1] = 603.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; + rmin[0] = 603.*Gaudi::Units::mm-1.*Gaudi::Units::mm; + rmin[1] = 603.*Gaudi::Units::mm-1.*Gaudi::Units::mm; } if(id == "FrontSupportMother::Inner"){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - rmax[0] = 614.*GeoModelKernelUnits::mm; - rmax[1] = 614.*GeoModelKernelUnits::mm; + rmax[0] = 614.*Gaudi::Units::mm; + rmax[1] = 614.*Gaudi::Units::mm; } } else if(id.find("BackSupportMother") == 0){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.001*GeoModelKernelUnits::mm; rmin[0] = 333.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[0] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[1] = 55. *GeoModelKernelUnits::mm; rmin[1] = 333.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[1] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[2] = 55. *GeoModelKernelUnits::mm; rmin[2] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[2] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; - zplane[3] = 147. *GeoModelKernelUnits::mm; rmin[3] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[3] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[0] = 0.001*Gaudi::Units::mm; rmin[0] = 333.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[0] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[1] = 55. *Gaudi::Units::mm; rmin[1] = 333.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[1] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[2] = 55. *Gaudi::Units::mm; rmin[2] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[2] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; + zplane[3] = 147. *Gaudi::Units::mm; rmin[3] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[3] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm; if(id == "BackSupportMother::Outer"){ - rmin[0] = 687.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; - rmin[1] = 687.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; + rmin[0] = 687.*Gaudi::Units::mm-1.*Gaudi::Units::mm; + rmin[1] = 687.*Gaudi::Units::mm-1.*Gaudi::Units::mm; } if(id == "BackSupportMother::Inner"){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - rmax[0] = 699.*GeoModelKernelUnits::mm; - rmax[1] = 699.*GeoModelKernelUnits::mm; + rmax[0] = 699.*Gaudi::Units::mm; + rmax[1] = 699.*Gaudi::Units::mm; } } else if(id == "WideStretchers" || id == "NarrowStretchers"){ - double dzS = 165.*GeoModelKernelUnits::mm; - double dznotch = 10.*GeoModelKernelUnits::mm; // half z extent of the notch - double drnotch = 6.5*GeoModelKernelUnits::mm; // deepness of the noth in radial direction - double rmaxS = (2077. - 7.)*GeoModelKernelUnits::mm;//ROuter+116. // -7 for cold - double rminS = rmaxS - 26.*GeoModelKernelUnits::mm; + double dzS = 165.*Gaudi::Units::mm; + double dznotch = 10.*Gaudi::Units::mm; // half z extent of the notch + double drnotch = 6.5*Gaudi::Units::mm; // deepness of the noth in radial direction + double rmaxS = (2077. - 7.)*Gaudi::Units::mm;//ROuter+116. // -7 for cold + double rminS = rmaxS - 26.*Gaudi::Units::mm; double rmidS = rminS + drnotch; zplane.resize(6); rmin.resize(6); rmax.resize(6); zplane[0] = -dzS ; rmin[0] = rminS; rmax[0] = rmaxS; @@ -440,22 +440,22 @@ for(int i = 0; i < nzplanes; ++ i){ zplane[4] = dznotch; rmin[4] = rminS; rmax[4] = rmaxS; zplane[5] = dzS ; rmin[5] = rminS; rmax[5] = rmaxS; if(id == "WideStretchers"){ - double dfiWS = 360./3./256.*24.*GeoModelKernelUnits::deg; //this is the design variable for WS + double dfiWS = 360./3./256.*24.*Gaudi::Units::deg; //this is the design variable for WS phi_start = m_Position - dfiWS*0.5; phi_size = dfiWS; } if(id == "NarrowStretchers"){ - double lengthNS = 200.*GeoModelKernelUnits::mm; // transversal length of NS - double dfiNS = lengthNS / rmaxS * GeoModelKernelUnits::rad; + double lengthNS = 200.*Gaudi::Units::mm; // transversal length of NS + double dfiNS = lengthNS / rmaxS * Gaudi::Units::rad; phi_start = m_Position - dfiNS*0.5; phi_size = dfiNS; } } else if(id == "OuterSupportMother"){ - double dzS = 165.*GeoModelKernelUnits::mm; - double rmaxS = (2077. - 7.)*GeoModelKernelUnits::mm;//ROuter+116. // -7 for cold - double rminOTB = (2034. + 2.)*GeoModelKernelUnits::mm; - double rmaxOTB = rminOTB + 3.*GeoModelKernelUnits::mm; - double dzOTB = 201.*GeoModelKernelUnits::mm; + double dzS = 165.*Gaudi::Units::mm; + double rmaxS = (2077. - 7.)*Gaudi::Units::mm;//ROuter+116. // -7 for cold + double rminOTB = (2034. + 2.)*Gaudi::Units::mm; + double rmaxOTB = rminOTB + 3.*Gaudi::Units::mm; + double dzOTB = 201.*Gaudi::Units::mm; zplane.resize(6); rmin.resize(6); rmax.resize(6); zplane[0] = -dzOTB ; rmin[0] = rminOTB; rmax[0] = rmaxOTB; zplane[1] = -dzS; rmin[1] = rminOTB; rmax[1] = rmaxOTB; @@ -464,176 +464,176 @@ for(int i = 0; i < nzplanes; ++ i){ zplane[4] = dzS; rmin[4] = rminOTB; rmax[4] = rmaxOTB; zplane[5] = dzOTB ; rmin[5] = rminOTB; rmax[5] = rmaxOTB; } else if(id == "FrontMiddleRing"){ - double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring + double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ; // RMiddle=middle radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 57.*GeoModelKernelUnits::mm; rmax[0] = r0 + 57.*GeoModelKernelUnits::mm; - zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 57.*GeoModelKernelUnits::mm; rmax[1] = r0 + 57.*GeoModelKernelUnits::mm; - zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[3] = 59. *GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = r0 - 57.*Gaudi::Units::mm; rmax[0] = r0 + 57.*Gaudi::Units::mm; + zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] = r0 - 57.*Gaudi::Units::mm; rmax[1] = r0 + 57.*Gaudi::Units::mm; + zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] = r0 - 40.*Gaudi::Units::mm; rmax[2] = r0 + 40.*Gaudi::Units::mm; + zplane[3] = 59. *Gaudi::Units::mm; rmin[3] = r0 - 40.*Gaudi::Units::mm; rmax[3] = r0 + 40.*Gaudi::Units::mm; } else if(id == "FrontMiddleRing::LowerHole"){ - double r0 = 614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm; // RMiddle=middle radius of the ring + double r0 = 614.*Gaudi::Units::mm-2.*Gaudi::Units::mm; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40. *GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40. *GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[0] = 23. *Gaudi::Units::mm; rmin[0] = r0 - 28.3*Gaudi::Units::mm; rmax[0] = r0 - 8.*Gaudi::Units::mm; + zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] = r0 - 28.3*Gaudi::Units::mm; rmax[1] = r0 - 8.*Gaudi::Units::mm; + zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] = r0 - 40. *Gaudi::Units::mm; rmax[2] = r0 - 8.*Gaudi::Units::mm; + zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] = r0 - 40. *Gaudi::Units::mm; rmax[3] = r0 - 8.*Gaudi::Units::mm; + zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] = r0 - 28.3*Gaudi::Units::mm; rmax[4] = r0 - 8.*Gaudi::Units::mm; + zplane[5] = 53. *Gaudi::Units::mm; rmin[5] = r0 - 28.3*Gaudi::Units::mm; rmax[5] = r0 - 8.*Gaudi::Units::mm; } else if(id == "FrontMiddleRing::LowerGTen"){ - double r0 = 614.*GeoModelKernelUnits::mm - 2.*GeoModelKernelUnits::mm; // RMiddle=middle radius of the ring + double r0 = 614.*Gaudi::Units::mm - 2.*Gaudi::Units::mm; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[0] = 23.*Gaudi::Units::mm; rmin[0] = r0 - 28.*Gaudi::Units::mm; rmax[0] = r0 - 8.*Gaudi::Units::mm; + zplane[1] = 28.*Gaudi::Units::mm; rmin[1] = r0 - 28.*Gaudi::Units::mm; rmax[1] = r0 - 8.*Gaudi::Units::mm; + zplane[2] = 28.*Gaudi::Units::mm; rmin[2] = r0 - 40.*Gaudi::Units::mm; rmax[2] = r0 - 8.*Gaudi::Units::mm; + zplane[3] = 48.*Gaudi::Units::mm; rmin[3] = r0 - 40.*Gaudi::Units::mm; rmax[3] = r0 - 8.*Gaudi::Units::mm; + zplane[4] = 48.*Gaudi::Units::mm; rmin[4] = r0 - 28.*Gaudi::Units::mm; rmax[4] = r0 - 8.*Gaudi::Units::mm; + zplane[5] = 53.*Gaudi::Units::mm; rmin[5] = r0 - 28.*Gaudi::Units::mm; rmax[5] = r0 - 8.*Gaudi::Units::mm; } else if(id == "FrontMiddleRing::UpperHole"){ - double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring + double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40. *GeoModelKernelUnits::mm; - zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40. *GeoModelKernelUnits::mm; - zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[0] = 23. *Gaudi::Units::mm; rmin[0] = r0 + 8.*Gaudi::Units::mm; rmax[0] = r0 + 28.3*Gaudi::Units::mm; + zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] = r0 + 8.*Gaudi::Units::mm; rmax[1] = r0 + 28.3*Gaudi::Units::mm; + zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] = r0 + 8.*Gaudi::Units::mm; rmax[2] = r0 + 40. *Gaudi::Units::mm; + zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] = r0 + 8.*Gaudi::Units::mm; rmax[3] = r0 + 40. *Gaudi::Units::mm; + zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] = r0 + 8.*Gaudi::Units::mm; rmax[4] = r0 + 28.3*Gaudi::Units::mm; + zplane[5] = 53. *Gaudi::Units::mm; rmin[5] = r0 + 8.*Gaudi::Units::mm; rmax[5] = r0 + 28.3*Gaudi::Units::mm; } else if(id == "FrontMiddleRing::UpperGTen"){ - double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring + double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[0] = 23.*Gaudi::Units::mm; rmin[0] = r0 + 8.*Gaudi::Units::mm; rmax[0] = r0 + 28.*Gaudi::Units::mm; + zplane[1] = 28.*Gaudi::Units::mm; rmin[1] = r0 + 8.*Gaudi::Units::mm; rmax[1] = r0 + 28.*Gaudi::Units::mm; + zplane[2] = 28.*Gaudi::Units::mm; rmin[2] = r0 + 8.*Gaudi::Units::mm; rmax[2] = r0 + 40.*Gaudi::Units::mm; + zplane[3] = 48.*Gaudi::Units::mm; rmin[3] = r0 + 8.*Gaudi::Units::mm; rmax[3] = r0 + 40.*Gaudi::Units::mm; + zplane[4] = 48.*Gaudi::Units::mm; rmin[4] = r0 + 8.*Gaudi::Units::mm; rmax[4] = r0 + 28.*Gaudi::Units::mm; + zplane[5] = 53.*Gaudi::Units::mm; rmin[5] = r0 + 8.*Gaudi::Units::mm; rmax[5] = r0 + 28.*Gaudi::Units::mm; } else if(id == "FrontInnerRing"){ - double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the inner ring zplane.resize(5); rmin.resize(5); rmax.resize(5); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 51.5*GeoModelKernelUnits::mm; - zplane[1] = 6. *GeoModelKernelUnits::mm; rmin[1] = r0 - 28.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 51.5*GeoModelKernelUnits::mm; - zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 28.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 51.5*GeoModelKernelUnits::mm; - zplane[3] = 27.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 43.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[4] = 59. *GeoModelKernelUnits::mm; rmin[4] = r0 - 43.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = r0 - 22.5*Gaudi::Units::mm; rmax[0] = r0 + 51.5*Gaudi::Units::mm; + zplane[1] = 6. *Gaudi::Units::mm; rmin[1] = r0 - 28.5*Gaudi::Units::mm; rmax[1] = r0 + 51.5*Gaudi::Units::mm; + zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] = r0 - 28.5*Gaudi::Units::mm; rmax[2] = r0 + 51.5*Gaudi::Units::mm; + zplane[3] = 27.5*Gaudi::Units::mm; rmin[3] = r0 - 43.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; + zplane[4] = 59. *Gaudi::Units::mm; rmin[4] = r0 - 43.5*Gaudi::Units::mm; rmax[4] = r0 + 40.5*Gaudi::Units::mm; } else if(id == "FrontInnerRing::Hole"){ - double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the inner ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[0] = 23. *Gaudi::Units::mm; rmin[0] = r0 + 6.5*Gaudi::Units::mm; rmax[0] = r0 + 29.5*Gaudi::Units::mm; + zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] = r0 + 6.5*Gaudi::Units::mm; rmax[1] = r0 + 29.5*Gaudi::Units::mm; + zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] = r0 + 6.5*Gaudi::Units::mm; rmax[2] = r0 + 40.5*Gaudi::Units::mm; + zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] = r0 + 6.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; + zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] = r0 + 6.5*Gaudi::Units::mm; rmax[4] = r0 + 29.5*Gaudi::Units::mm; + zplane[5] = 53. *Gaudi::Units::mm; rmin[5] = r0 + 6.5*Gaudi::Units::mm; rmax[5] = r0 + 29.5*Gaudi::Units::mm; } else if(id == "FrontInnerRing::GTen"){ - double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the inner ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[0] = 23.*Gaudi::Units::mm; rmin[0] = r0 + 8.5*Gaudi::Units::mm; rmax[0] = r0 + 28.5*Gaudi::Units::mm; + zplane[1] = 28.*Gaudi::Units::mm; rmin[1] = r0 + 8.5*Gaudi::Units::mm; rmax[1] = r0 + 28.5*Gaudi::Units::mm; + zplane[2] = 28.*Gaudi::Units::mm; rmin[2] = r0 + 8.5*Gaudi::Units::mm; rmax[2] = r0 + 40.5*Gaudi::Units::mm; + zplane[3] = 48.*Gaudi::Units::mm; rmin[3] = r0 + 8.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; + zplane[4] = 48.*Gaudi::Units::mm; rmin[4] = r0 + 8.5*Gaudi::Units::mm; rmax[4] = r0 + 28.5*Gaudi::Units::mm; + zplane[5] = 53.*Gaudi::Units::mm; rmin[5] = r0 + 8.5*Gaudi::Units::mm; rmax[5] = r0 + 28.5*Gaudi::Units::mm; } else if(id == "BackMiddleRing"){ - double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring + double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm; // RMiddle radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 57.*GeoModelKernelUnits::mm; rmax[0] = r0 + 57.*GeoModelKernelUnits::mm; - zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 - 57.*GeoModelKernelUnits::mm; rmax[1] = r0 + 57.*GeoModelKernelUnits::mm; - zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[3] = 52.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = r0 - 57.*Gaudi::Units::mm; rmax[0] = r0 + 57.*Gaudi::Units::mm; + zplane[1] = 21. *Gaudi::Units::mm; rmin[1] = r0 - 57.*Gaudi::Units::mm; rmax[1] = r0 + 57.*Gaudi::Units::mm; + zplane[2] = 21. *Gaudi::Units::mm; rmin[2] = r0 - 40.*Gaudi::Units::mm; rmax[2] = r0 + 40.*Gaudi::Units::mm; + zplane[3] = 52.5*Gaudi::Units::mm; rmin[3] = r0 - 40.*Gaudi::Units::mm; rmax[3] = r0 + 40.*Gaudi::Units::mm; } else if(id == "BackMiddleRing::LowerHole"){ - double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring + double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 - 40. *GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[3] = 42. *GeoModelKernelUnits::mm; rmin[3] = r0 - 40. *GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[4] = 42. *GeoModelKernelUnits::mm; rmin[4] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; -// zplane[5] = 56.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] = r0 - 28.3*Gaudi::Units::mm; rmax[0] = r0 - 8.*Gaudi::Units::mm; + zplane[1] = 21. *Gaudi::Units::mm; rmin[1] = r0 - 28.3*Gaudi::Units::mm; rmax[1] = r0 - 8.*Gaudi::Units::mm; + zplane[2] = 21. *Gaudi::Units::mm; rmin[2] = r0 - 40. *Gaudi::Units::mm; rmax[2] = r0 - 8.*Gaudi::Units::mm; + zplane[3] = 42. *Gaudi::Units::mm; rmin[3] = r0 - 40. *Gaudi::Units::mm; rmax[3] = r0 - 8.*Gaudi::Units::mm; + zplane[4] = 42. *Gaudi::Units::mm; rmin[4] = r0 - 28.3*Gaudi::Units::mm; rmax[4] = r0 - 8.*Gaudi::Units::mm; +// zplane[5] = 56.5*Gaudi::Units::mm; rmin[5] = r0 - 28.3*Gaudi::Units::mm; rmax[5] = r0 - 8.*Gaudi::Units::mm; + zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] = r0 - 28.3*Gaudi::Units::mm; rmax[5] = r0 - 8.*Gaudi::Units::mm; } else if(id == "BackMiddleRing::LowerGTen"){ - double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring + double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[1] = 21.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[2] = 21.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[3] = 41.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[4] = 41.5*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; - zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] = r0 - 28.*Gaudi::Units::mm; rmax[0] = r0 - 8.*Gaudi::Units::mm; + zplane[1] = 21.5*Gaudi::Units::mm; rmin[1] = r0 - 28.*Gaudi::Units::mm; rmax[1] = r0 - 8.*Gaudi::Units::mm; + zplane[2] = 21.5*Gaudi::Units::mm; rmin[2] = r0 - 40.*Gaudi::Units::mm; rmax[2] = r0 - 8.*Gaudi::Units::mm; + zplane[3] = 41.5*Gaudi::Units::mm; rmin[3] = r0 - 40.*Gaudi::Units::mm; rmax[3] = r0 - 8.*Gaudi::Units::mm; + zplane[4] = 41.5*Gaudi::Units::mm; rmin[4] = r0 - 28.*Gaudi::Units::mm; rmax[4] = r0 - 8.*Gaudi::Units::mm; + zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] = r0 - 28.*Gaudi::Units::mm; rmax[5] = r0 - 8.*Gaudi::Units::mm; } else if(id == "BackMiddleRing::UpperHole"){ - double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring + double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40. *GeoModelKernelUnits::mm; - zplane[3] = 42. *GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40. *GeoModelKernelUnits::mm; - zplane[4] = 42. *GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.3*GeoModelKernelUnits::mm; - zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] = r0 + 8.*Gaudi::Units::mm; rmax[0] = r0 + 28.3*Gaudi::Units::mm; + zplane[1] = 21. *Gaudi::Units::mm; rmin[1] = r0 + 8.*Gaudi::Units::mm; rmax[1] = r0 + 28.3*Gaudi::Units::mm; + zplane[2] = 21. *Gaudi::Units::mm; rmin[2] = r0 + 8.*Gaudi::Units::mm; rmax[2] = r0 + 40. *Gaudi::Units::mm; + zplane[3] = 42. *Gaudi::Units::mm; rmin[3] = r0 + 8.*Gaudi::Units::mm; rmax[3] = r0 + 40. *Gaudi::Units::mm; + zplane[4] = 42. *Gaudi::Units::mm; rmin[4] = r0 + 8.*Gaudi::Units::mm; rmax[4] = r0 + 28.3*Gaudi::Units::mm; + zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] = r0 + 8.*Gaudi::Units::mm; rmax[5] = r0 + 28.3*Gaudi::Units::mm; } else if(id == "BackMiddleRing::UpperGTen"){ - double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring + double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[1] = 21.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[2] = 21.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[3] = 41.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; - zplane[4] = 41.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.*GeoModelKernelUnits::mm; - zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] = r0 + 8.*Gaudi::Units::mm; rmax[0] = r0 + 28.*Gaudi::Units::mm; + zplane[1] = 21.5*Gaudi::Units::mm; rmin[1] = r0 + 8.*Gaudi::Units::mm; rmax[1] = r0 + 28.*Gaudi::Units::mm; + zplane[2] = 21.5*Gaudi::Units::mm; rmin[2] = r0 + 8.*Gaudi::Units::mm; rmax[2] = r0 + 40.*Gaudi::Units::mm; + zplane[3] = 41.5*Gaudi::Units::mm; rmin[3] = r0 + 8.*Gaudi::Units::mm; rmax[3] = r0 + 40.*Gaudi::Units::mm; + zplane[4] = 41.5*Gaudi::Units::mm; rmin[4] = r0 + 8.*Gaudi::Units::mm; rmax[4] = r0 + 28.*Gaudi::Units::mm; + zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] = r0 + 8.*Gaudi::Units::mm; rmax[5] = r0 + 28.*Gaudi::Units::mm; } else if(id == "BackInnerRing"){ - double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring + double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 53.5*GeoModelKernelUnits::mm; - zplane[1] = 22.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 53.5*GeoModelKernelUnits::mm; - zplane[2] = 22.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 24.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[3] = 54. *GeoModelKernelUnits::mm; rmin[3] = r0 - 24.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = r0 - 22.5*Gaudi::Units::mm; rmax[0] = r0 + 53.5*Gaudi::Units::mm; + zplane[1] = 22.5*Gaudi::Units::mm; rmin[1] = r0 - 22.5*Gaudi::Units::mm; rmax[1] = r0 + 53.5*Gaudi::Units::mm; + zplane[2] = 22.5*Gaudi::Units::mm; rmin[2] = r0 - 24.5*Gaudi::Units::mm; rmax[2] = r0 + 40.5*Gaudi::Units::mm; + zplane[3] = 54. *Gaudi::Units::mm; rmin[3] = r0 - 24.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; } else if(id == "BackInnerRing::Hole"){ - double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring + double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 18. *GeoModelKernelUnits::mm; rmin[0] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[1] = 22.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[2] = 22.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[3] = 43.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[4] = 43.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 29.5*GeoModelKernelUnits::mm; - zplane[5] = 48. *GeoModelKernelUnits::mm; rmin[5] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[0] = 18. *Gaudi::Units::mm; rmin[0] = r0 + 6.5*Gaudi::Units::mm; rmax[0] = r0 + 29.5*Gaudi::Units::mm; + zplane[1] = 22.5*Gaudi::Units::mm; rmin[1] = r0 + 6.5*Gaudi::Units::mm; rmax[1] = r0 + 29.5*Gaudi::Units::mm; + zplane[2] = 22.5*Gaudi::Units::mm; rmin[2] = r0 + 6.5*Gaudi::Units::mm; rmax[2] = r0 + 40.5*Gaudi::Units::mm; + zplane[3] = 43.5*Gaudi::Units::mm; rmin[3] = r0 + 6.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; + zplane[4] = 43.5*Gaudi::Units::mm; rmin[4] = r0 + 6.5*Gaudi::Units::mm; rmax[4] = r0 + 29.5*Gaudi::Units::mm; + zplane[5] = 48. *Gaudi::Units::mm; rmin[5] = r0 + 6.5*Gaudi::Units::mm; rmax[5] = r0 + 29.5*Gaudi::Units::mm; } else if(id == "BackInnerRing::GTen"){ - double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring + double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm; // RInner = reference radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 18.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[1] = 23.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[2] = 23.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[3] = 43.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; - zplane[4] = 43.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.5*GeoModelKernelUnits::mm; - zplane[5] = 48.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[0] = 18.*Gaudi::Units::mm; rmin[0] = r0 + 8.5*Gaudi::Units::mm; rmax[0] = r0 + 28.5*Gaudi::Units::mm; + zplane[1] = 23.*Gaudi::Units::mm; rmin[1] = r0 + 8.5*Gaudi::Units::mm; rmax[1] = r0 + 28.5*Gaudi::Units::mm; + zplane[2] = 23.*Gaudi::Units::mm; rmin[2] = r0 + 8.5*Gaudi::Units::mm; rmax[2] = r0 + 40.5*Gaudi::Units::mm; + zplane[3] = 43.*Gaudi::Units::mm; rmin[3] = r0 + 8.5*Gaudi::Units::mm; rmax[3] = r0 + 40.5*Gaudi::Units::mm; + zplane[4] = 43.*Gaudi::Units::mm; rmin[4] = r0 + 8.5*Gaudi::Units::mm; rmax[4] = r0 + 28.5*Gaudi::Units::mm; + zplane[5] = 48.*Gaudi::Units::mm; rmin[5] = r0 + 8.5*Gaudi::Units::mm; rmax[5] = r0 + 28.5*Gaudi::Units::mm; } else if(id == "FrontOuterRing"){ - double r0 = 1961.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; // ROuter = inner radius of the outer ring + double r0 = 1961.*Gaudi::Units::mm-7.*Gaudi::Units::mm; // ROuter = inner radius of the outer ring zplane.resize(7); rmin.resize(7); rmax.resize(7); - zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 + 0.*GeoModelKernelUnits::mm; rmax[0] = r0 + 111.*GeoModelKernelUnits::mm; - zplane[1] = 5. *GeoModelKernelUnits::mm; rmin[1] = r0 + 0.*GeoModelKernelUnits::mm; rmax[1] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[2] = 20. *GeoModelKernelUnits::mm; rmin[2] = r0 + 0.*GeoModelKernelUnits::mm; rmax[2] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[3] = 20. *GeoModelKernelUnits::mm; rmin[3] = r0 + 62.*GeoModelKernelUnits::mm; rmax[3] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[4] = 63.3*GeoModelKernelUnits::mm; rmin[4] = r0 + 62.*GeoModelKernelUnits::mm; rmax[4] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[5] = 115.2*GeoModelKernelUnits::mm; rmin[5] = r0 + 90.*GeoModelKernelUnits::mm; rmax[5] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[6] = 144. *GeoModelKernelUnits::mm; rmin[6] = r0 + 90.*GeoModelKernelUnits::mm; rmax[6] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = r0 + 0.*Gaudi::Units::mm; rmax[0] = r0 + 111.*Gaudi::Units::mm; + zplane[1] = 5. *Gaudi::Units::mm; rmin[1] = r0 + 0.*Gaudi::Units::mm; rmax[1] = r0 + 116.*Gaudi::Units::mm; + zplane[2] = 20. *Gaudi::Units::mm; rmin[2] = r0 + 0.*Gaudi::Units::mm; rmax[2] = r0 + 116.*Gaudi::Units::mm; + zplane[3] = 20. *Gaudi::Units::mm; rmin[3] = r0 + 62.*Gaudi::Units::mm; rmax[3] = r0 + 116.*Gaudi::Units::mm; + zplane[4] = 63.3*Gaudi::Units::mm; rmin[4] = r0 + 62.*Gaudi::Units::mm; rmax[4] = r0 + 116.*Gaudi::Units::mm; + zplane[5] = 115.2*Gaudi::Units::mm; rmin[5] = r0 + 90.*Gaudi::Units::mm; rmax[5] = r0 + 116.*Gaudi::Units::mm; + zplane[6] = 144. *Gaudi::Units::mm; rmin[6] = r0 + 90.*Gaudi::Units::mm; rmax[6] = r0 + 116.*Gaudi::Units::mm; } else if(id == "FrontOuterLongBar"){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = 1969.7*GeoModelKernelUnits::mm; rmax[0] = 2016.*GeoModelKernelUnits::mm; - zplane[1] = 1.*GeoModelKernelUnits::mm; rmin[1] = 1969.7*GeoModelKernelUnits::mm; rmax[1] = 2016.*GeoModelKernelUnits::mm; - zplane[2] = 1.*GeoModelKernelUnits::mm; rmin[2] = 652. *GeoModelKernelUnits::mm; rmax[2] = 2016.*GeoModelKernelUnits::mm; - zplane[3] = 21.*GeoModelKernelUnits::mm; rmin[3] = 652. *GeoModelKernelUnits::mm; rmax[3] = 2016.*GeoModelKernelUnits::mm; + zplane[0] = 0.*Gaudi::Units::mm; rmin[0] = 1969.7*Gaudi::Units::mm; rmax[0] = 2016.*Gaudi::Units::mm; + zplane[1] = 1.*Gaudi::Units::mm; rmin[1] = 1969.7*Gaudi::Units::mm; rmax[1] = 2016.*Gaudi::Units::mm; + zplane[2] = 1.*Gaudi::Units::mm; rmin[2] = 652. *Gaudi::Units::mm; rmax[2] = 2016.*Gaudi::Units::mm; + zplane[3] = 21.*Gaudi::Units::mm; rmin[3] = 652. *Gaudi::Units::mm; rmax[3] = 2016.*Gaudi::Units::mm; //2020-46.3 ; RMiddle+40.//RMiddle+8+(lengthofbar=1398) } else if(id == "BackOuterRing"){ - double r0 = 1961.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + double r0 = 1961.*Gaudi::Units::mm-7.*Gaudi::Units::mm; zplane.resize(7); rmin.resize(7); rmax.resize(7); - zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = r0 + 0.*GeoModelKernelUnits::mm; rmax[0] = r0 + 111.*GeoModelKernelUnits::mm; - zplane[1] = 5.*GeoModelKernelUnits::mm; rmin[1] = r0 + 0.*GeoModelKernelUnits::mm; rmax[1] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[2] = 15.*GeoModelKernelUnits::mm; rmin[2] = r0 + 0.*GeoModelKernelUnits::mm; rmax[2] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[3] = 15.*GeoModelKernelUnits::mm; rmin[3] = r0 + 62.*GeoModelKernelUnits::mm; rmax[3] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[4] = 41.*GeoModelKernelUnits::mm; rmin[4] = r0 + 62.*GeoModelKernelUnits::mm; rmax[4] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[5] = 41.*GeoModelKernelUnits::mm; rmin[5] = r0 + 90.*GeoModelKernelUnits::mm; rmax[5] = r0 + 116.*GeoModelKernelUnits::mm; - zplane[6] = 139.*GeoModelKernelUnits::mm; rmin[6] = r0 + 90.*GeoModelKernelUnits::mm; rmax[6] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[0] = 0.*Gaudi::Units::mm; rmin[0] = r0 + 0.*Gaudi::Units::mm; rmax[0] = r0 + 111.*Gaudi::Units::mm; + zplane[1] = 5.*Gaudi::Units::mm; rmin[1] = r0 + 0.*Gaudi::Units::mm; rmax[1] = r0 + 116.*Gaudi::Units::mm; + zplane[2] = 15.*Gaudi::Units::mm; rmin[2] = r0 + 0.*Gaudi::Units::mm; rmax[2] = r0 + 116.*Gaudi::Units::mm; + zplane[3] = 15.*Gaudi::Units::mm; rmin[3] = r0 + 62.*Gaudi::Units::mm; rmax[3] = r0 + 116.*Gaudi::Units::mm; + zplane[4] = 41.*Gaudi::Units::mm; rmin[4] = r0 + 62.*Gaudi::Units::mm; rmax[4] = r0 + 116.*Gaudi::Units::mm; + zplane[5] = 41.*Gaudi::Units::mm; rmin[5] = r0 + 90.*Gaudi::Units::mm; rmax[5] = r0 + 116.*Gaudi::Units::mm; + zplane[6] = 139.*Gaudi::Units::mm; rmin[6] = r0 + 90.*Gaudi::Units::mm; rmax[6] = r0 + 116.*Gaudi::Units::mm; } else if(id == "BackOuterLongBar"){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = 1969.7*GeoModelKernelUnits::mm; rmax[0] = 2016.*GeoModelKernelUnits::mm; - zplane[1] = 1.*GeoModelKernelUnits::mm; rmin[1] = 1969.7*GeoModelKernelUnits::mm; rmax[1] = 2016.*GeoModelKernelUnits::mm; - zplane[2] = 1.*GeoModelKernelUnits::mm; rmin[2] = 736.5*GeoModelKernelUnits::mm; rmax[2] = 2016.*GeoModelKernelUnits::mm; - zplane[3] = 21.*GeoModelKernelUnits::mm; rmin[3] = 736.5*GeoModelKernelUnits::mm; rmax[3] = 2016.*GeoModelKernelUnits::mm; + zplane[0] = 0.*Gaudi::Units::mm; rmin[0] = 1969.7*Gaudi::Units::mm; rmax[0] = 2016.*Gaudi::Units::mm; + zplane[1] = 1.*Gaudi::Units::mm; rmin[1] = 1969.7*Gaudi::Units::mm; rmax[1] = 2016.*Gaudi::Units::mm; + zplane[2] = 1.*Gaudi::Units::mm; rmin[2] = 736.5*Gaudi::Units::mm; rmax[2] = 2016.*Gaudi::Units::mm; + zplane[3] = 21.*Gaudi::Units::mm; rmin[3] = 736.5*Gaudi::Units::mm; rmax[3] = 2016.*Gaudi::Units::mm; } else { throw std::runtime_error("EMECSupportConstruction: wrong Pcone id"); } @@ -710,10 +710,10 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica motherPhysical->add(physFOB); const int number_of_modules = 8; - const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; + const double moduldfi = Gaudi::Units::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = GeoModelKernelUnits::twopi / nofabs; + const double dfi = Gaudi::Units::twopi / nofabs; //define a fi section including one absorber and electrode name = m_BaseName + "FrontOuterBarrette::Module::Phidiv"; GeoTubs *shapeFOBMP = new GeoTubs(rminFOB, rmaxFOB, dzFOB, -dfi/4., dfi); @@ -808,10 +808,10 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica motherPhysical->add(physFIB); const int number_of_modules = 8; - const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; + const double moduldfi = Gaudi::Units::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = GeoModelKernelUnits::twopi / nofabs; + const double dfi = Gaudi::Units::twopi / nofabs; name = m_BaseName + "FrontInnerBarrette::Module::Phidiv"; GeoTubs *shapeFIBMP = new GeoTubs(rminFIB,rmaxFIB,dzFIB, -dfi/4., dfi); @@ -905,10 +905,10 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical motherPhysical->add(physBOB); const int number_of_modules = 8; - const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; + const double moduldfi = Gaudi::Units::twopi / number_of_modules; int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt("NABS"); int nofdiv = nofabs / number_of_modules; - double dfi = GeoModelKernelUnits::twopi / nofabs; + double dfi = Gaudi::Units::twopi / nofabs; name = m_BaseName + "BackOuterBarrette::Module::Phidiv"; GeoTubs *shapeBOBMP = new GeoTubs(rminBOB, rmaxBOB, dzBOB, -dfi/4., dfi); @@ -992,7 +992,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical map_t numbers = getNumbersMap(m_DB_numbers, id); std::string name = m_BaseName + id; - double rminBIB = getNumber(m_DB_tubes, tubes, id, "RMIN", 357.5-1.+40.5); //RInner +40.5// -1.GeoModelKernelUnits::mm for cold + double rminBIB = getNumber(m_DB_tubes, tubes, id, "RMIN", 357.5-1.+40.5); //RInner +40.5// -1.Gaudi::Units::mm for cold double rmaxBIB = getNumber(m_DB_tubes, tubes, id, "RMAX", 699.-2.5-40.); //RMiddle-40 //-2.5mm for cold double dzBIB = getNumber(m_DB_tubes, tubes, id, "DZ", 11. / 2); double zposBIB = getNumber(m_DB_numbers, numbers, "Z0", "PARVALUE", 44.) + dzBIB; @@ -1003,10 +1003,10 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical motherPhysical->add(physBIB); const int number_of_modules = 8; - const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; + const double moduldfi = Gaudi::Units::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = GeoModelKernelUnits::twopi / nofabs; + const double dfi = Gaudi::Units::twopi / nofabs; name = m_BaseName + "BackInnerBarrette::Module::Phidiv"; GeoTubs *shapeBIBMP = new GeoTubs(rminBIB, rmaxBIB, dzBIB, -dfi/4., dfi); @@ -1101,9 +1101,9 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const map_t tubes = getMap(m_DB_tubes, "TUBENAME"); std::string id = "OuterTransversalBars"; std::string name = m_BaseName + id; - double rminOTB = getNumber(m_DB_tubes, tubes, id, "RMIN", (2034. + 2.)*GeoModelKernelUnits::mm); - double rmaxOTB = getNumber(m_DB_tubes, tubes, id, "RMAX", rminOTB + 3.*GeoModelKernelUnits::mm); - double dzOTB = getNumber(m_DB_tubes, tubes, id, "DZ", 201.*GeoModelKernelUnits::mm); + double rminOTB = getNumber(m_DB_tubes, tubes, id, "RMIN", (2034. + 2.)*Gaudi::Units::mm); + double rmaxOTB = getNumber(m_DB_tubes, tubes, id, "RMAX", rminOTB + 3.*Gaudi::Units::mm); + double dzOTB = getNumber(m_DB_tubes, tubes, id, "DZ", 201.*Gaudi::Units::mm); GeoTubs* shapeOTB = new GeoTubs(rminOTB, rmaxOTB, dzOTB, m_PhiStart, m_PhiSize); GeoLogVol* logicalOTB = new GeoLogVol(name, shapeOTB, m_Gten); GeoPhysVol* physOTB = new GeoPhysVol(logicalOTB); @@ -1111,16 +1111,16 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const id = "TopIndexingRing"; name = m_BaseName + id; double rminTIR = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxOTB); - double rmaxTIR = getNumber(m_DB_tubes, tubes, id, "RMAX", rminTIR + 9.*GeoModelKernelUnits::mm); - double dzTIR = getNumber(m_DB_tubes, tubes, id, "DZ", 10.*GeoModelKernelUnits::mm); + double rmaxTIR = getNumber(m_DB_tubes, tubes, id, "RMAX", rminTIR + 9.*Gaudi::Units::mm); + double dzTIR = getNumber(m_DB_tubes, tubes, id, "DZ", 10.*Gaudi::Units::mm); GeoTubs* shapeTIR = new GeoTubs(rminTIR, rmaxTIR, dzTIR, m_PhiStart, m_PhiSize); GeoLogVol* logicalTIR = new GeoLogVol(name, shapeTIR, m_Alu); GeoPhysVol* physTIR = new GeoPhysVol(logicalTIR); id += "::Hole"; name = m_BaseName + id; - double dzTIRH = getNumber(m_DB_tubes, tubes, id, "DZ", 4.5*GeoModelKernelUnits::mm); + double dzTIRH = getNumber(m_DB_tubes, tubes, id, "DZ", 4.5*Gaudi::Units::mm); double rmaxTIRH = getNumber(m_DB_tubes, tubes, id, "RMAX", rmaxTIR); - double rminTIRH = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxTIRH - 2.*GeoModelKernelUnits::mm); + double rminTIRH = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxTIRH - 2.*Gaudi::Units::mm); GeoTubs* shapeTIRH = new GeoTubs(rminTIRH, rmaxTIRH, dzTIRH, m_PhiStart, m_PhiSize); GeoLogVol* logicalTIRH = new GeoLogVol(name, shapeTIRH, m_LAr); GeoPhysVol* physTIRH = new GeoPhysVol(logicalTIRH); @@ -1161,7 +1161,7 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const motherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(-dfi + dfiNS*0.5))); motherPhysical->add(physNS); } else { - double dfi = GeoModelKernelUnits::twopi / number_of_stretchers; + double dfi = Gaudi::Units::twopi / number_of_stretchers; int copyno = 0; for(int i = 0; i < number_of_stretchers; ++ i, ++ copyno){ double fiW = i * dfi; @@ -1184,26 +1184,26 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const map_t numbers = getNumbersMap(m_DB_numbers, id); std::string name0 = m_BaseName + id; -// double dz = LArWheelCalculator::GetWheelThickness() * 0.5; //257.*GeoModelKernelUnits::mm; //zWheelThickness/2. - double dz = 0.5 * (*m_DB_mn)[0]->getDouble("ACTIVELENGTH")*GeoModelKernelUnits::mm; +// double dz = LArWheelCalculator::GetWheelThickness() * 0.5; //257.*Gaudi::Units::mm; //zWheelThickness/2. + double dz = 0.5 * (*m_DB_mn)[0]->getDouble("ACTIVELENGTH")*Gaudi::Units::mm; try { - dz += (*m_DB_mn)[0]->getDouble("STRAIGHTSTARTSECTION")*GeoModelKernelUnits::mm; + dz += (*m_DB_mn)[0]->getDouble("STRAIGHTSTARTSECTION")*Gaudi::Units::mm; } catch(...){ - dz += 2.*GeoModelKernelUnits::mm; + dz += 2.*Gaudi::Units::mm; std::ostringstream tmp("cannot get STRAIGHTSTARTSECTION from DB"); printWarning(tmp); } - double r1min = getNumber(m_DB_numbers, numbers, "R1MIN", "PARVALUE", (292.-1.)*GeoModelKernelUnits::mm); //lower radius of front inner ring, -1mm for cold - double r2min = getNumber(m_DB_numbers, numbers, "R2MIN", "PARVALUE", (333.-1.)*GeoModelKernelUnits::mm); //lower radius of back inner ring, -1mm for cold + double r1min = getNumber(m_DB_numbers, numbers, "R1MIN", "PARVALUE", (292.-1.)*Gaudi::Units::mm); //lower radius of front inner ring, -1mm for cold + double r2min = getNumber(m_DB_numbers, numbers, "R2MIN", "PARVALUE", (333.-1.)*Gaudi::Units::mm); //lower radius of back inner ring, -1mm for cold //RInnerFront-43.5;RInnerBack-24.5 const double talpha = (r2min - r1min)*0.5/dz; const double calpha = 2.*dz/sqrt(pow(2.*dz,2.)+pow(r2min-r1min,2.)); const double inv_calpha = 1. / calpha; const double alpha = atan(talpha); - double surfthick = getNumber(m_DB_numbers, numbers, "surfthick", "PARVALUE", 1.*GeoModelKernelUnits::mm); // thickness of the cone shell - double barthick = getNumber(m_DB_numbers, numbers, "barthick", "PARVALUE", 5.*GeoModelKernelUnits::mm); // thickness of the Alu bars + double surfthick = getNumber(m_DB_numbers, numbers, "surfthick", "PARVALUE", 1.*Gaudi::Units::mm); // thickness of the cone shell + double barthick = getNumber(m_DB_numbers, numbers, "barthick", "PARVALUE", 5.*Gaudi::Units::mm); // thickness of the Alu bars double r1max = pow(barthick/2.,2.)+ pow(r1min+(surfthick+barthick)*inv_calpha,2.); r1max = sqrt(r1max)+surfthick*inv_calpha; double r2max = r2min+(r1max-r1min); @@ -1243,7 +1243,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const //-------------------------/ const int nofmodul = 8; - const double moduldphi = GeoModelKernelUnits::twopi / nofmodul; + const double moduldphi = Gaudi::Units::twopi / nofmodul; GeoCons* shapeIACP = new GeoCons( r1min+surfthick*inv_calpha,r2min+surfthick*inv_calpha, r1max-surfthick*inv_calpha,r2max-surfthick*inv_calpha, @@ -1260,7 +1260,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const GeoLogVol* logicalIACAB= new GeoLogVol (name,shapeIACAB, m_Alu); GeoPhysVol* physIACAB= new GeoPhysVol(logicalIACAB); - const double dphi = GeoModelKernelUnits::twopi / 256.; + const double dphi = Gaudi::Units::twopi / 256.; const int nbar = 9; const double phi[9]={-15.,-11.,-7.5,-4.,0.,4.,7.5,11.,15.}; // phipos of the bars const double r0=r1min+(surfthick+barthick/2.)*inv_calpha+dz*talpha; @@ -1287,9 +1287,9 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const //!!!! GeoPhysVol* EMECSupportConstruction::middle_envelope(void) const { - double dMechFocaltoWRP = (*m_DB_EmecGeometry)[0]->getDouble("Z1") *GeoModelKernelUnits::cm; - double LArEMECHalfCrack = (*m_DB_EmecGeometry)[0]->getDouble("DCRACK") *GeoModelKernelUnits::cm; - double LArTotalThickness = (*m_DB_EmecGeometry)[0]->getDouble("ETOT") *GeoModelKernelUnits::cm; + double dMechFocaltoWRP = (*m_DB_EmecGeometry)[0]->getDouble("Z1") *Gaudi::Units::cm; + double LArEMECHalfCrack = (*m_DB_EmecGeometry)[0]->getDouble("DCRACK") *Gaudi::Units::cm; + double LArTotalThickness = (*m_DB_EmecGeometry)[0]->getDouble("ETOT") *Gaudi::Units::cm; double eta_mid = (*m_DB_EmecWheelParameters)[0]->getDouble("ETAEXT"); @@ -1298,8 +1298,8 @@ GeoPhysVol* EMECSupportConstruction::middle_envelope(void) const const double inv_cosThetaMid = 1. / cosThetaMid; double z0 = LArTotalThickness * 0.5 + dMechFocaltoWRP; - double length = 462.*GeoModelKernelUnits::mm; - double rthickness = 1.5*GeoModelKernelUnits::mm * inv_cosThetaMid; + double length = 462.*Gaudi::Units::mm; + double rthickness = 1.5*Gaudi::Units::mm * inv_cosThetaMid; std::string name = m_BaseName + "InnerTransversalBars"; double dz = length * cosThetaMid * 0.5; diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx index 50a89f47d88a..cd0b45fea19a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx @@ -33,7 +33,6 @@ #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -62,6 +61,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -299,18 +299,18 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) if(currentRecord->getString("CYL_LOCATION")=="Endcap"){ if(cylNumber == 3 ) { - rmin_warm=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm; - rmax_warm=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm; - dz_warm=currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; - zInCryostat_warm = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + rmin_warm=currentRecord->getDouble("RMIN")*Gaudi::Units::cm; + rmax_warm=currentRecord->getDouble("RMIN")*Gaudi::Units::cm + currentRecord->getDouble("DR")*Gaudi::Units::cm; + dz_warm=currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; + zInCryostat_warm = currentRecord->getDouble("ZMIN")*Gaudi::Units::cm + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; wallfind=wallfind+1; } if(cylNumber == 14 ) { - rmin_cold=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm; - rmax_cold=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm; - dz_cold=currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; - zInCryostat_cold = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + rmin_cold=currentRecord->getDouble("RMIN")*Gaudi::Units::cm; + rmax_cold=currentRecord->getDouble("RMIN")*Gaudi::Units::cm + currentRecord->getDouble("DR")*Gaudi::Units::cm; + dz_cold=currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; + zInCryostat_cold = currentRecord->getDouble("ZMIN")*Gaudi::Units::cm + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; wallfind=wallfind+1; } } @@ -388,11 +388,11 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) } GeoTubs* solidCyl - = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, - currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, - currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*Gaudi::Units::cm, + currentRecord->getDouble("RMIN")*Gaudi::Units::cm + currentRecord->getDouble("DR")*Gaudi::Units::cm, + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2., (double) 0., - (double) 2.*M_PI*GeoModelKernelUnits::rad); + (double) 2.*M_PI*Gaudi::Units::rad); const GeoMaterial *material = materialManager->getMaterial(currentRecord->getString("MATERIAL")); if (!material) { @@ -407,7 +407,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoPhysVol* physCyl = new GeoPhysVol(logicCyl); - double zInCryostat = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + double zInCryostat = currentRecord->getDouble("ZMIN")*Gaudi::Units::cm + currentRecord->getDouble("DZ")*Gaudi::Units::cm / 2.; // Don't move the pump even if the rest of the cryostat moves. //if ( cylNumber == 33 ) zInCryostat -= zEmec; @@ -427,7 +427,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoFullPhysVol* emecPSEnvelope = endcapPresamplerConstruction.Envelope(); if ( emecPSEnvelope != 0 ) { // Get the position of the presampler from the geometry helper. - double Zpos = 30.5*GeoModelKernelUnits::mm; + double Zpos = 30.5*Gaudi::Units::mm; // It is highly debateable whether the endcap presampler is // alignable, but in any case we shall not align it here because @@ -727,10 +727,10 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) } // Build mother volume - double rminMM = (*itMother)->getDouble("RMIN")*GeoModelKernelUnits::mm; - double rmaxMM = (*itMother)->getDouble("RMAX")*GeoModelKernelUnits::mm; - double dzMM = (*itMother)->getDouble("DZ")*GeoModelKernelUnits::mm; - zposMM = (*itMother)->getDouble("ZPOS")*GeoModelKernelUnits::mm; + double rminMM = (*itMother)->getDouble("RMIN")*Gaudi::Units::mm; + double rmaxMM = (*itMother)->getDouble("RMAX")*Gaudi::Units::mm; + double dzMM = (*itMother)->getDouble("DZ")*Gaudi::Units::mm; + zposMM = (*itMother)->getDouble("ZPOS")*Gaudi::Units::mm; const GeoMaterial *matMM = materialManager->getMaterial((*itMother)->getString("MATERIAL")); @@ -739,8 +739,8 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoTube *tubeJM=NULL; const GeoShape *solidMM=NULL; if (itTube!=mbtsTubs->end()) { - double dzMod = (*itTube)->getDouble("DZ")*GeoModelKernelUnits::mm; - double rMaxMod = (*itTube)->getDouble("RMAX")*GeoModelKernelUnits::mm; + double dzMod = (*itTube)->getDouble("DZ")*Gaudi::Units::mm; + double rMaxMod = (*itTube)->getDouble("RMAX")*Gaudi::Units::mm; GeoPcon *pcon = new GeoPcon(0,2*M_PI); pcon->addPlane(-dzMM,rminMM,rmaxMM); @@ -760,10 +760,10 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) cryoMotherPhysical->add(pvMM); // Moderator cylinder - //double rminMod = (*itModerator)->getDouble("RMIN")*GeoModelKernelUnits::mm; - //double rmaxMod = (*itModerator)->getDouble("RMAX")*GeoModelKernelUnits::mm; - double dzMod = (*itModerator)->getDouble("DZ")*GeoModelKernelUnits::mm; - double zposMod = (*itModerator)->getDouble("ZPOS")*GeoModelKernelUnits::mm; + //double rminMod = (*itModerator)->getDouble("RMIN")*Gaudi::Units::mm; + //double rmaxMod = (*itModerator)->getDouble("RMAX")*Gaudi::Units::mm; + double dzMod = (*itModerator)->getDouble("DZ")*Gaudi::Units::mm; + double zposMod = (*itModerator)->getDouble("ZPOS")*Gaudi::Units::mm; const GeoMaterial *matMod = materialManager->getMaterial((*itModerator)->getString("MATERIAL")); @@ -870,13 +870,13 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) const IRDBRecord* curScin = (*mbtsScin)[scinId]; int nScin = curScin->getInt("SCINNUM"); - double dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; - double dx2Scin = curScin->getDouble("DX2")*GeoModelKernelUnits::mm; - double dy1Scin = curScin->getDouble("DY1")*GeoModelKernelUnits::mm; - double dy2Scin = curScin->getDouble("DY2")*GeoModelKernelUnits::mm; - double dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; - double zposScin = curScin->getDouble("ZPOS")*GeoModelKernelUnits::mm; - double rposScin = curScin->getDouble("RPOS")*GeoModelKernelUnits::mm; + double dx1Scin = curScin->getDouble("DX1")*Gaudi::Units::mm; + double dx2Scin = curScin->getDouble("DX2")*Gaudi::Units::mm; + double dy1Scin = curScin->getDouble("DY1")*Gaudi::Units::mm; + double dy2Scin = curScin->getDouble("DY2")*Gaudi::Units::mm; + double dzScin = curScin->getDouble("DZ")*Gaudi::Units::mm; + double zposScin = curScin->getDouble("ZPOS")*Gaudi::Units::mm; + double rposScin = curScin->getDouble("RPOS")*Gaudi::Units::mm; double startPhi = 0.; try { @@ -901,12 +901,12 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoSerialTransformer* stScin = 0; if(bPos) { - GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*GeoModelKernelUnits::deg; - TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*Gaudi::Units::deg; + TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); stScin = new GeoSerialTransformer(pvScin,&xfScin,nScin); } else { - GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*GeoModelKernelUnits::deg; - TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*Gaudi::Units::deg; + TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); stScin = new GeoSerialTransformer(pvScin,&xfScin,nScin); } @@ -966,12 +966,12 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) Variable varInd; GeoSerialTransformer* stAirEnv = 0; if(bPos) { - GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*GeoModelKernelUnits::deg; - TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*Gaudi::Units::deg; + TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); stAirEnv = new GeoSerialTransformer(pvAirEnv,&xfAirEnv,nAirEnv); } else { - GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*GeoModelKernelUnits::deg; - TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*Gaudi::Units::deg; + TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); stAirEnv = new GeoSerialTransformer(pvAirEnv,&xfAirEnv,nAirEnv); } @@ -1015,15 +1015,15 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) nScin = curScin->getInt("SCINNUM"); eta = curScin->getInt("SCIN_ID")-1; - dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; - dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; - zposScin = curScin->getDouble("ZPOS")*GeoModelKernelUnits::mm; - rposScin = curScin->getDouble("RPOS")*GeoModelKernelUnits::mm; + dx1Scin = curScin->getDouble("DX1")*Gaudi::Units::mm; + dzScin = curScin->getDouble("DZ")*Gaudi::Units::mm; + zposScin = curScin->getDouble("ZPOS")*Gaudi::Units::mm; + rposScin = curScin->getDouble("RPOS")*Gaudi::Units::mm; if(!curScin->isFieldNull("ETA")) scineta = curScin->getDouble("ETA"); if(!curScin->isFieldNull("DETA")) scindeta = curScin->getDouble("DETA"); - deltaPhi = 360.*GeoModelKernelUnits::deg/nScin; + deltaPhi = 360.*Gaudi::Units::deg/nScin; try { if(!curScin->isFieldNull("STARTPHI")) startPhi = curScin->getDouble("STARTPHI"); @@ -1036,14 +1036,14 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) const IRDBRecord* curScin = (*mbtsTrds)[trdMap[scinName]]; nScin = (*mbtsGen)[0]->getInt("NSCIN"); eta = curScin->getInt("SCIN_ID")-1; - dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; - dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; - zposScin = (*mbtsGen)[0]->getDouble("ZPOSENV")*GeoModelKernelUnits::mm; - rposScin = ((*mbtsGen)[0]->getDouble("RPOSENV")+curScin->getDouble("ZPOS"))*GeoModelKernelUnits::mm; + dx1Scin = curScin->getDouble("DX1")*Gaudi::Units::mm; + dzScin = curScin->getDouble("DZ")*Gaudi::Units::mm; + zposScin = (*mbtsGen)[0]->getDouble("ZPOSENV")*Gaudi::Units::mm; + rposScin = ((*mbtsGen)[0]->getDouble("RPOSENV")+curScin->getDouble("ZPOS"))*Gaudi::Units::mm; scineta = curScin->getDouble("ETA"); scindeta = curScin->getDouble("DETA"); startPhi = (*mbtsGen)[0]->getDouble("STARTPHI"); - deltaPhi = 360.*GeoModelKernelUnits::deg/nScin; + deltaPhi = 360.*Gaudi::Units::deg/nScin; } for(int phi=0; phi<nScin; phi++) { diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx index 768040c298b7..ebba1c54f910 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx @@ -7,6 +7,7 @@ #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/IMessageSvc.h" +#include "GaudiKernel/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelKernel/GeoMaterial.h" @@ -23,7 +24,6 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelUtilities/DecodeVersionKey.h" @@ -107,8 +107,8 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) unsigned int recordIndex; // Get materials - const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); //2.7 GeoModelKernelUnits::g/GeoModelKernelUnits::cm3 - const GeoMaterial* matBoardsEnvelope = materialManager->getMaterial("LAr::BoardsEnvelope");// 0.932*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); + const GeoMaterial* matBoardsEnvelope = materialManager->getMaterial("LAr::BoardsEnvelope"); ////----------- Building Front-end crates -------------------- recordIndex = tubeMap["Ped2"]; @@ -185,9 +185,9 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoTube *Ped2 = new GeoTube(ped2minr, ped2maxr, ped2zhlen); GeoTube *Ped3 = new GeoTube(ped3minr,ped3maxr , ped3zhlen); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg)). subtract((*Ped3) <<GeoTrf::TranslateX3D(-ped3xtr)). - subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*Gaudi::Units::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -213,7 +213,7 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoTransform* xfBoardEBase2(new GeoTransform(GeoTrf::TranslateY3D(-BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(BoardEztr))); for(unsigned i(0); i<LArEndcapCratePhiPos->size(); ++i) { - double phiPos = (*LArEndcapCratePhiPos)[i]->getDouble("PHIPOS")*GeoModelKernelUnits::deg; + double phiPos = (*LArEndcapCratePhiPos)[i]->getDouble("PHIPOS")*Gaudi::Units::deg; GeoTransform* xfPhiPos(new GeoTransform(GeoTrf::RotateZ3D(phiPos))); envelope->add(xfPhiPos); diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx index b89f9c4d31cc..2ca1d36710a0 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx @@ -13,7 +13,6 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -23,6 +22,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" // For the database: @@ -103,14 +103,14 @@ GeoFullPhysVol* EndcapPresamplerConstruction::Envelope() /////////////////////////////////////////////////////////////////// // LAr Endcap Presampler GEOMETRY /////////////////////////////////////////////////////////////////// - double Rmin = 1231.74*GeoModelKernelUnits::mm; - double Rmax = 1701.98*GeoModelKernelUnits::mm; - double HalfZ = ((*presamplerPosition)[0]->getDouble("TCK")/2.)*GeoModelKernelUnits::cm; + double Rmin = 1231.74*Gaudi::Units::mm; + double Rmax = 1701.98*Gaudi::Units::mm; + double HalfZ = ((*presamplerPosition)[0]->getDouble("TCK")/2.)*Gaudi::Units::cm; std::string name = "LAr::Endcap::Presampler::LiquidArgon"; - double phi_size = 360.*GeoModelKernelUnits::deg; + double phi_size = 360.*Gaudi::Units::deg; double start_phi = 0.; if( m_isModule ){ diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx index df188ef36224..f10e0d28d8b3 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx @@ -11,7 +11,7 @@ // 2-July-2003 Mikhail Leltchouk: local coordinates for determination // of etaBin, phiBin at any Endcap Presamplerposition. -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "LArGeoEndcap/EndcapPresamplerGeometryHelper.h" #include "LArGeoCode/VDetectorParameters.h" @@ -48,22 +48,22 @@ double LArGeo::EndcapPresamplerGeometryHelper::GetValue(const kValue a_valueType switch (a_valueType) { case rMinEndcapPresampler: - //return 1231.74 * GeoModelKernelUnits::mm; + //return 1231.74 * mm; return m_parameters->GetValue("LArEMECPreMinRadius"); break; case rMaxEndcapPresampler: - //return 1701.98 * GeoModelKernelUnits::mm; + //return 1701.98 * mm; return m_parameters->GetValue("LArEMECPreMaxRadius"); break; // At nominal (zShift=0) endcap position absolute z-coordinates: // of the faces of the EndcapPresampler case zEndcapPresamplerFrontFace: - //return 3622. * GeoModelKernelUnits::mm; + //return 3622. * mm; return (m_parameters->GetValue("LArEMECPreNomPos") - GetValue(EndcapPresamplerHalfThickness)); break; case zEndcapPresamplerBackFace: - //return 3626. * GeoModelKernelUnits::mm; + //return 3626. * mm; return (m_parameters->GetValue("LArEMECPreNomPos") + GetValue(EndcapPresamplerHalfThickness)); break; @@ -73,8 +73,8 @@ double LArGeo::EndcapPresamplerGeometryHelper::GetValue(const kValue a_valueType break; case EndcapPresamplerZpositionInMother: // between cold wall center and presampler center which is at - // 3624 GeoModelKernelUnits::mm nominal (zShift=0) absolute position - return 30.5 * GeoModelKernelUnits::mm; + // 3624 Gaudi::Units::mm nominal (zShift=0) absolute position + return 30.5 * Gaudi::Units::mm; break; default: std::cerr << "EndcapPresamplerGeometryHelper::GetValue -- type '" diff --git a/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx index 90b09c85679e..f1f9135c0901 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTrap.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -44,6 +43,7 @@ #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> #include <cfloat> @@ -163,9 +163,9 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) std::string baseName = "LAr::FCAL::"; - double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * GeoModelKernelUnits::cm; - //double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * GeoModelKernelUnits::cm; - double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * GeoModelKernelUnits::cm; + double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * cm; + //double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * cm; + double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * cm; double outerModuleRadius1=(*m_fcalMod)[0]->getDouble("OUTERMODULERADIUS"); double outerModuleRadius2=(*m_fcalMod)[1]->getDouble("OUTERMODULERADIUS"); @@ -199,7 +199,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) double halfDepth = totalDepth/2.; std::string name = baseName + "LiquidArgonC"; - GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth,0,360*GeoModelKernelUnits::deg); + GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth,0,360*Gaudi::Units::deg); GeoLogVol *logVol= new GeoLogVol(name, tubs, LAr); fcalPhysical = new GeoFullPhysVol(logVol); } @@ -234,7 +234,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) GeoAlignableTransform *xfAbs1 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs1); - if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -253,17 +253,17 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) // 16 Troughs representing Cable Harnesses: if(m_fullGeo) if(m_absPhysical1==0) { - double troughDepth = 1.0 * GeoModelKernelUnits::cm; + double troughDepth = 1.0 * Gaudi::Units::cm; double outerRadius = outerModuleRadius1; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth1/ 2.0; - double deltaPhi = 5.625 * GeoModelKernelUnits::deg; - double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * Gaudi::Units::deg; + double startPhi = 11.25 * Gaudi::Units::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module1::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); GeoGenfun::Variable i; - GeoGenfun::GENFUNCTION rotationAngle = 22.5*GeoModelKernelUnits::deg*i; + GeoGenfun::GENFUNCTION rotationAngle = 22.5*Gaudi::Units::deg*i; GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,16); modPhysical->add(st); @@ -329,7 +329,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*Gaudi::Units::cm, thisTubeY*Gaudi::Units::cm,0)); modPhysical->add(xf); modPhysical->add(physVol); } @@ -366,7 +366,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) GeoAlignableTransform *xfAbs2 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs2); - if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -385,17 +385,17 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) // 16 Troughs representing Cable Harnesses: if(m_fullGeo) if(m_absPhysical2==0) { - double troughDepth = 1.0 * GeoModelKernelUnits::cm; + double troughDepth = 1.0 * Gaudi::Units::cm; double outerRadius = outerModuleRadius2; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth2/ 2.0; - double deltaPhi = 5.625 * GeoModelKernelUnits::deg; - double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * Gaudi::Units::deg; + double startPhi = 11.25 * Gaudi::Units::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module2::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); GeoGenfun::Variable i; - GeoGenfun::GENFUNCTION rotationAngle = 22.5*GeoModelKernelUnits::deg*i; + GeoGenfun::GENFUNCTION rotationAngle = 22.5*Gaudi::Units::deg*i; GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,16); modPhysical->add(st); @@ -469,7 +469,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*Gaudi::Units::cm, thisTubeY*Gaudi::Units::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } @@ -506,7 +506,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) GeoAlignableTransform *xfAbs3 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs3); - if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -527,38 +527,38 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if(m_fullGeo) if(m_absPhysical3==0) { static double rotAngles[] = - { 11.25 * GeoModelKernelUnits::deg, - 22.50 * GeoModelKernelUnits::deg, - 45.00 * GeoModelKernelUnits::deg, - 56.25 * GeoModelKernelUnits::deg, - 67.50 * GeoModelKernelUnits::deg, - 90.00 * GeoModelKernelUnits::deg, // first quarter - 101.25 * GeoModelKernelUnits::deg, - 112.50 * GeoModelKernelUnits::deg, - 135.00 * GeoModelKernelUnits::deg, - 146.25 * GeoModelKernelUnits::deg, - 157.50 * GeoModelKernelUnits::deg, - 180.00 * GeoModelKernelUnits::deg, // second quarter - 191.25 * GeoModelKernelUnits::deg, - 202.50 * GeoModelKernelUnits::deg, - 225.00 * GeoModelKernelUnits::deg, - 236.25 * GeoModelKernelUnits::deg, - 247.50 * GeoModelKernelUnits::deg, - 270.00 * GeoModelKernelUnits::deg, // third quarter - 281.25 * GeoModelKernelUnits::deg, - 292.50 * GeoModelKernelUnits::deg, - 315.00 * GeoModelKernelUnits::deg, - 326.25 * GeoModelKernelUnits::deg, - 337.50 * GeoModelKernelUnits::deg, - 360.00 * GeoModelKernelUnits::deg }; + { 11.25 * Gaudi::Units::deg, + 22.50 * Gaudi::Units::deg, + 45.00 * Gaudi::Units::deg, + 56.25 * Gaudi::Units::deg, + 67.50 * Gaudi::Units::deg, + 90.00 * Gaudi::Units::deg, // first quarter + 101.25 * Gaudi::Units::deg, + 112.50 * Gaudi::Units::deg, + 135.00 * Gaudi::Units::deg, + 146.25 * Gaudi::Units::deg, + 157.50 * Gaudi::Units::deg, + 180.00 * Gaudi::Units::deg, // second quarter + 191.25 * Gaudi::Units::deg, + 202.50 * Gaudi::Units::deg, + 225.00 * Gaudi::Units::deg, + 236.25 * Gaudi::Units::deg, + 247.50 * Gaudi::Units::deg, + 270.00 * Gaudi::Units::deg, // third quarter + 281.25 * Gaudi::Units::deg, + 292.50 * Gaudi::Units::deg, + 315.00 * Gaudi::Units::deg, + 326.25 * Gaudi::Units::deg, + 337.50 * Gaudi::Units::deg, + 360.00 * Gaudi::Units::deg }; GeoGenfun::ArrayFunction rotationAngle(rotAngles,rotAngles+24); - double troughDepth = 1.0 * GeoModelKernelUnits::cm; + double troughDepth = 1.0 * Gaudi::Units::cm; double outerRadius = outerModuleRadius3; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth3/ 2.0; - double deltaPhi = 5.625 * GeoModelKernelUnits::deg; - double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * Gaudi::Units::deg; + double startPhi = 11.25 * Gaudi::Units::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module3::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); @@ -637,7 +637,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*Gaudi::Units::cm, thisTubeY*Gaudi::Units::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx index 1f205323582b..6cd88171bc27 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx @@ -44,7 +44,6 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" @@ -53,6 +52,7 @@ #include "GeoModelUtilities/StoredAlignX.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include "GeoModelUtilities/GeoDBUtils.h" @@ -66,9 +66,9 @@ #include <iostream> -using GeoModelKernelUnits::cm; -using GeoModelKernelUnits::mm; -using GeoModelKernelUnits::deg; +using Gaudi::Units::cm; +using Gaudi::Units::mm; +using Gaudi::Units::deg; using GeoTrf::Transform3D; using GeoTrf::Translate3D; diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx index 200c46eb62db..07c7e1c66cdb 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx @@ -32,13 +32,13 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" @@ -51,9 +51,9 @@ #include <cmath> #include <iostream> -using GeoModelKernelUnits::cm; -using GeoModelKernelUnits::mm; -using GeoModelKernelUnits::deg; +using Gaudi::Units::cm; +using Gaudi::Units::mm; +using Gaudi::Units::deg; using GeoTrf::RotateZ3D; using GeoTrf::Translate3D; using GeoTrf::TranslateZ3D; diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx index 00319637749c..40491b326d1e 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx @@ -23,13 +23,13 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -41,9 +41,9 @@ #include <iostream> -using GeoModelKernelUnits::cm; -using GeoModelKernelUnits::mm; -using GeoModelKernelUnits::deg; +using Gaudi::Units::cm; +using Gaudi::Units::mm; +using Gaudi::Units::deg; using GeoTrf::Translate3D; using GeoTrf::TranslateY3D; using GeoTrf::TranslateZ3D; diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx index ee64b7541b09..24892c99b1e6 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx @@ -33,13 +33,13 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" @@ -53,9 +53,9 @@ #include <iostream> -using GeoModelKernelUnits::cm; -using GeoModelKernelUnits::mm; -using GeoModelKernelUnits::deg; +using Gaudi::Units::cm; +using Gaudi::Units::mm; +using Gaudi::Units::deg; using GeoTrf::RotateZ3D; diff --git a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx index ce0332a805de..b2b25b3d3d33 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx @@ -19,7 +19,6 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" #include "GeoModelInterfaces/IGeoModelSvc.h" @@ -32,6 +31,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -127,9 +127,9 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //_________ Define geometry __________________________ //__Copper envelope - double halfLength = envParameters->getDouble("DZ")*GeoModelKernelUnits::mm; - double Router = envParameters->getDouble("RMAX")*GeoModelKernelUnits::mm; - double Rinner = envParameters->getDouble("RMIN")*GeoModelKernelUnits::mm; + double halfLength = envParameters->getDouble("DZ")*Gaudi::Units::mm; + double Router = envParameters->getDouble("RMAX")*Gaudi::Units::mm; + double Rinner = envParameters->getDouble("RMIN")*Gaudi::Units::mm; // Buld a Cu block and place layers into that... GeoTubs *solidMiniFcal = new GeoTubs(Rinner, Router, halfLength, 0., 2.*M_PI); // Big outer radius @@ -165,15 +165,15 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() for(unsigned i=0; i<recRings->size(); ++i) ringIndexes[(*recRings)[i]->getInt("RINGNUM")] = i; - double L1 = (*recCommon)[0]->getDouble("ABSORBERTHICKNESS")*GeoModelKernelUnits::mm; // Cu plates of fixed thickness - double LayerThick = (*recCommon)[0]->getDouble("LAYERTHICKNESS")*GeoModelKernelUnits::mm; // Layers between the Cu plates - double WaferThick = (*recCommon)[0]->getDouble("WAFERTHICKNESS")*GeoModelKernelUnits::mm; // Diamond wafers - thickness - double WaferSize = (*recCommon)[0]->getDouble("WAFERSIZEX")*GeoModelKernelUnits::mm; // Square Daimond wafers + double L1 = (*recCommon)[0]->getDouble("ABSORBERTHICKNESS")*Gaudi::Units::mm; // Cu plates of fixed thickness + double LayerThick = (*recCommon)[0]->getDouble("LAYERTHICKNESS")*Gaudi::Units::mm; // Layers between the Cu plates + double WaferThick = (*recCommon)[0]->getDouble("WAFERTHICKNESS")*Gaudi::Units::mm; // Diamond wafers - thickness + double WaferSize = (*recCommon)[0]->getDouble("WAFERSIZEX")*Gaudi::Units::mm; // Square Daimond wafers int NLayers = (*recCommon)[0]->getInt("NLAYERS"); // Have 11 gaps and 12 Cu plates - log << MSG::DEBUG << "=====> Build a Mini FCal of length " << 2.*halfLength << " GeoModelKernelUnits::mm and " - << NLayers << " layers of " << LayerThick << " GeoModelKernelUnits::mm thickness each; place them every " - << L1 << " GeoModelKernelUnits::mm " << endmsg; + log << MSG::DEBUG << "=====> Build a Mini FCal of length " << 2.*halfLength << " Gaudi::Units::mm and " + << NLayers << " layers of " << LayerThick << " Gaudi::Units::mm thickness each; place them every " + << L1 << " Gaudi::Units::mm " << endmsg; // Make the Layers (all the same) - out of Feldspar (perhaps close to ceramics) std::string layerName = moduleName + "::Layer" ; @@ -182,7 +182,7 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //-- Construct wafers and arrange them in rings inside the ceramic layers. std::string waferName = moduleName + "::Wafer" ; - GeoBox* solidWafer = new GeoBox( (WaferSize/2.)*GeoModelKernelUnits::mm, (WaferSize/2.)*GeoModelKernelUnits::mm, (WaferThick/2.)*GeoModelKernelUnits::mm); + GeoBox* solidWafer = new GeoBox( (WaferSize/2.)*Gaudi::Units::mm, (WaferSize/2.)*Gaudi::Units::mm, (WaferThick/2.)*Gaudi::Units::mm); GeoLogVol* logiWafer = new GeoLogVol(waferName,solidWafer,Diamond); GeoPhysVol* physiWafer = new GeoPhysVol(logiWafer); @@ -210,7 +210,7 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() int nwafers(0); double phishift = (*recLayers)[layerIndexes[j]]->getDouble("PHISHIFT"); - double rshift = (*recLayers)[layerIndexes[j]]->getDouble("RSHIFT")*GeoModelKernelUnits::mm; + double rshift = (*recLayers)[layerIndexes[j]]->getDouble("RSHIFT")*Gaudi::Units::mm; for (unsigned int i=0; i<recRings->size(); i++){ // loop over the number of wafer rings if(ringIndexes.find(i)==ringIndexes.end()) { @@ -231,14 +231,14 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() // for the negative z-side have to add pi to get things right: GeoGenfun::GENFUNCTION RotationAngle = activate*(M_PI) + phisense * (phishift + wAngle/2. + wAngle*Index) ; GeoXF::TRANSFUNCTION t = - GeoXF::Pow(GeoTrf::RotateZ3D(1.0),RotationAngle) * GeoTrf::TranslateX3D(rshift+rwafer+5.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-LayerThick/2.+ WaferThick/2.) ; + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),RotationAngle) * GeoTrf::TranslateX3D(rshift+rwafer+5.*Gaudi::Units::mm) * GeoTrf::TranslateZ3D(-LayerThick/2.+ WaferThick/2.) ; GeoSerialTransformer *sTF = new GeoSerialTransformer (physiWafer,&t,nwafers); physiLayer->add(sIF); physiLayer->add(sTF); } log << MSG::DEBUG << "- Working on layer " << j << " now. Place it at " - << ( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. ) << " GeoModelKernelUnits::mm " << endmsg; + << ( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. ) << " Gaudi::Units::mm " << endmsg; m_physiMiniFcal->add(new GeoIdentifierTag(j)); GeoTransform *xf = new GeoTransform(GeoTrf::TranslateZ3D( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. )); m_physiMiniFcal->add(xf); @@ -248,7 +248,7 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //________ Construct top transform object _____________ - m_transform = GeoTrf::TranslateZ3D(envParameters->getDouble("ZPOS")*GeoModelKernelUnits::mm); + m_transform = GeoTrf::TranslateZ3D(envParameters->getDouble("ZPOS")*Gaudi::Units::mm); // Layers should be fully equipeed now. Put them into MiniFcal return m_physiMiniFcal; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h index 367646781306..23bcc382d038 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h @@ -8,7 +8,7 @@ #include "LArReadoutGeometry/EMECDetDescr.h" #include "GeoModelKernel/GeoVDetectorElement.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoPrimitives/GeoPrimitives.h" #include "CLHEP/Geometry/Point3D.h" @@ -39,7 +39,7 @@ class EMECDetectorRegion : public GeoVDetectorElement EMECDetectorRegion(const GeoVFullPhysVol *physVol , const EMECDetDescr *emecDescriptor , DetectorSide endcap - , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); + , double projectivityDisplacement = 4*Gaudi::Units::cm); /** * @brief Destructor diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h index b86a754eadb3..010f745fc0c4 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h @@ -9,7 +9,7 @@ #include "LArReadoutGeometry/FCALTile.h" #include "GeoModelKernel/GeoVDetectorElement.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoPrimitives/GeoPrimitives.h" class FCALDetectorManager; @@ -45,7 +45,7 @@ class FCALModule : public GeoVDetectorElement FCALModule (const GeoVFullPhysVol *physVol , Module module , Endcap endcap - , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); + , double projectivityDisplacement = 4*Gaudi::Units::cm); /** * @brief Desctructor diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h index 8be83da82bdb..776adb869626 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h @@ -8,7 +8,7 @@ #include "LArReadoutGeometry/HECCellConstLink.h" #include "GeoModelKernel/GeoVDetectorElement.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoPrimitives/GeoPrimitives.h" #include "CLHEP/Geometry/Point3D.h" @@ -42,7 +42,7 @@ class HECDetectorRegion : public GeoVDetectorElement HECDetectorRegion (const GeoVFullPhysVol *physVol , const HECDetDescr *hecDescriptor , DetectorSide endcap - , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); + , double projectivityDisplacement = 4*Gaudi::Units::cm); /** * @brief Destructor diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx index fe74f2b8f292..1a34066cddd6 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx @@ -10,8 +10,8 @@ #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/PhysicalConstants.h" #include "StoreGate/StoreGateSvc.h" -#include "GeoModelKernel/Units.h" #include <cmath> class EMBAccordionDetails::Clockwork { @@ -187,7 +187,7 @@ void EMBAccordionDetails::Clockwork::getRPhi() // accordion geometry int EMBAccordionDetails::Clockwork::phiGap(double radius, double xhit, const double yhit) { - const double m2pi = 2.0*GeoModelKernelUnits::pi; + const double m2pi = 2.0*Gaudi::Units::pi; double phi_0=phi0(radius)+gam0; // from -M_PI to M_PI double phi_hit=atan2(yhit,xhit); // from -M_PI to M_PI double dphi=phi_hit-phi_0; @@ -244,23 +244,23 @@ EMBAccordionDetails::EMBAccordionDetails():m_c(new Clockwork()) { // phi of first absorber m_c->gam0 = (*barrelGeometry)[0]->getDouble("PHIFIRST"); // radius of curvature of neutral fiber in the folds - m_c->rint_eleFib = (*barrelGeometry)[0]->getDouble("RINT")*GeoModelKernelUnits::cm; + m_c->rint_eleFib = (*barrelGeometry)[0]->getDouble("RINT")*Gaudi::Units::cm; // r,phi positions of the centre of the folds (nominal geometry) for (int idat = 0; idat < m_c->Nbrt1 ; idat++) { - m_c->rc[idat] = (*barrelGeometry)[0]->getDouble("RHOCEN",idat)*GeoModelKernelUnits::cm; - m_c->phic[idat] = (*barrelGeometry)[0]->getDouble("PHICEN",idat)*GeoModelKernelUnits::deg; - m_c->delta[idat] = (*barrelGeometry)[0]->getDouble("DELTA",idat)*GeoModelKernelUnits::deg; + m_c->rc[idat] = (*barrelGeometry)[0]->getDouble("RHOCEN",idat)*Gaudi::Units::cm; + m_c->phic[idat] = (*barrelGeometry)[0]->getDouble("PHICEN",idat)*Gaudi::Units::deg; + m_c->delta[idat] = (*barrelGeometry)[0]->getDouble("DELTA",idat)*Gaudi::Units::deg; m_c->xc[idat] = m_c->rc[idat]*cos(m_c->phic[idat]); m_c->yc[idat] = m_c->rc[idat]*sin(m_c->phic[idat]); } // - m_c->rMinAccordion = (*barrelGeometry)[0]->getDouble("RIN_AC")*GeoModelKernelUnits::cm; - m_c->rMaxAccordion = (*barrelGeometry)[0]->getDouble("ROUT_AC")*GeoModelKernelUnits::cm; + m_c->rMinAccordion = (*barrelGeometry)[0]->getDouble("RIN_AC")*Gaudi::Units::cm; + m_c->rMaxAccordion = (*barrelGeometry)[0]->getDouble("ROUT_AC")*Gaudi::Units::cm; m_c->etaMaxBarrel = (*barrelGeometry)[0]->getDouble("ETACUT"); - m_c->zMinBarrel = (*barrelLongDiv)[0]->getDouble("ZMAXACT")*GeoModelKernelUnits::cm; - m_c->zMaxBarrel = (*barrelLongDiv)[0]->getDouble("ZMINACT")*GeoModelKernelUnits::cm; + m_c->zMinBarrel = (*barrelLongDiv)[0]->getDouble("ZMAXACT")*Gaudi::Units::cm; + m_c->zMaxBarrel = (*barrelLongDiv)[0]->getDouble("ZMINACT")*Gaudi::Units::cm; // === GU 11/06/2003 total number of cells in phi // to distinguish 1 module (testbeam case) from full Atlas m_c->NCellTot = (*barrelGeometry)[0]->getInt("NCELMX"); diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx index 74c7e745950f..d0aece53d0bf 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx @@ -5,6 +5,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" #include "GaudiKernel/ISvcLocator.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -13,7 +14,6 @@ #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -#include "GeoModelKernel/Units.h" #include "LArReadoutGeometry/EMBBasicReadoutNumbers.h" EMBBasicReadoutNumbers::EMBBasicReadoutNumbers() @@ -56,12 +56,12 @@ EMBBasicReadoutNumbers::EMBBasicReadoutNumbers() - m_presamplerRadius = (*presamplerGeometry)[0]->getDouble("RACTIVE")*GeoModelKernelUnits::cm; - m_rInAc = (*barrelGeometry)[0]->getDouble("RIN_AC")*GeoModelKernelUnits::cm; - m_rOutAc = (*barrelGeometry)[0]->getDouble("ROUT_AC")*GeoModelKernelUnits::cm; + m_presamplerRadius = (*presamplerGeometry)[0]->getDouble("RACTIVE")*Gaudi::Units::cm; + m_rInAc = (*barrelGeometry)[0]->getDouble("RIN_AC")*Gaudi::Units::cm; + m_rOutAc = (*barrelGeometry)[0]->getDouble("ROUT_AC")*Gaudi::Units::cm; for (int i=0;i<8;i++) m_EE.push_back((*barrelLongDiv)[0]->getDouble("EE",i)); - for (int i=0;i<8;i++) m_RMX12.push_back((*barrelLongDiv)[0]->getDouble("RMX12",i)*GeoModelKernelUnits::cm); - for (int i=0;i<53;i++) m_RMX23.push_back((*barrelLongDiv)[0]->getDouble("RMX23",i)*GeoModelKernelUnits::cm); + for (int i=0;i<8;i++) m_RMX12.push_back((*barrelLongDiv)[0]->getDouble("RMX12",i)*Gaudi::Units::cm); + for (int i=0;i<53;i++) m_RMX23.push_back((*barrelLongDiv)[0]->getDouble("RMX23",i)*Gaudi::Units::cm); for (int i=0;i<448;i++) m_EMBSamplingSepInnerRMax.push_back((*embSamplingSepInner)[0]->getDouble("RMAX",i)); // } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx index a1e3a425bbf4..20add8ffd31a 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx @@ -4,16 +4,14 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" - #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -#include "GeoModelKernel/Units.h" - #include "LArReadoutGeometry/EMECDetectorManager.h" #include "LArReadoutGeometry/EMECDetectorRegion.h" #include "LArReadoutGeometry/EMECDetDescr.h" @@ -56,20 +54,20 @@ EMECDetectorManager::EMECDetectorManager() if (emecSamplingSep->size()==0) throw std::runtime_error("Error getting EmecSamplingSep table"); const IRDBRecord *ess = (*emecSamplingSep)[0]; - for (int j=0;j<7;j++) m_ziw.push_back(ess->getDouble("ZIW",j)*GeoModelKernelUnits::cm); - for (int j=0;j<44;j++) m_zsep12.push_back(ess->getDouble("ZSEP12",j)*GeoModelKernelUnits::cm); - for (int j=0;j<22;j++) m_zsep23.push_back(ess->getDouble("ZSEP23",j)*GeoModelKernelUnits::cm); + for (int j=0;j<7;j++) m_ziw.push_back(ess->getDouble("ZIW",j)*Gaudi::Units::cm); + for (int j=0;j<44;j++) m_zsep12.push_back(ess->getDouble("ZSEP12",j)*Gaudi::Units::cm); + for (int j=0;j<22;j++) m_zsep23.push_back(ess->getDouble("ZSEP23",j)*Gaudi::Units::cm); IRDBRecordset_ptr emecMagicNumbers = rdbAccess->getRecordsetPtr("EmecMagicNumbers", larVersionKey.tag(),larVersionKey.node()); if (emecMagicNumbers->size()==0) { emecMagicNumbers = rdbAccess->getRecordsetPtr("EmecMagicNumbers", "EmecMagicNumbers-00"); if (emecMagicNumbers->size()==0) throw std::runtime_error("Error getting EmecMagicNumbers table"); } - m_MagicNumbers->focalToRef =(*emecMagicNumbers)[0]->getDouble("FOCALTOREF")*GeoModelKernelUnits::mm; - m_MagicNumbers->refToActive =(*emecMagicNumbers)[0]->getDouble("REFTOACTIVE")*GeoModelKernelUnits::mm; - m_MagicNumbers->activeLength =(*emecMagicNumbers)[0]->getDouble("ACTIVELENGTH")*GeoModelKernelUnits::mm; - m_MagicNumbers->refToPresampler =(*emecMagicNumbers)[0]->getDouble("REFTOPRESAMPLER")*GeoModelKernelUnits::mm; - m_MagicNumbers->presamplerLength =(*emecMagicNumbers)[0]->getDouble("PRESAMPLERLENGTH")*GeoModelKernelUnits::mm; + m_MagicNumbers->focalToRef =(*emecMagicNumbers)[0]->getDouble("FOCALTOREF")*Gaudi::Units::mm; + m_MagicNumbers->refToActive =(*emecMagicNumbers)[0]->getDouble("REFTOACTIVE")*Gaudi::Units::mm; + m_MagicNumbers->activeLength =(*emecMagicNumbers)[0]->getDouble("ACTIVELENGTH")*Gaudi::Units::mm; + m_MagicNumbers->refToPresampler =(*emecMagicNumbers)[0]->getDouble("REFTOPRESAMPLER")*Gaudi::Units::mm; + m_MagicNumbers->presamplerLength =(*emecMagicNumbers)[0]->getDouble("PRESAMPLERLENGTH")*Gaudi::Units::mm; } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx index 5cb3662d79dd..4bb9cbd7d353 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx @@ -13,7 +13,7 @@ //**************************************************************************** #include "LArReadoutGeometry/FCAL_ChannelMap.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "boost/io/ios_state.hpp" #include <sstream> #include <iostream> @@ -21,7 +21,7 @@ #include <stdio.h> /* === Geometrical parameters === */ -const double FCAL_ChannelMap::m_tubeSpacing[] = {0.75*GeoModelKernelUnits::cm, 0.8179*GeoModelKernelUnits::cm, 0.90*GeoModelKernelUnits::cm}; +const double FCAL_ChannelMap::m_tubeSpacing[] = {0.75*Gaudi::Units::cm, 0.8179*Gaudi::Units::cm, 0.90*Gaudi::Units::cm}; FCAL_ChannelMap::FCAL_ChannelMap( int flag) { @@ -78,7 +78,7 @@ void FCAL_ChannelMap::add_tube(const std::string & tileName, int mod, int /*id*/ tileName_t tilename = (a3 << 16) + a2; - TubePosition tb(tilename, x*GeoModelKernelUnits::cm, y*GeoModelKernelUnits::cm,""); + TubePosition tb(tilename, x*Gaudi::Units::cm, y*Gaudi::Units::cm,""); // Add offsets, becaues iy and ix can be negative HMA i = i+200; @@ -104,7 +104,7 @@ void FCAL_ChannelMap::add_tube(const std::string & tileName, int mod, int /*id*/ tileName_t tilename = (a3 << 16) + a2; - TubePosition tb(tilename, x*GeoModelKernelUnits::cm, y*GeoModelKernelUnits::cm, hvFT); + TubePosition tb(tilename, x*Gaudi::Units::cm, y*Gaudi::Units::cm, hvFT); // Add offsets, becaues iy and ix can be negative HMA i = i+200; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx index e44269da848d..426a5e9a2327 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx @@ -5,6 +5,7 @@ #include "LArReadoutGeometry/HECDetDescr.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -68,7 +69,7 @@ HECDetDescr::HECDetDescr (const HECDetectorManager *detManager m_zMax.push_back(back); } pos += m_manager->getBlock(b)->getDepth(); - if(isTestBeam && b==2) pos += (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; + if(isTestBeam && b==2) pos += (*hadronicEndcap)[0]->getDouble("GAPWHL")*Gaudi::Units::cm; } } } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx index d270dcd4fd3a..313f1ea19c0f 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx @@ -6,13 +6,13 @@ #include "LArReadoutGeometry/HECDetectorRegion.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -#include "GeoModelKernel/Units.h" #include "LArReadoutGeometry/HECDetectorManager.h" #include "LArHV/LArHVManager.h" #include "StoreGate/StoreGate.h" @@ -60,21 +60,21 @@ HECDetectorManager::HECDetectorManager(bool isTestBeam) if (hecPad->size()!=hecLongBlock->size()) throw std::runtime_error("Error. Hec[LongitudinalBlock,Pad] size discrepancy"); // Get the focal length: - m_focalToRef1 = (*hadronicEndcap)[0]->getDouble("ZORIG")*GeoModelKernelUnits::cm; + m_focalToRef1 = (*hadronicEndcap)[0]->getDouble("ZORIG")*Gaudi::Units::cm; m_focalToRef2 = m_focalToRef1; - double betweenWheel=(*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; + double betweenWheel=(*hadronicEndcap)[0]->getDouble("GAPWHL")*Gaudi::Units::cm; if(!m_isTestBeam) m_focalToRef2 += betweenWheel; for (unsigned int b=0;b<hecLongBlock->size();b++) { double etaBoundary[15]; const IRDBRecord *block = (*hecLongBlock)[b]; unsigned int blockNumber= (unsigned int) (block->getDouble("IBLC")+0.01); // will truncate down. - double innerRadius= block->getDouble("BLRMN")*GeoModelKernelUnits::cm; - double outerRadius= block->getDouble("BLRMX")*GeoModelKernelUnits::cm; - double depth= block->getDouble("BLDPTH")*GeoModelKernelUnits::cm; + double innerRadius= block->getDouble("BLRMN")*Gaudi::Units::cm; + double outerRadius= block->getDouble("BLRMX")*Gaudi::Units::cm; + double depth= block->getDouble("BLDPTH")*Gaudi::Units::cm; unsigned int numLArGaps= (unsigned int) (block->getDouble("BLMOD") + 0.01); // will truncate down. - double frontPlateThickness= block->getDouble("PLATE0")*GeoModelKernelUnits::cm; - double backPlateThickness= block->getDouble("PLATEE")*GeoModelKernelUnits::cm; + double frontPlateThickness= block->getDouble("PLATE0")*Gaudi::Units::cm; + double backPlateThickness= block->getDouble("PLATEE")*Gaudi::Units::cm; const IRDBRecord *pad = (*hecPad)[b]; for (int j=0;j<15;j++) etaBoundary[j]=pad->getDouble("ETA",j); -- GitLab From b048ce48b7dec6c94cfab3054d62508c35f610ed Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Thu, 24 Jan 2019 12:18:25 +0100 Subject: [PATCH 086/192] added function allowing to configure from chainDicts, added test --- .../TrigMissingETHypo/CMakeLists.txt | 3 ++ .../python/TrigMissingETHypoConfigMT.py | 35 ++++++++++++++++++- .../TrigUpgradeTest/share/met.menu.py | 4 +-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/CMakeLists.txt b/Trigger/TrigHypothesis/TrigMissingETHypo/CMakeLists.txt index 068bfe52a572..9119cb010ceb 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/CMakeLists.txt +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/CMakeLists.txt @@ -35,6 +35,9 @@ atlas_add_component( TrigMissingETHypo INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} LINK_LIBRARIES ${CLHEP_LIBRARIES} TrigInterfacesLib TrigTimeAlgsLib xAODTrigMissingET GaudiKernel TrigMissingEtEvent TrigMissingETHypoLib DecisionHandling ) +atlas_add_test( TrigMissingETHypoConfigMT SCRIPT python -m TrigMissingETHypo.TrigMissingETHypoConfigMT + POST_EXEC_SCRIPT nopost.sh ) + # Install files from the package: atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/TriggerConfig_*.py ) diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfigMT.py b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfigMT.py index a14e29229207..e3221afc9d6e 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfigMT.py +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoConfigMT.py @@ -49,11 +49,44 @@ class MissingETHypoToolMT(TrigMissingETHypoToolMT): self.metThreshold = int(filter(str.isdigit, trigParts[idx-1])) + +def TrigMETCellHypoToolFromDict(chainDict): + """ Configure tool operating on met from cells""" + # note for future developers, it seems that the chainDict has the information about the type of alg, it would be god to use it + # not calling the class above as it tries to parse the name back + # also there seems no property to decide if it is met from cells yet, not setting it therefore + # possibly there would be only one function if the met source is available in the chainDict and settable tool property + + tool = MissingETHypoToolMT( chainDict['chainName'] ) + tool.metThreshold = int(chainDict['chainParts'][0]['threshold']) + + return tool + + def TrigMETCellHypoToolFromName(name, conf): - return MissingETHypoToolMT(name, alg='cell') + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(conf, [], "") # no L1 info + decodedDict['chainName'] = name + + return TrigMETCellHypoToolFromDict( decodedDict ) + + +def TrigMETPufitHypoToolFromName(name, conf): + return MissingETHypoToolMT(name, alg='pufit') + def TrigMETPufitHypoToolFromName(name, conf): return MissingETHypoToolMT(name, alg='pufit') def TrigMETMhtHypoToolFromName(name, conf): return MissingETHypoToolMT(name, alg='mht') + + +if __name__ == "__main__": + confCell = TrigMETCellHypoToolFromName("HLT_xe65_L1XE50", "HLT_xe65_L1XE50") + assert confCell, "Cell tool not configured" + + + diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.menu.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.menu.py index 0a02a8bfe004..bb1deed6f07d 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.menu.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.menu.py @@ -16,8 +16,8 @@ from TrigUpgradeTest.metMenuDefs import metCellSequence metCellSeq = metCellSequence() metCellStep = ChainStep("Step1_met_cell", [metCellSeq]) testChains = [ - Chain(name="HLT_xe65_L1XE50", Seed="L1_XE50", ChainSteps=[metCellStep]), - Chain(name="HLT_xe30_L1XE10", Seed="L1_XE10", ChainSteps=[metCellStep]) + Chain(name="HLT_xe65_L1XE50", Seed="L1_XE50", ChainSteps=[metCellStep]), + Chain(name="HLT_xe30_L1XE10", Seed="L1_XE10", ChainSteps=[metCellStep]) ] ################################# -- GitLab From 5151eaaa6ee48f641d451ab3f78a5beeccc72b72 Mon Sep 17 00:00:00 2001 From: amete <serhanmete@gmail.com> Date: Thu, 24 Jan 2019 14:43:18 +0100 Subject: [PATCH 087/192] Bugfix importing tools --- Tools/PROCTools/python/RunTier0Tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/PROCTools/python/RunTier0Tests.py b/Tools/PROCTools/python/RunTier0Tests.py index 6c3318693282..3946c47c77e6 100755 --- a/Tools/PROCTools/python/RunTier0Tests.py +++ b/Tools/PROCTools/python/RunTier0Tests.py @@ -12,7 +12,7 @@ import time import uuid import logging import glob -from RunTier0TestsTools import ciRefFileMap +from PROCTools.RunTier0TestsTools import ciRefFileMap ### Setup global logging logging.basicConfig(level=logging.INFO, -- GitLab From 8f2468ba06db275a23f90c38b8b3c6204461970d Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 24 Jan 2019 01:08:03 +0100 Subject: [PATCH 088/192] TrigEgammaEmulationTool: TAccept->AcceptData. Migrate from TAccept to AcceptData for MT compatibility. --- .../Root/TrigEgammaEmulationTool.cxx | 92 +++++++++---------- .../ITrigEgammaEmulationTool.h | 9 +- .../ITrigEgammaSelectorBaseTool.h | 1 - .../TrigEgammaEmulationTool.h | 31 ++++--- .../TrigEgammaSelectorBaseTool.h | 7 +- .../src/TrigEgammaEmulationToolAlg.cxx | 1 - .../src/TrigEgammaEmulationToolAlg.h | 8 +- .../src/TrigEgammaEmulationToolTest.cxx | 84 ++++++++--------- .../src/TrigEgammaEmulationToolTest.h | 14 +-- 9 files changed, 123 insertions(+), 124 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx index 89b578b6434c..ada6347b3556 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx @@ -153,7 +153,7 @@ StatusCode TrigEgammaEmulationTool::initialize() { } ATH_MSG_INFO("Initialising accept..."); - //add cuts into TAccept + //add cuts into AcceptInfo m_accept.addCut("L1Calo" , "Trigger L1Calo step" ); m_accept.addCut("L2Calo" , "Trigger L2Calo step" ); m_accept.addCut("L2" , "Trigger L2Electron step" ); @@ -289,10 +289,10 @@ bool TrigEgammaEmulationTool::EventWiseContainer(){ } //!========================================================================== //! Emulation from Trigger Element -const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) { +asg::AcceptData TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) { ATH_MSG_DEBUG("TrigEgammaEmulationTool::executeTool(te, trigger)"); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); if(m_trigInfo.count(trigger) != 0){ @@ -311,7 +311,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem const auto* l1 = getFeature<xAOD::EmTauRoI>(te_external); if(!l1){ ATH_MSG_WARNING("Can not retrieve the support element because the current TE does not has xAOD::EmTauRoI object!"); - return m_accept; + return acceptData; } // This object is not fully completed, try to found other. for (const auto &fctrigger : m_supportingTrigList){ @@ -347,7 +347,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem ATH_MSG_WARNING("This Trigger Element does not have all features needed by the emulation tool. The external match is " << " not possible! Maybe the support trigger list not attend all requirements."); setTEMatched(nullptr); - return m_accept; + return acceptData; } } @@ -369,47 +369,47 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem //Level 1 m_l1Selector->emulation( l1, passedL1Calo , info); - m_accept.setCutResult("L1Calo", passedL1Calo); + acceptData.setCutResult("L1Calo", passedL1Calo); if( (passedL1Calo ) && !info.isL1 ){ m_l2Selector->emulation( emCluster, passedL2Calo , info); - m_accept.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2Calo", passedL2Calo); if(passedL2Calo ){ if(info.perf){//bypass L2 Electron/Photon Level passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); }else{ if (info.type == "electron") { if(m_doL2ElectronFex) m_l2Selector->emulation( trigElCont, passedL2, info); else passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } else if (info.type == "photon") { //m_l2Selector->emulation( trigPhCont, passedL2, trigger); //m_efPhotonSelector->emulation( phCont, passedEF, trigger); passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } }//bypass L2 if (passedL2){ m_efCaloSelector->emulation( elCont, passedEFCalo, info); - m_accept.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("EFCalo", passedEFCalo); if(passedEFCalo){ passedEFTrack=true; - m_accept.setCutResult("EFTrack" , passedEFTrack); + acceptData.setCutResult("EFTrack" , passedEFTrack); if(passedEFTrack){ if(!emulationHLT(elCont, passedHLT, info)){ - m_accept.clear(); - return m_accept; + acceptData.clear(); + return acceptData; }else{ - m_accept.setCutResult("HLT" , passedHLT); + acceptData.setCutResult("HLT" , passedHLT); } }//EFTrack }//EFCalo @@ -420,13 +420,13 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem ATH_MSG_WARNING("Can not emulate " << trigger << ". This chain must be added into trigList before the creation."); } - return m_accept; + return acceptData; } //!========================================================================== //! Emulation from xAOD containers not using TDT tools -const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &trigger) { +asg::AcceptData TrigEgammaEmulationTool::executeTool(const std::string &trigger) { clearDecorations(); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); if( m_trigInfo.count(trigger) != 0){ Trig::Info info = getTrigInfo(trigger); @@ -448,7 +448,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri bit++; } if(bitL1Accept.count()>0) passedL1Calo=true; - m_accept.setCutResult("L1Calo", passedL1Calo); + acceptData.setCutResult("L1Calo", passedL1Calo); if(passedL1Calo && !info.isL1){ bit=0; pass=false; @@ -460,44 +460,44 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri } if(bitL2CaloAccept.count()>0) passedL2Calo=true; - m_accept.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2Calo", passedL2Calo); if(passedL2Calo) { if(info.perf){//bypass L2 Electron/Photon Level passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); }else{ if (info.type == "electron") { if(m_doL2ElectronFex) m_l2Selector->emulation(m_trigElectrons, passedL2, info); else passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } else if (info.type == "photon") { //m_l2Selector->emulation( trigPhCont, passedL2, trigger); //m_efPhotonSelector->emulation( phCont, passedEF, trigger); passedL2=true; - m_accept.setCutResult("L2", passedL2); + acceptData.setCutResult("L2", passedL2); } }//bypass L2 if (passedL2){ m_efCaloSelector->emulation(m_onlElectrons, passedEFCalo, info); - m_accept.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("EFCalo", passedEFCalo); if(passedEFCalo){ //TODO: running the EF track step passedEFTrack=true; - m_accept.setCutResult("EFTrack", passedEFTrack); + acceptData.setCutResult("EFTrack", passedEFTrack); if(passedEFTrack){ if(!emulationHLT(m_onlElectrons, passedHLT, info)){ - m_accept.clear(); - return m_accept; + acceptData.clear(); + return acceptData; }else{ - m_accept.setCutResult("HLT" , passedHLT); + acceptData.setCutResult("HLT" , passedHLT); } }//EFTrack @@ -508,27 +508,25 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri }else{ ATH_MSG_WARNING("Can not emulate. Trigger not configurated"); } - return m_accept; + return acceptData; } //!========================================================================== bool TrigEgammaEmulationTool::isPassed(const std::string &trigger) { - m_accept.clear(); - m_accept = executeTool(trigger); + asg::AcceptData acceptData = executeTool(trigger); ATH_MSG_DEBUG("Trigger = "<< trigger ); - ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1")); - ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo")); - ATH_MSG_DEBUG("isPassed()::L2 = " << m_accept.getCutResult("L2")); - ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo")); - ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack")); - ATH_MSG_DEBUG("isPassed()::HLT = " << m_accept.getCutResult("HLT")); - return m_accept.getCutResult("HLT"); + ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1")); + ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo")); + ATH_MSG_DEBUG("isPassed()::L2 = " << acceptData.getCutResult("L2")); + ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo")); + ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack")); + ATH_MSG_DEBUG("isPassed()::HLT = " << acceptData.getCutResult("HLT")); + return acceptData.getCutResult("HLT"); } //!========================================================================== bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::string &fctrigger) { - m_accept.clear(); const HLT::TriggerElement *finalFC = NULL; auto fc = m_trigdec->features(fctrigger, TrigDefs::alsoDeactivateTEs); auto vec = fc.get<xAOD::ElectronContainer>(); @@ -539,14 +537,14 @@ bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::st bit++; finalFC = feat.te(); if (!finalFC) continue; - m_accept = executeTool(finalFC, trigger); - if(m_accept.getCutResult("HLT")) bitAccept.set(bit-1,true); - ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1")); - ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo")); - ATH_MSG_DEBUG("isPassed()::L2 = " << m_accept.getCutResult("L2")); - ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo")); - ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack")); - ATH_MSG_DEBUG("isPassed()::HLT = " << m_accept.getCutResult("HLT")); + asg::AcceptData acceptData = executeTool(finalFC, trigger); + if(acceptData.getCutResult("HLT")) bitAccept.set(bit-1,true); + ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1")); + ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo")); + ATH_MSG_DEBUG("isPassed()::L2 = " << acceptData.getCutResult("L2")); + ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo")); + ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack")); + ATH_MSG_DEBUG("isPassed()::HLT = " << acceptData.getCutResult("HLT")); } bool pass=false; if(bitAccept.count()>0) pass=true; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h index a77d0fc14f14..33c6287e062b 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h @@ -26,7 +26,8 @@ #include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "xAODTrigger/EmTauRoIContainer.h" #include "TrigDecisionTool/TrigDecisionTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include <vector> #include <map> @@ -42,11 +43,11 @@ namespace Trig{ virtual bool EventWiseContainer()=0; - virtual const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string & )=0; - virtual const Root::TAccept& executeTool( const std::string & )=0; + virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string & )=0; + virtual asg::AcceptData executeTool( const std::string & )=0; virtual bool isPassed(const std::string&)=0; virtual bool isPassed(const std::string&, const std::string&)=0; - virtual const Root::TAccept& getAccept()=0; + virtual const asg::AcceptInfo& getAccept() const =0; /* Experimental methods */ virtual void ExperimentalAndExpertMethods()=0; virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&)=0; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h index d2b196d82e32..295ede74a2fc 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h @@ -7,7 +7,6 @@ #define ITrigEgammaSelectorBaseTool_H_ #include "AsgTools/IAsgTool.h" -#include "PATCore/TAccept.h" #include "TrigDecisionTool/TrigDecisionTool.h" //xAOD include(s) diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h index 9ffb70e1451d..5b7432c13378 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h @@ -9,7 +9,8 @@ #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h" #include "TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h" #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include "AthContainers/AuxElement.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" @@ -39,27 +40,27 @@ class TrigEgammaEmulationTool //****************************************************************************** TrigEgammaEmulationTool(const std::string& myname); - ~TrigEgammaEmulationTool() {}; + virtual ~TrigEgammaEmulationTool() {}; - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; //execute all emulators - const Root::TAccept& executeTool( const std::string &); - const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string &); - const Root::TAccept& getAccept(){return m_accept;} + virtual asg::AcceptData executeTool( const std::string &) override; + virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string &) override; + virtual const asg::AcceptInfo& getAccept() const override {return m_accept;} - bool EventWiseContainer(); - bool isPassed(const std::string&); - bool isPassed(const std::string&, const std::string&); + virtual bool EventWiseContainer() override; + virtual bool isPassed(const std::string&) override; + virtual bool isPassed(const std::string&, const std::string&) override; /* Experimental methods */ - void ExperimentalAndExpertMethods(){m_experimentalAndExpertMethods=true;}; + virtual void ExperimentalAndExpertMethods() override {m_experimentalAndExpertMethods=true;}; - void match( const xAOD::Egamma *, const HLT::TriggerElement *&); - const HLT::TriggerElement* getTEMatched(){return m_teMatched;}; + virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&) override; + virtual const HLT::TriggerElement* getTEMatched() override {return m_teMatched;}; private: @@ -93,7 +94,7 @@ class TrigEgammaEmulationTool std::vector<std::string> m_supportingTrigList; std::map<std::string, Trig::Info> m_trigInfo; - Root::TAccept m_accept; + asg::AcceptInfo m_accept; StoreGateSvc *m_storeGate; ToolHandle<Trig::TrigDecisionTool> m_trigdec; ToolHandle<Trig::ITrigEgammaMatchingTool> m_matchTool; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h index a5869fb8499e..e4cac53267ce 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h @@ -8,7 +8,6 @@ #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "LumiBlockComps/ILumiBlockMuTool.h" #include "LumiBlockComps/ILuminosityTool.h" @@ -44,10 +43,10 @@ namespace Trig{ //using ITrigEgammaSelectorBaseTool::emulation; TrigEgammaSelectorBaseTool(const std::string& myname); - ~TrigEgammaSelectorBaseTool(){;} + virtual ~TrigEgammaSelectorBaseTool(){;} - StatusCode initialize(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; //FIXME: static_cast for IParticleContainer to EmTau and emCluster //doent work. Because this I add these extra methods. Need to check diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx index 3fe7bbac7468..e0600fe97ede 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx @@ -11,7 +11,6 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODEgamma/ElectronContainer.h" #include "xAODEgamma/PhotonContainer.h" -#include "PATCore/TAccept.h" namespace Trig { TrigEgammaEmulationToolAlg:: diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h index e612fab00e7e..21905462a781 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h @@ -19,10 +19,10 @@ namespace Trig { class TrigEgammaEmulationToolAlg : public AthAlgorithm { public: TrigEgammaEmulationToolAlg(const std::string& name, ISvcLocator* pSvcLocator); - ~TrigEgammaEmulationToolAlg(); - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual ~TrigEgammaEmulationToolAlg(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: // std::vector<std::string> m_triggerList; diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx index 5a95b72e5f4a..fbb1ce39d94f 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx @@ -13,7 +13,6 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODEgamma/ElectronContainer.h" #include "xAODEgamma/PhotonContainer.h" -#include "PATCore/TAccept.h" using std::string; //********************************************************************** @@ -118,23 +117,23 @@ StatusCode TrigEgammaEmulationToolTest::Method1() { ATH_MSG_DEBUG("TE is nullptr"); continue; } - setAccept(finalFC); + asg::AcceptData acceptData = setAccept(finalFC); count("Method1__total__"+trigger); - if(m_accept.getCutResult("L1Calo")) count("Method1__TDT__L1Calo__" +trigger); - if(m_accept.getCutResult("L2Calo")) count("Method1__TDT__L2Calo__" +trigger); - if(m_accept.getCutResult("L2")) count("Method1__TDT__L2__" +trigger); - if(m_accept.getCutResult("EFTrack")) count("Method1__TDT__EFTrack__"+trigger); - if(m_accept.getCutResult("EFCalo")) count("Method1__TDT__EFCalo__" +trigger); - if(m_accept.getCutResult("HLT")) count("Method1__TDT__HLT__" +trigger); - - Root::TAccept accept = m_emulationTool->executeTool(finalFC, trigger); - if(accept.getCutResult("L1Calo")) count("Method1__EMU__L1Calo__" +trigger); - if(accept.getCutResult("L2Calo")) count("Method1__EMU__L2Calo__" +trigger); - if(accept.getCutResult("L2")) count("Method1__EMU__L2__" +trigger); - if(accept.getCutResult("EFTrack")) count("Method1__EMU__EFTrack__"+trigger); - if(accept.getCutResult("EFCalo")) count("Method1__EMU__EFCalo__" +trigger); - if(accept.getCutResult("HLT")) count("Method1__EMU__HLT__" +trigger); + if(acceptData.getCutResult("L1Calo")) count("Method1__TDT__L1Calo__" +trigger); + if(acceptData.getCutResult("L2Calo")) count("Method1__TDT__L2Calo__" +trigger); + if(acceptData.getCutResult("L2")) count("Method1__TDT__L2__" +trigger); + if(acceptData.getCutResult("EFTrack")) count("Method1__TDT__EFTrack__"+trigger); + if(acceptData.getCutResult("EFCalo")) count("Method1__TDT__EFCalo__" +trigger); + if(acceptData.getCutResult("HLT")) count("Method1__TDT__HLT__" +trigger); + + asg::AcceptData accept2 = m_emulationTool->executeTool(finalFC, trigger); + if(accept2.getCutResult("L1Calo")) count("Method1__EMU__L1Calo__" +trigger); + if(accept2.getCutResult("L2Calo")) count("Method1__EMU__L2Calo__" +trigger); + if(accept2.getCutResult("L2")) count("Method1__EMU__L2__" +trigger); + if(accept2.getCutResult("EFTrack")) count("Method1__EMU__EFTrack__"+trigger); + if(accept2.getCutResult("EFCalo")) count("Method1__EMU__EFCalo__" +trigger); + if(accept2.getCutResult("HLT")) count("Method1__EMU__HLT__" +trigger); }// loop over electrons offline }// loop over triggers @@ -156,22 +155,22 @@ StatusCode TrigEgammaEmulationToolTest::Method2() { continue; } - setAccept(finalFC); + asg::AcceptData acceptData = setAccept(finalFC); count("Method2__total__"+trigger); - if(m_accept.getCutResult("L1Calo")) count("Method2__TDT__L1Calo__" +trigger); - if(m_accept.getCutResult("L2Calo")) count("Method2__TDT__L2Calo__" +trigger); - if(m_accept.getCutResult("L2")) count("Method2__TDT__L2__" +trigger); - if(m_accept.getCutResult("EFTrack")) count("Method2__TDT__EFTrack__"+trigger); - if(m_accept.getCutResult("EFCalo")) count("Method2__TDT__EFCalo__" +trigger); - if(m_accept.getCutResult("HLT")) count("Method2__TDT__HLT__" +trigger); - - Root::TAccept accept = m_emulationTool->executeTool(trigger); - if(accept.getCutResult("L1Calo")) count("Method2__EMU__L1Calo__" +trigger); - if(accept.getCutResult("L2Calo")) count("Method2__EMU__L2Calo__" +trigger); - if(accept.getCutResult("L2")) count("Method2__EMU__L2__" +trigger); - if(accept.getCutResult("EFTrack")) count("Method2__EMU__EFTrack__"+trigger); - if(accept.getCutResult("EFCalo")) count("Method2__EMU__EFCalo__" +trigger); - if(accept.getCutResult("HLT")) count("Method2__EMU__HLT__" +trigger); + if(acceptData.getCutResult("L1Calo")) count("Method2__TDT__L1Calo__" +trigger); + if(acceptData.getCutResult("L2Calo")) count("Method2__TDT__L2Calo__" +trigger); + if(acceptData.getCutResult("L2")) count("Method2__TDT__L2__" +trigger); + if(acceptData.getCutResult("EFTrack")) count("Method2__TDT__EFTrack__"+trigger); + if(acceptData.getCutResult("EFCalo")) count("Method2__TDT__EFCalo__" +trigger); + if(acceptData.getCutResult("HLT")) count("Method2__TDT__HLT__" +trigger); + + asg::AcceptData accept2 = m_emulationTool->executeTool(trigger); + if(accept2.getCutResult("L1Calo")) count("Method2__EMU__L1Calo__" +trigger); + if(accept2.getCutResult("L2Calo")) count("Method2__EMU__L2Calo__" +trigger); + if(accept2.getCutResult("L2")) count("Method2__EMU__L2__" +trigger); + if(accept2.getCutResult("EFTrack")) count("Method2__EMU__EFTrack__"+trigger); + if(accept2.getCutResult("EFCalo")) count("Method2__EMU__EFCalo__" +trigger); + if(accept2.getCutResult("HLT")) count("Method2__EMU__HLT__" +trigger); } } @@ -213,11 +212,12 @@ void TrigEgammaEmulationToolTest::writeEmulationSummary(){ } -bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC){ - m_accept.clear(); - +asg::AcceptData +TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC) +{ + asg::AcceptData acceptData (&m_accept); if(!finalFC) - return false; + return acceptData; bool passedL1 = false; bool passedL2Calo = false; @@ -254,14 +254,14 @@ bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC) if( m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te() != nullptr ) passedHLT=m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te()->getActiveState(); - m_accept.setCutResult("L1Calo", passedL1); - m_accept.setCutResult("L2Calo", passedL2Calo); - m_accept.setCutResult("L2", passedL2); - m_accept.setCutResult("EFTrack", passedEFTrack); - m_accept.setCutResult("EFCalo", passedEFCalo); - m_accept.setCutResult("HLT", passedHLT); + acceptData.setCutResult("L1Calo", passedL1); + acceptData.setCutResult("L2Calo", passedL2Calo); + acceptData.setCutResult("L2", passedL2); + acceptData.setCutResult("EFTrack", passedEFTrack); + acceptData.setCutResult("EFCalo", passedEFCalo); + acceptData.setCutResult("HLT", passedHLT); - return true; + return acceptData; } }///namespace diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h index 903832077a1d..deb1fd59d7a4 100644 --- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h +++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h @@ -14,6 +14,8 @@ #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h" #include "xAODEgamma/ElectronContainer.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include <string> #include <map> @@ -29,12 +31,12 @@ namespace Trig{ TrigEgammaEmulationToolTest(const std::string& name, ISvcLocator* pSvcLocator); /// Destructor: - ~TrigEgammaEmulationToolTest(); + virtual ~TrigEgammaEmulationToolTest(); /// Athena algorithm's Hooks - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: @@ -43,7 +45,7 @@ namespace Trig{ StatusCode Method1(); StatusCode Method2(); void writeEmulationSummary(); - bool setAccept(const HLT::TriggerElement*); + asg::AcceptData setAccept(const HLT::TriggerElement*); float ratio(float,float); @@ -66,7 +68,7 @@ namespace Trig{ std::map<std::string, unsigned >m_countMap; std::vector<std::string> m_triggerList; StoreGateSvc *m_storeGate; - Root::TAccept m_accept; + asg::AcceptInfo m_accept; const xAOD::ElectronContainer *m_offElectrons; -- GitLab From e8c7dd115a7d9cf81dcb1d06fa7fae5ad77017a3 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 24 Jan 2019 00:34:27 +0100 Subject: [PATCH 089/192] TrigEgammaAnalysisTools: TAccept->AcceptData Migrate from TAccept to AcceptData, for MT compatibility. --- .../Root/EfficiencyTool.cxx | 63 ++++++++++--------- .../Root/TrigEgammaAnalysisBaseTool.cxx | 20 +++--- .../Root/TrigEgammaNavNtuple.cxx | 14 ++--- .../Root/TrigEgammaNavTPAnalysisTool.cxx | 24 +++---- .../Root/TrigEgammaNavTPNtuple.cxx | 14 ++--- .../TrigEgammaAnalysisTools/EfficiencyTool.h | 8 ++- .../TrigEgammaAnalysisBaseTool.h | 42 ++++++------- 7 files changed, 96 insertions(+), 89 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx index 9c089e3231cd..073cef0276a1 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -153,7 +153,8 @@ bool EfficiencyTool::analyseIsEM(const xAOD::Electron *eg, const std::string pid return failisem; } -void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk) +void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk, + const asg::AcceptData& acceptData) { cd(dir); ATH_MSG_DEBUG("REGTEST::Inefficiency"); @@ -192,23 +193,23 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string float lastbin = hist1(ineff)->GetNbinsX() - 0.5; float sumbin = lastbin - 1; - if (!getAccept().getCutResult("L2Calo")) { + if (!acceptData.getCutResult("L2Calo")) { hist1(ineff)->Fill(0.5, 1); hist1(ineff)->Fill(sumbin, 1); } - else if (!getAccept().getCutResult("L2")) { + else if (!acceptData.getCutResult("L2")) { hist1(ineff)->Fill(1.5, 1); hist1(ineff)->Fill(sumbin, 1); } - else if (!getAccept().getCutResult("EFCalo")) { + else if (!acceptData.getCutResult("EFCalo")) { hist1(ineff)->Fill(2.5, 1); hist1(ineff)->Fill(sumbin, 1); } - // else if (!getAccept().getCutResult("EFTrack")) { + // else if (!acceptData.getCutResult("EFTrack")) { // hist1(ineff)->Fill(3.5, 1); // hist1(ineff)->Fill(13.5, 1); // } - else if (!getAccept().getCutResult("HLT")) { + else if (!acceptData.getCutResult("HLT")) { if (reco.test(0)) { if (boost::contains(pid, "LH")) failbits = analyseIsEMLH(selEF, pid); else failbits = analyseIsEM(selEF, pid); @@ -297,7 +298,8 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string } void EfficiencyTool::inefficiency(const std::string& pid, const std::string basePath,const float etthr, - std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj) + std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj, + const asg::AcceptData& acceptData) { ATH_MSG_DEBUG("INEFF::Start Inefficiency Analysis ======================= " << basePath); cd(basePath); @@ -327,17 +329,17 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base const std::string ineff = "Ineff" + pidword; // Ensure L1 passes and offline passes et cut - if(getAccept().getCutResult("L1Calo") && et > etthr) { + if(acceptData.getCutResult("L1Calo") && et > etthr) { ATH_MSG_DEBUG("INEFF::Passed L1 and offline et"); - hist1("eff_triggerstep")->Fill("L2Calo",getAccept().getCutResult("L2Calo")); - hist1("eff_triggerstep")->Fill("L2",getAccept().getCutResult("L2")); - hist1("eff_triggerstep")->Fill("EFCalo",getAccept().getCutResult("EFCalo")); - hist1("eff_triggerstep")->Fill("EFTrack",getAccept().getCutResult("EFTrack")); - hist1("eff_triggerstep")->Fill("HLT",getAccept().getCutResult("HLT")); + hist1("eff_triggerstep")->Fill("L2Calo",acceptData.getCutResult("L2Calo")); + hist1("eff_triggerstep")->Fill("L2",acceptData.getCutResult("L2")); + hist1("eff_triggerstep")->Fill("EFCalo",acceptData.getCutResult("EFCalo")); + hist1("eff_triggerstep")->Fill("EFTrack",acceptData.getCutResult("EFTrack")); + hist1("eff_triggerstep")->Fill("HLT",acceptData.getCutResult("HLT")); // Fill efficiency plot for HLT trigger steps - if(!getAccept().getCutResult("HLT")/* || !getAccept().getCutResult("EFTrack")*/ || !getAccept().getCutResult("EFCalo") || - !getAccept().getCutResult("L2") || !getAccept().getCutResult("L2Calo")) { + if(!acceptData.getCutResult("HLT")/* || !acceptData.getCutResult("EFTrack")*/ || !acceptData.getCutResult("EFCalo") || + !acceptData.getCutResult("L2") || !acceptData.getCutResult("L2Calo")) { ATH_MSG_DEBUG("INEFF::Retrieve features for EF containers only "); ATH_MSG_DEBUG("INEFF::Retrieve EF Electron"); const auto* EFEl = getFeature<xAOD::ElectronContainer>(feat); @@ -356,7 +358,7 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base selPh = closestObject<xAOD::Photon,xAOD::PhotonContainer>(pairObj, dRmax, false); selClus = closestObject<xAOD::CaloCluster,xAOD::CaloClusterContainer>(pairObj, dRmax, false,"TrigEFCaloCalibFex"); selTrk = closestObject<xAOD::TrackParticle,xAOD::TrackParticleContainer>(pairObj, dRmax, false, "InDetTrigTrackingxAODCnv_Electron_IDTrig"); - fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk); + fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk, acceptData); if (EFClus == nullptr){ hist1("eff_hltreco")->Fill("ClusterCont", 0); hist1("eff_hltreco")->Fill("Cluster", 0); @@ -578,11 +580,12 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo // ialg = 0 is decision from TDT tool (Efficency dir) [default] // ialg = 1 is decision from emulator tool (Emulation dir) + asg::AcceptData acceptData (&getAccept()); if(ialg==0){ - setAccept(pairObj.second,info); //Sets the trigger accepts + acceptData = setAccept(pairObj.second,info); //Sets the trigger accepts }else{// ialg==1 ATH_MSG_DEBUG("Fill efficiency from Emulation tool"); - setAccept(emulation()->executeTool(pairObj.second, info.trigName)); + acceptData = emulation()->executeTool(pairObj.second, info.trigName); } if (pairObj.second!=nullptr) { @@ -590,30 +593,30 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo if(!info.trigL1){ if(pairObj.first->type()==xAOD::Type::Electron){ if(pairObj.first->auxdecor<bool>(pidword)){ - inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj); + inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj, acceptData); } } } } // Features if(info.trigL1) - this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first); else { - this->fillEfficiency(dir+"/"+algname+"/HLT",getAccept().getCutResult("HLT"),etthr,pidword,pairObj.first); - this->fillEfficiency(dir+"/"+algname+"/L2Calo",getAccept().getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/L2",getAccept().getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/EFCalo",getAccept().getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists); - this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT",acceptData.getCutResult("HLT"),etthr,pidword,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/L2Calo",acceptData.getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/L2",acceptData.getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/EFCalo",acceptData.getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists); + this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first); if(m_detailedHists){ for(const auto pid : m_isemname) { - this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso", - getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); } for(const auto pid : m_lhname) { - this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso", - getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first); + acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first); } } ATH_MSG_DEBUG("Complete efficiency"); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx index 1d7145df0c82..fcd2a4aee400 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -555,9 +555,10 @@ bool TrigEgammaAnalysisBaseTool::isPrescaled(const std::string trigger){ return false; // Not prescaled, use event } -void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){ +asg::AcceptData +TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){ ATH_MSG_DEBUG("setAccept"); - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); bool passedL1Calo=false; bool passedL2Calo=false; bool passedEFCalo=false; @@ -599,12 +600,12 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T } } - m_accept.setCutResult("L1Calo",passedL1Calo); - m_accept.setCutResult("L2Calo",passedL2Calo); - m_accept.setCutResult("L2",passedL2); - m_accept.setCutResult("EFCalo",passedEFCalo); - m_accept.setCutResult("EFTrack",passedEFTrk); - m_accept.setCutResult("HLT",passedEF); + acceptData.setCutResult("L1Calo",passedL1Calo); + acceptData.setCutResult("L2Calo",passedL2Calo); + acceptData.setCutResult("L2",passedL2); + acceptData.setCutResult("EFCalo",passedEFCalo); + acceptData.setCutResult("EFTrack",passedEFTrk); + acceptData.setCutResult("HLT",passedEF); ATH_MSG_DEBUG("Accept results:"); ATH_MSG_DEBUG("L1: "<< passedL1Calo); ATH_MSG_DEBUG("L2Calo: " << passedL2Calo); @@ -612,6 +613,7 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T ATH_MSG_DEBUG("EFCalo: "<< passedEFCalo); ATH_MSG_DEBUG("HLT: "<<passedEF); + return acceptData; } float TrigEgammaAnalysisBaseTool::dR(const float eta1, const float phi1, const float eta2, const float phi2){ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx index 001ab83e4c40..a15b46ae1485 100755 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -316,12 +316,12 @@ bool TrigEgammaNavNtuple::executeTrigItemDump(){ }// loop over calo cluster } - setAccept(feat,info); - m_trig_L1_accept = getAccept().getCutResult("L1Calo"); - m_trig_L2_calo_accept = getAccept().getCutResult("L2Calo"); - m_trig_L2_el_accept = getAccept().getCutResult("L2"); - m_trig_EF_calo_accept = getAccept().getCutResult("EFCalo"); - m_trig_EF_el_accept = getAccept().getCutResult("HLT"); + asg::AcceptData acceptData = setAccept(feat,info); + m_trig_L1_accept = acceptData.getCutResult("L1Calo"); + m_trig_L2_calo_accept = acceptData.getCutResult("L2Calo"); + m_trig_L2_el_accept = acceptData.getCutResult("L2"); + m_trig_EF_calo_accept = acceptData.getCutResult("EFCalo"); + m_trig_EF_el_accept = acceptData.getCutResult("HLT"); ATH_MSG_DEBUG("L1Calo: " << int(m_trig_L1_accept)); ATH_MSG_DEBUG("L2Calo: " << int(m_trig_L2_calo_accept)); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx index 50d2e171e123..57a1a2058f76 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -183,30 +183,30 @@ StatusCode TrigEgammaNavTPAnalysisTool::childExecute() if(et < info.trigThrHLT-5.0) continue; if(!offEl->auxdecor<bool>(info.trigPidDecorator)) continue; const HLT::TriggerElement* feat = m_pairObj[i].second; - setAccept(feat,info); //Sets the trigger accepts + asg::AcceptData acceptData = setAccept(feat,info); //Sets the trigger accepts cd(m_dir+"/Expert/Event"); if(et > info.trigThrHLT + 1.0) hist1(m_anatype+"_nProbes")->Fill(cprobeTrigger,1); if ( feat ) { if(et > info.trigThrHLT + 1.0){ - hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,getAccept().getCutResult("L1Calo")); - hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,getAccept().getCutResult("L2Calo")); - hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,getAccept().getCutResult("L2")); - hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,getAccept().getCutResult("EFCalo")); - hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,getAccept().getCutResult("HLT")); - if( getAccept().getCutResult("L1Calo")){ + hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,acceptData.getCutResult("L1Calo")); + hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,acceptData.getCutResult("L2Calo")); + hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,acceptData.getCutResult("L2")); + hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,acceptData.getCutResult("EFCalo")); + hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,acceptData.getCutResult("HLT")); + if( acceptData.getCutResult("L1Calo")){ hist1(m_anatype+"_nProbesL1")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("L2Calo") ){ + if( acceptData.getCutResult("L2Calo") ){ hist1(m_anatype+"_nProbesL2Calo")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("L2") ){ + if( acceptData.getCutResult("L2") ){ hist1(m_anatype+"_nProbesL2")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("EFCalo") ){ + if( acceptData.getCutResult("EFCalo") ){ hist1(m_anatype+"_nProbesEFCalo")->Fill(cprobeTrigger,1); } - if( getAccept().getCutResult("HLT") ){ + if( acceptData.getCutResult("HLT") ){ hist1(m_anatype+"_nProbesHLT")->Fill(cprobeTrigger,1); } } diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx index 62484f0cc05d..680e786f42f3 100755 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /********************************************************************** @@ -243,12 +243,12 @@ bool TrigEgammaNavTPNtuple::executeProbesItemDump(){ } - setAccept(feat,info); - m_trig_L1_accept = getAccept().getCutResult("L1Calo"); - m_trig_L2_calo_accept = getAccept().getCutResult("L2Calo"); - m_trig_L2_el_accept = getAccept().getCutResult("L2"); - m_trig_EF_calo_accept = getAccept().getCutResult("EFCalo"); - m_trig_EF_el_accept = getAccept().getCutResult("HLT"); + asg::AcceptData acceptData = setAccept(feat,info); + m_trig_L1_accept = acceptData.getCutResult("L1Calo"); + m_trig_L2_calo_accept = acceptData.getCutResult("L2Calo"); + m_trig_L2_el_accept = acceptData.getCutResult("L2"); + m_trig_EF_calo_accept = acceptData.getCutResult("EFCalo"); + m_trig_EF_el_accept = acceptData.getCutResult("HLT"); ATH_MSG_DEBUG("L1Calo: " << int(m_trig_L1_accept)); ATH_MSG_DEBUG("L2Calo: " << int(m_trig_L2_calo_accept)); diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h index 43d144192939..14a3a4a0c26c 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef EfficiencyTool_H @@ -30,8 +30,10 @@ private: protected: void fillEfficiency(const std::string,bool,const float,const std::string,const xAOD::Egamma *,bool fill2D=true); - void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj); - void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *); + void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj, + const asg::AcceptData& acceptData); + void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *, + const asg::AcceptData& acceptData); bool analyseIsEM(const xAOD::Electron *,const std::string); bool analyseIsEMLH(const xAOD::Electron *,const std::string/*,const std::bitset<4>*/); /*! Include more detailed histograms */ diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h index c6abee3996dc..5a67bcefb1e4 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TrigEgammaAnalysisBaseTool_H @@ -7,7 +7,8 @@ #include "TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h" #include "AsgTools/AsgTool.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" #include "TrigDecisionTool/TrigDecisionTool.h" #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h" #include "TrigEgammaAnalysisTools/ITrigEgammaPlotTool.h" @@ -49,12 +50,12 @@ ASG_TOOL_CLASS(TrigEgammaAnalysisBaseTool, ITrigEgammaAnalysisBaseTool) public: TrigEgammaAnalysisBaseTool( const std::string& myname); - ~TrigEgammaAnalysisBaseTool() {}; + virtual ~TrigEgammaAnalysisBaseTool() {}; - StatusCode initialize(); - StatusCode book(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode book() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; template<class T, class B> std::unique_ptr<xAOD::TrigPassBits> createBits(const T* CONT, const B* BITS); template<class T> std::unique_ptr<xAOD::TrigPassBits> getBits(const HLT::TriggerElement* te,const T* CONT); template<class T> const T* getFeature(const HLT::TriggerElement* te,const std::string key=""); @@ -62,14 +63,14 @@ public: template <class T1, class T2> const T1* closestObject(const std::pair<const xAOD::Egamma *, const HLT::TriggerElement *>, float &, bool usePassbits=true,const std::string key=""); // Interface class methods needed to pass information to additional tools or to set common tools - void setParent(IHLTMonTool *parent){ m_parent = parent;}; - void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool){m_plot=tool;} - void setDetail(bool detail){m_detailedHists=detail;} - void setTP(bool tp){m_tp=tp;} - void setEmulation(bool doEmu){m_doEmulation=doEmu;} - void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool){m_emulationTool=tool;} - void setPVertex(const float onvertex, const float ngoodvertex){m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;} - void setAvgMu(const float onlmu, const float offmu){m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools + virtual void setParent(IHLTMonTool *parent) override { m_parent = parent;}; + virtual void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool) override {m_plot=tool;} + virtual void setDetail(bool detail) override {m_detailedHists=detail;} + virtual void setTP(bool tp) override {m_tp=tp;} + virtual void setEmulation(bool doEmu) override {m_doEmulation=doEmu;} + virtual void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool) override {m_emulationTool=tool;} + virtual void setPVertex(const float onvertex, const float ngoodvertex) override {m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;} + virtual void setAvgMu(const float onlmu, const float offmu) override {m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools // Set current MonGroup void cd(const std::string &dir); @@ -100,8 +101,8 @@ private: std::map<std::string,TrigInfo> m_trigInfo; /*! Include more detailed histograms */ bool m_detailedHists; - /*! TAccept to store TrigDecision */ - Root::TAccept m_accept; + /*! AcceptInfo to store TrigDecision */ + asg::AcceptInfo m_accept; /*! Helper strings for trigger level analysis */ static const std::vector<std::string> m_trigLevel; static const std::map<std::string,std::string> m_trigLvlMap; @@ -189,10 +190,9 @@ protected: bool getTP() const {return m_tp;} bool getEmulation() const {return m_doEmulation;} - // TAccept - Root::TAccept getAccept(){return m_accept;} - void setAccept(Root::TAccept accept){m_accept=accept;} - void setAccept(const HLT::TriggerElement *,const TrigInfo); + // AcceptInfo/Data + const asg::AcceptInfo& getAccept() const {return m_accept;} + asg::AcceptData setAccept(const HLT::TriggerElement *,const TrigInfo); //Class Members // Athena services -- GitLab From 1f5bb0f1f9d3c912f7f1aa16d2ef07dc41fae334 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Thu, 24 Jan 2019 17:44:42 +0100 Subject: [PATCH 090/192] added functions to configure from chainDict - for menu integration --- .../TrigMuonHypo/CMakeLists.txt | 3 + .../python/testTrigMuonHypoConfig.py | 261 +++++++++--------- .../HLTMenuConfig/Menu/SignatureDicts.py | 2 +- 3 files changed, 141 insertions(+), 125 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt b/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt index 9b8d1c9d9f44..a0f038d21caa 100644 --- a/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt +++ b/Trigger/TrigHypothesis/TrigMuonHypo/CMakeLists.txt @@ -39,6 +39,9 @@ atlas_add_component( TrigMuonHypo INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} LINK_LIBRARIES ${CLHEP_LIBRARIES} xAODTrigMuon MuonIdHelpersLib MuonRecHelperToolsLib TrigInDetEvent TrigMuonEvent TrigSteeringEvent TrigInterfacesLib DecisionHandling AthViews xAODMuon xAODTracking GaudiKernel MuonSegment MuonSegmentMakerUtils TrigConfHLTData TrigT1Interfaces TrigT1Result ) +atlas_add_test( TrigMuonHypoConfig SCRIPT python -m TrigMuonHypo.testTrigMuonHypoConfig + POST_EXEC_SCRIPT nopost.sh ) + # Install files from the package: atlas_install_headers( TrigMuonHypo ) atlas_install_python_modules( python/*.py ) diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py index cdf44d0b7e36..204aa8dadee5 100755 --- a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py +++ b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py @@ -1,6 +1,6 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoAlg, TrigMufastHypoTool, TrigmuCombHypoAlg, TrigmuCombHypoTool, TrigMuonEFMSonlyHypoAlg, TrigMuonEFMSonlyHypoTool, TrigMuisoHypoAlg, TrigMuisoHypoTool +from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoAlg, TrigMufastHypoTool, TrigmuCombHypoAlg, TrigmuCombHypoTool, TrigMuonEFMSonlyHypoAlg, TrigMuonEFMSonlyHypoTool, TrigMuisoHypoAlg, TrigMuisoHypoTool, TrigMuonEFCombinerHypoTool from TrigMuonHypo.TrigMuonHypoMonitoringMT import * from AthenaCommon.SystemOfUnits import GeV from MuonByteStream.MuonByteStreamFlags import muonByteStreamFlags @@ -387,47 +387,40 @@ muFastThresholdsForECWeakBRegion = { } -def TrigMufastHypoToolFromName( toolName, thresholdHLT ): - - name = "TrigMufastHypoTool" - config = TrigMufastHypoConfig() - - # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX - bname = thresholdHLT.split('_') - threshold = bname[1] - thresholds = config.decodeThreshold( threshold ) - print "TrigMufastHypoConfig: Decoded ", thresholdHLT, " to ", thresholds - - tool=config.ConfigurationHypoTool( toolName, thresholds ) - - # Setup MonTool for monitored variables in AthenaMonitoring package - TriggerFlags.enableMonitoring = ["Validation"] - +def addMonitoring(tool, monClass, name, thresholdHLT ): try: - if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): - tool.MonTool = TrigMufastHypoMonitoring( name + "Monitoring_" + thresholdHLT ) + if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): + tool.MonTool = monClass( name + "Monitoring_" + thresholdHLT ) except AttributeError: - tool.MonTool = "" - print name, ' Monitoring Tool failed' + tool.MonTool = "" + print name, ' Monitoring Tool failed' - return tool +def getThresholdsFromDict( chainDict ): + return sum( [ [part['threshold']]*int(part['multiplicity']) for part in chainDict['chainParts']], []) -class TrigMufastHypoConfig(): - def decodeThreshold( self, threshold ): - """ decodes the thresholds of the form mu6, 2mu6, ... """ - print "decoding ", threshold +def TrigMufastHypoToolFromDict( chainDict ): - if threshold[0].isdigit(): # If the form is NmuX, return as list [X,X,X...N times...] - assert threshold[1:3] == "mu", "Two digit multiplicity not supported" - return [ threshold[3:] ] * int( threshold[0] ) - - if threshold.count('mu') > 1: # If theform is muXmuY, return as [X,Y] - return threshold.strip('mu').split('mu') + thresholds = getThresholdsFromDict( chainDict ) + config = TrigMufastHypoConfig() + tool=config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) + # # Setup MonTool for monitored variables in AthenaMonitoring package + TriggerFlags.enableMonitoring = ['Validation'] + addMonitoring( tool, TrigMufastHypoMonitoring, 'TrigMufastHypoTool', chainDict['chainName'] ) - # If the form is muX(inclusive), return as 1 element list - return [ threshold[2:] ] + return tool + + +def TrigMufastHypoToolFromName( name, thresholdHLT ): + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info + decodedDict['chainName'] = name # override + return TrigMufastHypoToolFromDict( decodedDict ) + + +class TrigMufastHypoConfig(): def ConfigurationHypoTool( self, thresholdHLT, thresholds ): @@ -481,33 +474,50 @@ class TrigMufastHypoConfig(): raise Exception('MuFast Hypo Misconfigured: threshold %r not supported' % thvaluename) return tool + +def TrigmuCombHypoToolFromDict( chainDict ): + print chainDict + + thresholds = getThresholdsFromDict( chainDict ) + config = TrigmuCombHypoConfig() + tight = False # can be probably decoded from some of the proprties of the chain, expert work + tool=config.ConfigurationHypoTool( chainDict['chainName'], thresholds, tight ) + + addMonitoring( tool, TrigmuCombHypoMonitoring, "TrigmuCombHypoTool", chainDict['chainName'] ) + + return tool -def TrigmuCombHypoToolFromName( toolName, thresholdHLT ): +def TrigmuCombHypoToolFromName( name, thresholdsHLT ): + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(thresholdsHLT, [], "") # no L1 info + decodedDict['chainName'] = name # override + return TrigmuCombHypoToolFromDict( decodedDict ) - name = "TrigmuCombHypoTool" - config = TrigmuCombHypoConfig() + # name = "TrigmuCombHypoTool" + - # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX - bname = thresholdHLT.split('_') - threshold = bname[1] - thresholds = config.decodeThreshold( threshold ) - print "TrigmuCombHypoConfig: Decoded ", thresholdHLT, " to ", thresholds - - tight = False - tool=config.ConfigurationHypoTool( toolName, thresholds, tight ) + # # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX + # bname = thresholdHLT.split('_') + # threshold = bname[1] + # thresholds = config.decodeThreshold( threshold ) + # print "TrigmuCombHypoConfig: Decoded ", thresholdHLT, " to ", thresholds + + + # tool=config.ConfigurationHypoTool( toolName, thresholds, tight ) - # Setup MonTool for monitored variables in AthenaMonitoring package - TriggerFlags.enableMonitoring = ["Validation"] + # # Setup MonTool for monitored variables in AthenaMonitoring package + # TriggerFlags.enableMonitoring = ["Validation"] - try: - if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): - tool.MonTool = TrigmuCombHypoMonitoring( name + "Monitoring_" + thresholdHLT ) - except AttributeError: - tool.MonTool = "" - print name, ' Monitoring Tool failed' + # try: + # if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): + # tool.MonTool = TrigmuCombHypoMonitoring( name + "Monitoring_" + thresholdHLT ) + # except AttributeError: + # tool.MonTool = "" + # print name, ' Monitoring Tool failed' - return tool + # return tool class TrigmuCombHypoConfig(): @@ -566,46 +576,36 @@ class TrigmuCombHypoConfig(): return tool + ### for TrigMuisoHypo -def TrigMuisoHypoToolFromName( toolName, thresholdHLT ): +def TrigMuisoHypoToolFromDict( chainDict ): - name = "TrigMuisoHypoTool" config = TrigMuisoHypoConfig() + tool = config.ConfigurationHypoTool( chainDict['chainName'] ) + addMonitoring( tool, TrigMuisoHypoMonitoring, "TrigMuisoHypoTool", chainDict['chainName']) + return tool + - # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX - bnames = thresholdHLT.split('_') - - print "TrigMuisoHypoConfig: Decoded ", thresholdHLT - - tool = config.ConfigurationHypoTool( toolName, bnames ) - - - # Setup MonTool for monitored variables in AthenaMonitoring package - TriggerFlags.enableMonitoring = ["Validation"] - - try: - if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): - tool.MonTool = TrigMuisoHypoMonitoring( name + "Monitoring_" + thresholdHLT ) - except AttributeError: - tool.MonTool = "" - print name, ' Monitoring Tool failed' +def TrigMuisoHypoToolFromName( name, thresholdHLT ): - return tool + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info + decodedDict['chainName'] = name # override + return TrigMuisoHypoToolFromDict( decodedDict ) class TrigMuisoHypoConfig() : - - def ConfigurationHypoTool( self, toolName, bnames ): + def ConfigurationHypoTool( self, toolName ): tool = TrigMuisoHypoTool( toolName ) - # If configured with passthrough, set AcceptAll flag on + # If configured with passthrough, set AcceptAll flag on, not quite there in the menu tool.AcceptAll = False - for bname in bnames: - if 'passthrough' in bname: - tool.AcceptAll = True - print 'MuisoHypoConfig configured in pasthrough mode' + if 'passthrough' in toolName: + tool.AcceptAll = True + print 'MuisoHypoConfig configured in pasthrough mode' if "FTK" in toolName: # allows us to use different working points in FTK mode tool.IDConeSize = 2; @@ -623,30 +623,21 @@ class TrigMuisoHypoConfig() : return tool -def TrigMuonEFMSonlyHypoToolFromName( toolName, thresholdHLT ) : - - name = "TrigMuonEFMSonlyHypoTool" +def TrigMuonEFMSonlyHypoToolFromDict( chainDict ) : + thresholds = getThresholdsFromDict( chainDict ) config = TrigMuonEFMSonlyHypoConfig() + tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) + addMonitoring( tool, TrigMuonEFMSonlyHypoMonitoring, "TrigMuonEFMSonlyHypoTool", chainDict['chainName'] ) + return tool - # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX - bname = thresholdHLT.split('_') - threshold = bname[1] - thresholds = config.decodeThreshold( threshold ) - print "TrigMuonEFMSonlyHypoConfig: Decoded ", thresholdHLT, " to ", thresholds - - tool = config.ConfigurationHypoTool( toolName, thresholds ) - - # Setup MonTool for monitored variables in AthenaMonitoring package - TriggerFlags.enableMonitoring = ["Validation"] - - try: - if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): - tool.MonTool = TrigMuonEFMSonlyHypoMonitoring( name + "Monitoring_" + thresholdHLT ) - except AttributeError: - tool.MonTool = "" - print name, ' Monitoring Tool failed' - return tool +def TrigMuonEFMSonlyHypoToolFromName( name, thresholdHLT ) : + + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info + decodedDict['chainName'] = name # override + return TrigMuonEFMSonlyHypoToolFromDict( decodedDict ) class TrigMuonEFMSonlyHypoConfig(): @@ -694,30 +685,22 @@ class TrigMuonEFMSonlyHypoConfig(): return tool -def TrigMuonEFCombinerHypoToolFromName( toolName, thresholdHLT ) : - - name = "TrigMuonEFCombinerHypoTool" + +def TrigMuonEFCombinerHypoToolFromDict( chainDict ) : + thresholds = getThresholdsFromDict( chainDict ) config = TrigMuonEFCombinerHypoConfig() + tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) + addMonitoring( tool, TrigMuonEFCombinerHypoMonitoring, "TrigMuonEFCombinerHypoTool", chainDict['chainName'] ) + return tool + +def TrigMuonEFCombinerHypoToolFromName( name, thresholdHLT ) : - # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX - bname = thresholdHLT.split('_') - threshold = bname[1] - thresholds = config.decodeThreshold( threshold ) - print "TrigMuonEFCombinerHypoConfig: Decoded ", thresholdHLT, " to ", thresholds - - tool = config.ConfigurationHypoTool( toolName, thresholds ) - - # Setup MonTool for monitored variables in AthenaMonitoring package - TriggerFlags.enableMonitoring = ["Validation"] + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName + decoder = DictFromChainName() + decodedDict = decoder.analyseShortName(thresholdHLT, [], "") # no L1 info + decodedDict['chainName'] = name # override + return TrigMuonEFCombinerHypoToolFromDict( decodedDict ) - try: - if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring(): - tool.MonTool = TrigMuonEFCombinerHypoMonitoring( name + "Monitoring_" + thresholdHLT ) - except AttributeError: - tool.MonTool = "" - print name, ' Monitoring Tool failed' - - return tool class TrigMuonEFCombinerHypoConfig(): @@ -764,3 +747,33 @@ class TrigMuonEFCombinerHypoConfig(): return tool + + + +if __name__ == '__main__': + # normaly this tools are private and have no clash in naming, for the test we create them and never assign so they are like public, + # in Run3 config this is checked in a different way so having Run 3 JO behaviour solves test issue + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior=1 + + configToTest = [ 'HLT_mu6fast', + 'HLT_mu6Comb', + 'HLT_mu6' + 'HLT_mu20_ivar', + 'HLT_2mu6Comb', + 'HLT_2mu6'] + + for c in configToTest: + print "testing config ", c + toolMufast = TrigMufastHypoToolFromName(c, c) + assert toolMufast + toolmuComb = TrigmuCombHypoToolFromName(c, c) + assert toolmuComb + toolMuiso = TrigMuisoHypoToolFromName(c, c) + assert toolMuiso + toolEFMSonly = TrigMuonEFMSonlyHypoToolFromName(c, c) + assert toolEFMSonly + toolEFCombiner = TrigMuonEFCombinerHypoToolFromName(c, c) + assert toolEFCombiner + + print "All OK" diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py index 6398c34c5085..d2c78e3b8a7b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py @@ -195,7 +195,7 @@ MuonChainParts = { 'threshold' : '', 'extra' : ['noL1'], 'IDinfo' : [], - 'isoInfo' : ['iloose', 'imedium', 'itight', 'ivarloose', 'ivarmedium','icalo','iloosecalo','imediumcalo','iloosems', 'ivarloosecalo', 'ivarmediumcalo'], + 'isoInfo' : ['iloose', 'ivar', 'imedium', 'itight', 'ivarloose', 'ivarmedium','icalo','iloosecalo','imediumcalo','iloosems', 'ivarloosecalo', 'ivarmediumcalo'], 'reccalibInfo' : ['msonly', 'l2msonly', 'l2idonly', 'nomucomb', 'idperf','muoncalib', 'mucombTag','muL2', 'mgonly'], 'trkInfo' : ['fasttr', 'hlttr', 'ftk', 'IDT'], 'hypoInfo' : [], -- GitLab From 1636e2a78bf4585e7c7d0e8679dfa750878e52e5 Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Tue, 22 Jan 2019 11:11:33 +0000 Subject: [PATCH 091/192] Manually merge branch 'stgcDropDigitInfo' into '21.3' Delete obsolete sTgcDigitInfo class from the sTGC_Digitization package See merge request atlas/athena!20417 --- .../sTGC_Digitization/sTgcDigitInfo.h | 78 ------------------- .../sTgcDigitInfoCollection.h | 55 ------------- .../sTGC_Digitization/sTgcDigitizationTool.h | 5 -- .../src/sTgcDigitizationTool.cxx | 23 +----- 4 files changed, 4 insertions(+), 157 deletions(-) delete mode 100644 MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfo.h delete mode 100644 MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfoCollection.h diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfo.h b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfo.h deleted file mode 100644 index 7984c80d8d59..000000000000 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfo.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef sTgcDigitInfoUH -#define sTgcDigitInfoUH - -#include <iosfwd> -#include <inttypes.h> -#include "MuonDigitContainer/MuonDigit.h" -#include "MuonIdHelpers/sTgcIdHelper.h" - -class sTgcDigitInfo : public MuonDigit { - - public: // functions - - enum {BC_UNDEFINED=0, BC_PREVIOUS, BC_CURRENT, BC_NEXT}; - sTgcDigitInfo() : m_bcTag (BC_UNDEFINED), m_charge(-1), m_time(0), m_isDead (0), m_isPileup(0) { } - - //********************************************************************** - sTgcDigitInfo(const Identifier& id, uint16_t bctag, float time, float charge, bool isDead, bool isPileup) - : MuonDigit(id), - m_bcTag(bctag), - m_charge(charge), - m_time(time), - m_isDead(isDead), - m_isPileup(isPileup) { } - // //********************************************************************** - - uint16_t bcTag() const { - return m_bcTag; - } - - // get the charge - float charge() const { - return m_charge; - } - - // get the charge - float time() const { - return m_time; - } - - //return the dead channel status - bool isDead() const { - return m_isDead; - } - - // return whether the digit is due to pileup - bool isPileup() const { - return m_isPileup; - } - - void set_bcTag(uint16_t newbcTag) { - m_bcTag = newbcTag; - } - - void set_charge(float newCharge) { - m_charge = newCharge; - } - - void set_isDead(bool newIsDead) { - m_isDead = newIsDead; - } - - void set_isPileup(bool newIsPileup) { - m_isPileup = newIsPileup; - } - - private: // data - uint16_t m_bcTag; - float m_charge; - float m_time; - bool m_isDead; - bool m_isPileup; -}; - -#endif diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfoCollection.h b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfoCollection.h deleted file mode 100644 index 4d146985ab35..000000000000 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitInfoCollection.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef MUONSPECTROMETER_STGCDIGITINFOCOLLECTION_H -#define MUONSPECTROMETER_STGCDIGITINFOCOLLECTION_H - -#include "sTGC_Digitization/sTgcDigitInfo.h" -#include "Identifier/Identifier.h" -#include "Identifier/IdentifierHash.h" - -#include "AthContainers/DataVector.h" -#include "AthenaKernel/CLASS_DEF.h" - -class sTgcDigitInfoCollection : public DataVector<sTgcDigitInfo> -{ - - public: // functions - - typedef Identifier ID; - typedef sTgcDigitInfo DIGITINFO; - // Default constructor. - sTgcDigitInfoCollection() - : DataVector<sTgcDigitInfo>(),m_id(0),m_idHash(0) - { }; - - // Creates an empty container ready for writing. - sTgcDigitInfoCollection(Identifier id,IdentifierHash idHash) - : DataVector<sTgcDigitInfo>(),m_id(id),m_idHash(idHash) - { }; - - Identifier identify() const - { - return m_id; - } - - IdentifierHash identifierHash() const - { - return m_idHash; - } - - private: - Identifier m_id; - IdentifierHash m_idHash; - -}; - -CLASS_DEF(sTgcDigitInfoCollection, 1084451812, 1) - -// Class needed only for persistency -typedef DataVector<sTgcDigitInfoCollection> sTgcDigitInfoCollection_vector; -CLASS_DEF( sTgcDigitInfoCollection_vector , 1257207333 , 1 ) - -#endif - diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h index 5a0a89192da3..b23c097ca1b1 100644 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h @@ -25,8 +25,6 @@ #include "xAODEventInfo/EventInfo.h" #include "xAODEventInfo/EventAuxInfo.h" -#include "sTGC_Digitization/sTgcDigitInfoCollection.h" - #include "CLHEP/Random/RandGaussZiggurat.h" #include "CLHEP/Random/RandomEngine.h" #include "CLHEP/Geometry/Point3D.h" @@ -131,7 +129,6 @@ private: ActiveStoreSvc* m_activeStore; sTgcHitIdHelper* m_hitIdHelper; sTgcDigitContainer* m_digitContainer; - sTgcDigitInfoCollection* m_digitInfoCollection; const sTgcIdHelper* m_idHelper; const MuonGM::MuonDetectorManager* m_mdManager; sTgcDigitMaker* m_digitizer; @@ -143,8 +140,6 @@ private: std::string m_outputDigitCollectionName; // name of the output digits std::string m_outputSDO_CollectionName; // name of the output SDOs - std::string m_outputDigitInfoCollectionName; - bool m_doToFCorrection; int m_doChannelTypes; //double m_noiseFactor; diff --git a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx index 71b8681379ea..b13fb68c4498 100644 --- a/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx @@ -112,7 +112,6 @@ sTgcDigitizationTool::sTgcDigitizationTool(const std::string& type, const std::s m_inputHitCollectionName("sTGCSensitiveDetector"), m_outputDigitCollectionName("sTGC_DIGITS"), m_outputSDO_CollectionName("sTGC_SDO"), - m_outputDigitInfoCollectionName("sTGC_DIGIT_INFO"), m_doToFCorrection(0), m_doChannelTypes(3), m_readoutThreshold(0), @@ -154,7 +153,6 @@ sTgcDigitizationTool::sTgcDigitizationTool(const std::string& type, const std::s declareProperty("InputObjectName", m_inputHitCollectionName = "sTGCSensitiveDetector", "name of the input object"); declareProperty("OutputObjectName", m_outputDigitCollectionName = "sTGC_DIGITS", "name of the output object"); declareProperty("OutputSDOName", m_outputSDO_CollectionName = "sTGC_SDO"); - declareProperty("OutputDigitInfoName", m_outputDigitInfoCollectionName = "sTGC_DIGIT_INFO"); declareProperty("doToFCorrection", m_doToFCorrection); declareProperty("doChannelTypes", m_doChannelTypes); declareProperty("DeadtimeElectronicsStrip",m_deadtimeStrip); @@ -451,17 +449,6 @@ StatusCode sTgcDigitizationTool::recordDigitAndSdoContainers() { ATH_MSG_DEBUG("sTgcSDOCollection recorded in StoreGate."); } - m_digitInfoCollection = new sTgcDigitInfoCollection(); - - status = m_sgSvc->record(m_digitInfoCollection, m_outputDigitInfoCollectionName); - if(status.isFailure()) { - ATH_MSG_FATAL("Unable to record digit info collection in StoreGate"); - return status; - } else { - ATH_MSG_DEBUG("Digit info collection recorded in StoreGate."); - } - - return status; } /*******************************************************************************/ @@ -540,8 +527,6 @@ StatusCode sTgcDigitizationTool::doDigitization() { sTgcDigitCollection* digitCollection = 0; //output digits - m_digitInfoCollection->clear(); - ATH_MSG_DEBUG("create PRD container of size " << m_idHelper->detectorElement_hash_max()); IdContext tgcContext = m_idHelper->module_context(); @@ -563,10 +548,10 @@ StatusCode sTgcDigitizationTool::doDigitization() { ATH_MSG_VERBOSE("Hit Particle ID : " << hit.particleEncoding() ); float eventTime = phit.eventTime(); if(eventTime < earliestEventTime) earliestEventTime = eventTime; - // Cut on energy deposit of the particle - if(hit.depositEnergy() < m_energyDepositThreshold) { - ATH_MSG_VERBOSE("Hit with Energy Deposit of " << hit.depositEnergy() << " less than 300.eV Skip this hit." ); - continue; + // Cut on energy deposit of the particle + if(hit.depositEnergy() < m_energyDepositThreshold) { + ATH_MSG_VERBOSE("Hit with Energy Deposit of " << hit.depositEnergy() << " less than 300.eV Skip this hit." ); + continue; } if(eventTime != 0){ msg(MSG::DEBUG) << "Updated hit global time to include off set of " << eventTime << " ns from OOT bunch." << endmsg; -- GitLab From 01854777b046208588cd4796f14f087d625cb773 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Thu, 24 Jan 2019 18:41:23 +0100 Subject: [PATCH 092/192] Updated the PostConfig files of the projects to set up tdaq releases correctly. After the update in the naming convention for the variables specifying where to pick up tdaq releases from, I forgot to update the PostConfig.cmake files generated by the releases to use this same convention. This is fixing that. --- Projects/AthDataQuality/PostConfig.cmake.in | 12 ++++++++---- Projects/Athena/PostConfig.cmake.in | 20 ++++++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/Projects/AthDataQuality/PostConfig.cmake.in b/Projects/AthDataQuality/PostConfig.cmake.in index 8d8218256cb3..29b54887ad02 100644 --- a/Projects/AthDataQuality/PostConfig.cmake.in +++ b/Projects/AthDataQuality/PostConfig.cmake.in @@ -4,8 +4,12 @@ # # Set the versions of the TDAQ projects: -set( TDAQ-COMMON_VERSION "@TDAQ-COMMON_VERSION@" ) -set( TDAQ-COMMON_ROOT "@TDAQ-COMMON_ROOT@" ) +set( TDAQ-COMMON_VERSION "@TDAQ-COMMON_VERSION@" CACHE STRING + "The version of tdaq-common to use for the build" ) +set( TDAQ-COMMON_ATROOT "@TDAQ-COMMON_ATROOT@" CACHE PATH + "The directory to pick up tdaq-common from" ) -set( DQM-COMMON_VERSION "@DQM-COMMON_VERSION@" ) -set( DQM-COMMON_ROOT "@DQM-COMMON_ROOT@" ) +set( DQM-COMMON_VERSION "@DQM-COMMON_VERSION@" CACHE STRING + "The version of dqm-common to use for the build" ) +set( DQM-COMMON_ATROOT "@DQM-COMMON_ATROOT@" CACHE PATH + "The directory to pick up dqm-common from" ) diff --git a/Projects/Athena/PostConfig.cmake.in b/Projects/Athena/PostConfig.cmake.in index 3e372f98e166..5ce21e3e61ab 100644 --- a/Projects/Athena/PostConfig.cmake.in +++ b/Projects/Athena/PostConfig.cmake.in @@ -5,14 +5,22 @@ # Set the versions of the TDAQ projects: -set( TDAQ_VERSION "@TDAQ_VERSION@" ) -set( TDAQ_ROOT "@TDAQ_ROOT@" ) +set( TDAQ_PROJECT_NAME "@TDAQ_PROJECT_NAME@" CACHE STRING + "Name of the tdaq project" ) +set( TDAQ_VERSION "@TDAQ_VERSION@" CACHE STRING + "The version of tdaq to use for the build" ) +set( TDAQ_ATROOT "@TDAQ_ATROOT@" CACHE PATH + "The directory to pick up tdaq from" ) -set( TDAQ-COMMON_VERSION "@TDAQ-COMMON_VERSION@" ) -set( TDAQ-COMMON_ROOT "@TDAQ-COMMON_ROOT@" ) +set( TDAQ-COMMON_VERSION "@TDAQ-COMMON_VERSION@" CACHE STRING + "The version of tdaq-common to use for the build" ) +set( TDAQ-COMMON_ATROOT "@TDAQ-COMMON_ATROOT@" CACHE PATH + "The directory to pick up tdaq-common from" ) -set( DQM-COMMON_VERSION "@DQM-COMMON_VERSION@" ) -set( DQM-COMMON_ROOT "@DQM-COMMON_ROOT@" ) +set( DQM-COMMON_VERSION "@DQM-COMMON_VERSION@" CACHE STRING + "The version of dqm-common to use for the build" ) +set( DQM-COMMON_ATROOT "@DQM-COMMON_ATROOT@" CACHE PATH + "The directory to pick up dqm-common from" ) # Find Gaudi: find_package( Gaudi REQUIRED ) -- GitLab From cb3f3f889aa7b1ac4f115f11e9a8eab4336f3632 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 23 Jan 2019 12:51:46 +0100 Subject: [PATCH 093/192] GenericMonitoringTool: Deprecate the default setting of "EXPERT" An explicit `path` needs to be specified in `defineHistogram` now to support both the offline DQ and trigger use-case. --- Control/AthenaMonitoring/python/GenericMonitoringTool.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Control/AthenaMonitoring/python/GenericMonitoringTool.py b/Control/AthenaMonitoring/python/GenericMonitoringTool.py index 5377698106e8..65b244043434 100644 --- a/Control/AthenaMonitoring/python/GenericMonitoringTool.py +++ b/Control/AthenaMonitoring/python/GenericMonitoringTool.py @@ -23,11 +23,16 @@ class GenericMonitoringTool(_GenericMonitoringTool): # @param title Histogram title and optional axis title (same syntax as in TH constructor) # @param opt Histrogram options (see GenericMonitoringTool) # @param labels List of bin labels (for a 2D histogram, sequential list of x- and y-axis labels) -def defineHistogram(varname, type='TH1F', path='EXPERT', +def defineHistogram(varname, type='TH1F', path=None, title=None, xbins=100, xmin=0, xmax=1, ybins=None, ymin=None, ymax=None, zmin=None, zmax=None, opt='', labels=None): + if path is None: + import warnings + warnings.warn("Calling defineHistrogram without path is deprecated. Specify e.g. path='EXPERT'", stacklevel=2) + path = 'EXPERT' + if title is None: title=varname coded = "%s, %s, %s, %s, %d, %f, %f" % (path, type, varname, title, xbins, xmin, xmax) if ybins is not None: -- GitLab From 3293b9552a6e0ebb6046d9ca54f643c1d5913e6e Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 23 Jan 2019 12:52:58 +0100 Subject: [PATCH 094/192] Migrate trigger monitoring to use explict path in defineHistogram Always specify and explicit path in `defineHistogram`. --- .../python/TrigL2MuonSAMonitoring.py | 52 +++++++-------- .../share/testDataAccessService.py | 10 +-- .../python/TrigL2CaloHypoTool.py | 28 ++++---- .../python/TrigL2ElectronHypoTool.py | 16 ++--- .../python/TrigL2PhotonHypoTool.py | 8 +-- .../python/TrigMissingETHypoMonitoringTool.py | 32 +++++----- .../python/TrigL2CaloRingerFexMTInit.py | 18 +++--- .../python/TrigMuonHypoMonitoringMT.py | 64 +++++++++---------- .../TrigUpgradeTest/python/jetDefs.py | 6 +- .../TrigUpgradeTest/python/metDefs.py | 14 ++-- .../TrigUpgradeTest/share/jet.recoToy.py | 8 ++- .../TrigUpgradeTest/share/metTest.py | 14 ++-- 12 files changed, 140 insertions(+), 130 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAMonitoring.py b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAMonitoring.py index 7df5b551dda0..5b76c02108e3 100755 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAMonitoring.py +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAMonitoring.py @@ -1,7 +1,6 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -from TrigMonitorBase.TrigGenericMonitoringToolConfig import defineHistogram, TrigGenericMonitoringToolConfig from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram class TrigL2MuonSAMonitoring(GenericMonitoringTool): @@ -9,30 +8,33 @@ class TrigL2MuonSAMonitoring(GenericMonitoringTool): super(TrigL2MuonSAMonitoring, self).__init__( name ) self.HistPath = name - self.Histograms = [ defineHistogram('InnMdtHits', type='TH1F', title="Hit multiplicity in the INNER road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), - defineHistogram('MidMdtHits', type='TH1F', title="Hit multiplicity in the MIDDLE road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), - defineHistogram('OutMdtHits', type='TH1F', title="Hit multiplicity in the OUTER road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), - defineHistogram('FitResiduals', type='TH1F', title="Fit Residual; Residuals (cm)", xbins=400, xmin=-0.4, xmax=0.4), - defineHistogram('Efficiency', type='TH1F', title="Track finding efficiency", xbins=2, xmin=-0.5, xmax=1.5), - defineHistogram('Address', type='TH1F', title="S_address;S_address", xbins=5, xmin=-1.5, xmax=3.5 ), - defineHistogram('AbsPt', type='TH1F', title="absolute P_{T};P_{T} (GeV)", xbins=100, xmin=0, xmax=100 ), - defineHistogram('TrackPt', type='TH1F', title="P_{T};P_{T} (GeV)", xbins=100, xmin=-100, xmax=100 ), - defineHistogram('AbsPt, SagInv', type='TH2F', title="1/s as a function of P_{T}; P_{T} (GeV); 1/s (cm^{-1})", xbins=50, xmin=0, xmax=100, ybins=15, ymin=0, ymax=3 ), - defineHistogram('Sagitta', type='TH1F', title="Reconstructed Sagitta; Sagitta (cm)", xbins=100, xmin=-10., xmax=10.), - defineHistogram('ResInner', type='TH1F', title="Residual from Trigger track in INNER Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), - defineHistogram('ResMiddle', type='TH1F', title="Residual from Trigger track in MIDDLE Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), - defineHistogram('ResOuter', type='TH1F', title="Residual from Trigger track in OUTER Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), - defineHistogram('TrackEta, TrackPhi', type='TH2F', title="Distribution of reconstructed LVL2 tracks; Eta; Phi", xbins=108, xmin=-2.7, xmax=2.7, ybins=96, ymin=-3.1416, ymax=3.1416 ), - defineHistogram('FailedRoIEta, FailedRoIPhi', type='TH2F', title="Location of LVL2 track failure; Eta; Phi", xbins=108, xmin=-2.7, xmax=2.7, ybins=96, ymin=-3.1416, ymax=3.1416 ), - defineHistogram('TIME_Total', type='TH1F', title="Total processing time (us)", xbins=100, xmin=0, xmax=100000 ), - defineHistogram('TIME_Data_Preparator', type='TH1F', title="Data preparator time (us)", xbins=100, xmin=0, xmax=50000 ), - defineHistogram('TIME_Pattern_Finder', type='TH1F', title="Pattern finder time (us)", xbins=100, xmin=0, xmax=5000 ), - defineHistogram('TIME_Station_Fitter', type='TH1F', title="Station fitter time (us)", xbins=100, xmin=0, xmax=5000 ), - defineHistogram('TIME_Track_Fitter', type='TH1F', title="Track fitter time (us)", xbins=100, xmin=0, xmax=300 ), - defineHistogram('TIME_Track_Extrapolator', type='TH1F', title="Track extrapolator time (us)", xbins=100, xmin=0, xmax=300 ), - defineHistogram('TIME_Calibration_Streamer', type='TH1F', title="Calibration streamer time (us)", xbins=100, xmin=0, xmax=50000 ), - defineHistogram('InvalidRpcRoINumber', type='TH1F', title="RoI Number of Invalid RPC RoI; RoI Number", xbins=150, xmin=-0.5, xmax=150.5) ] + self.Histograms = [ defineHistogram('InnMdtHits', type='TH1F', path='EXPERT', title="Hit multiplicity in the INNER road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), + defineHistogram('MidMdtHits', type='TH1F', path='EXPERT', title="Hit multiplicity in the MIDDLE road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), + defineHistogram('OutMdtHits', type='TH1F', path='EXPERT', title="Hit multiplicity in the OUTER road; MDT hits", xbins=50, xmin=-0.5, xmax=50.5), + defineHistogram('FitResiduals', type='TH1F', path='EXPERT', title="Fit Residual; Residuals (cm)", xbins=400, xmin=-0.4, xmax=0.4), + defineHistogram('Efficiency', type='TH1F', path='EXPERT', title="Track finding efficiency", xbins=2, xmin=-0.5, xmax=1.5), + defineHistogram('Address', type='TH1F', path='EXPERT', title="S_address;S_address", xbins=5, xmin=-1.5, xmax=3.5 ), + defineHistogram('AbsPt', type='TH1F', path='EXPERT', title="absolute P_{T};P_{T} (GeV)", xbins=100, xmin=0, xmax=100 ), + defineHistogram('TrackPt', type='TH1F', path='EXPERT', title="P_{T};P_{T} (GeV)", xbins=100, xmin=-100, xmax=100 ), + defineHistogram('AbsPt, SagInv', type='TH2F', path='EXPERT', title="1/s as a function of P_{T}; P_{T} (GeV); 1/s (cm^{-1})", xbins=50, xmin=0, xmax=100, ybins=15, ymin=0, ymax=3 ), + defineHistogram('Sagitta', type='TH1F', path='EXPERT', title="Reconstructed Sagitta; Sagitta (cm)", xbins=100, xmin=-10., xmax=10.), + defineHistogram('ResInner', type='TH1F', path='EXPERT', title="Residual from Trigger track in INNER Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), + defineHistogram('ResMiddle', type='TH1F', path='EXPERT', title="Residual from Trigger track in MIDDLE Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), + defineHistogram('ResOuter', type='TH1F', path='EXPERT', title="Residual from Trigger track in OUTER Station; Residuals (cm)", xbins=100, xmin=-10., xmax=10. ), + defineHistogram('TrackEta, TrackPhi', type='TH2F', path='EXPERT', title="Distribution of reconstructed LVL2 tracks; Eta; Phi", xbins=108, xmin=-2.7, xmax=2.7, ybins=96, ymin=-3.1416, ymax=3.1416 ), + defineHistogram('FailedRoIEta, FailedRoIPhi', type='TH2F', path='EXPERT', title="Location of LVL2 track failure; Eta; Phi", xbins=108, xmin=-2.7, xmax=2.7, ybins=96, ymin=-3.1416, ymax=3.1416 ), + defineHistogram('TIME_Total', type='TH1F', path='EXPERT', title="Total processing time (us)", xbins=100, xmin=0, xmax=100000 ), + defineHistogram('TIME_Data_Preparator', type='TH1F', path='EXPERT', title="Data preparator time (us)", xbins=100, xmin=0, xmax=50000 ), + defineHistogram('TIME_Pattern_Finder', type='TH1F', path='EXPERT', title="Pattern finder time (us)", xbins=100, xmin=0, xmax=5000 ), + defineHistogram('TIME_Station_Fitter', type='TH1F', path='EXPERT', title="Station fitter time (us)", xbins=100, xmin=0, xmax=5000 ), + defineHistogram('TIME_Track_Fitter', type='TH1F', path='EXPERT', title="Track fitter time (us)", xbins=100, xmin=0, xmax=300 ), + defineHistogram('TIME_Track_Extrapolator', type='TH1F', path='EXPERT', title="Track extrapolator time (us)", xbins=100, xmin=0, xmax=300 ), + defineHistogram('TIME_Calibration_Streamer', type='TH1F', path='EXPERT', title="Calibration streamer time (us)", xbins=100, xmin=0, xmax=50000 ), + defineHistogram('InvalidRpcRoINumber', type='TH1F', path='EXPERT', title="RoI Number of Invalid RPC RoI; RoI Number", xbins=150, xmin=-0.5, xmax=150.5) ] + + +from TrigMonitorBase.TrigGenericMonitoringToolConfig import defineHistogram, TrigGenericMonitoringToolConfig class TrigL2MuonSAValidationMonitoring(TrigGenericMonitoringToolConfig): def __init__ (self, name="TrigL2MuonSAValidationMonitoring"): diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py index 627586b16f6a..c32240a15d21 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # include("TrigUpgradeTest/testHLT_MT.py") @@ -24,10 +24,10 @@ if TriggerFlags.doCalo: from TrigT2CaloCommon.TrigT2CaloCommonConf import TrigCaloDataAccessSvc#, TestCaloDataAccess import math mon = GenericMonitoringTool("CaloDataAccessSvcMon") - mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiROBs_LAr", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), - defineHistogram( "TIME_locking_LAr_FullDet", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] + mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiROBs_LAr", path="EXPERT", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), + defineHistogram( "TIME_locking_LAr_FullDet", path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", path="EXPERT", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] svcMgr += TrigCaloDataAccessSvc() svcMgr.TrigCaloDataAccessSvc.OutputLevel=ERROR diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py index 1bc6848ebe03..0751673fe563 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2CaloHypoTool.py @@ -21,11 +21,11 @@ def _IncTool(name, threshold, sel): if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring(): from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram monTool = GenericMonitoringTool("MonTool_"+name) - monTool.Histograms = [ defineHistogram('dEta', type='TH1F', title="L2Calo Hypo #Delta#eta_{L2 L1}; #Delta#eta_{L2 L1}", xbins=80, xmin=-0.01, xmax=0.01), - defineHistogram('dPhi', type='TH1F', title="L2Calo Hypo #Delta#phi_{L2 L1}; #Delta#phi_{L2 L1}", xbins=80, xmin=-0.01, xmax=0.01), - defineHistogram('Et_em', type='TH1F', title="L2Calo Hypo cluster E_{T}^{EM};E_{T}^{EM} [MeV]", xbins=50, xmin=-2000, xmax=100000), - defineHistogram('Eta', type='TH1F', title="L2Calo Hypo entries per Eta;Eta", xbins=100, xmin=-2.5, xmax=2.5), - defineHistogram('Phi', type='TH1F', title="L2Calo Hypo entries per Phi;Phi", xbins=128, xmin=-3.2, xmax=3.2) ] + monTool.Histograms = [ defineHistogram('dEta', type='TH1F', path='EXPERT', title="L2Calo Hypo #Delta#eta_{L2 L1}; #Delta#eta_{L2 L1}", xbins=80, xmin=-0.01, xmax=0.01), + defineHistogram('dPhi', type='TH1F', path='EXPERT', title="L2Calo Hypo #Delta#phi_{L2 L1}; #Delta#phi_{L2 L1}", xbins=80, xmin=-0.01, xmax=0.01), + defineHistogram('Et_em', type='TH1F', path='EXPERT', title="L2Calo Hypo cluster E_{T}^{EM};E_{T}^{EM} [MeV]", xbins=50, xmin=-2000, xmax=100000), + defineHistogram('Eta', type='TH1F', path='EXPERT', title="L2Calo Hypo entries per Eta;Eta", xbins=100, xmin=-2.5, xmax=2.5), + defineHistogram('Phi', type='TH1F', path='EXPERT', title="L2Calo Hypo entries per Phi;Phi", xbins=128, xmin=-3.2, xmax=3.2) ] cuts=['Input','has one TrigEMCluster', '#Delta #eta L2-L1', '#Delta #phi L2-L1','eta','rCore', 'eRatio','E_{T}^{EM}', 'E_{T}^{Had}','f_{1}','Weta2','Wstot','F3'] @@ -34,18 +34,18 @@ def _IncTool(name, threshold, sel): for c in cuts: labelsDescription += c+':' - monTool.Histograms += [ defineHistogram('CutCounter', type='TH1I', title="L2Calo Hypo Passed Cuts;Cut", + monTool.Histograms += [ defineHistogram('CutCounter', type='TH1I', path='EXPERT', title="L2Calo Hypo Passed Cuts;Cut", xbins=13, xmin=-1.5, xmax=12.5, opt="kCumulative", labels=labelsDescription) ] if 'Validation' in TriggerFlags.enableMonitoring(): - monTool.Histograms += [ defineHistogram('Et_had', type='TH1F', title="L2Calo Hypo E_{T}^{had} in first layer;E_{T}^{had} [MeV]", xbins=50, xmin=-2000, xmax=100000), - defineHistogram('Rcore', type='TH1F', title="L2Calo Hypo R_{core};E^{3x3}/E^{3x7} in sampling 2", xbins=48, xmin=-0.1, xmax=1.1), - defineHistogram('Eratio', type='TH1F', title="L2Calo Hypo E_{ratio};E^{max1}-E^{max2}/E^{max1}+E^{max2} in sampling 1 (excl.crack)", xbins=64, xmin=-0.1, xmax=1.5), - defineHistogram('EtaBin', type='TH1I', title="L2Calo Hypo entries per Eta bin;Eta bin no.", xbins=11, xmin=-0.5, xmax=10.5), - defineHistogram('F1', type='TH1F', title="L2Calo Hypo f_{1};f_{1}", xbins=34, xmin=-0.5, xmax=1.2), - defineHistogram('Weta2', type='TH1F', title="L2Calo Hypo Weta2; E Width in sampling 2", xbins=96, xmin=-0.1, xmax=0.61), - defineHistogram('Wstot', type='TH1F', title="L2Calo Hypo Wstot; E Width in sampling 1", xbins=48, xmin=-0.1, xmax=11.), - defineHistogram('F3', type='TH1F', title="L2Calo Hypo F3; E3/(E0+E1+E2+E3)", xbins=96, xmin=-0.1, xmax=1.1) ] + monTool.Histograms += [ defineHistogram('Et_had', type='TH1F', path='EXPERT', title="L2Calo Hypo E_{T}^{had} in first layer;E_{T}^{had} [MeV]", xbins=50, xmin=-2000, xmax=100000), + defineHistogram('Rcore', type='TH1F', path='EXPERT', title="L2Calo Hypo R_{core};E^{3x3}/E^{3x7} in sampling 2", xbins=48, xmin=-0.1, xmax=1.1), + defineHistogram('Eratio', type='TH1F', path='EXPERT', title="L2Calo Hypo E_{ratio};E^{max1}-E^{max2}/E^{max1}+E^{max2} in sampling 1 (excl.crack)", xbins=64, xmin=-0.1, xmax=1.5), + defineHistogram('EtaBin', type='TH1I', path='EXPERT', title="L2Calo Hypo entries per Eta bin;Eta bin no.", xbins=11, xmin=-0.5, xmax=10.5), + defineHistogram('F1', type='TH1F', path='EXPERT', title="L2Calo Hypo f_{1};f_{1}", xbins=34, xmin=-0.5, xmax=1.2), + defineHistogram('Weta2', type='TH1F', path='EXPERT', title="L2Calo Hypo Weta2; E Width in sampling 2", xbins=96, xmin=-0.1, xmax=0.61), + defineHistogram('Wstot', type='TH1F', path='EXPERT', title="L2Calo Hypo Wstot; E Width in sampling 1", xbins=48, xmin=-0.1, xmax=11.), + defineHistogram('F3', type='TH1F', path='EXPERT', title="L2Calo Hypo F3; E3/(E0+E1+E2+E3)", xbins=96, xmin=-0.1, xmax=1.1) ] monTool.HistPath = 'L2CaloHypo/'+tool.name() tool.MonTool = monTool diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py index 6831db6944ce..cb09cf72662c 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoTool.py @@ -15,14 +15,14 @@ def TrigL2ElectronHypoToolFromDict( chainDict ): from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram monTool = GenericMonitoringTool("MonTool"+name) monTool.Histograms = [ - defineHistogram('CutCounter', type='TH1I', title="L2Electron Hypo Cut Counter;Cut Counter", xbins=8, xmin=-1.5, xmax=7.5, opt="kCumulative"), - defineHistogram('CaloTrackdEta', type='TH1F', title="L2Electron Hypo #Delta #eta between cluster and track;#Delta #eta;Nevents", xbins=80, xmin=-0.4, xmax=0.4), - defineHistogram('CaloTrackdPhi', type='TH1F', title="L2Electron Hypo #Delta #phi between cluster and track;#Delta #phi;Nevents", xbins=80, xmin=-0.4, xmax=0.4), - defineHistogram('CaloTrackEoverP', type='TH1F', title="L2Electron Hypo E/p;E/p;Nevents", xbins=120, xmin=0, xmax=12), - defineHistogram('PtTrack', type='TH1F', title="L2Electron Hypo p_{T}^{track} [MeV];p_{T}^{track} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), - defineHistogram('PtCalo', type='TH1F', title="L2Electron Hypo p_{T}^{calo} [MeV];p_{T}^{calo} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), - defineHistogram('CaloEta', type='TH1F', title="L2Electron Hypo #eta^{calo} ; #eta^{calo};Nevents", xbins=200, xmin=-2.5, xmax=2.5), - defineHistogram('CaloPhi', type='TH1F', title="L2Electron Hypo #phi^{calo} ; #phi^{calo};Nevents", xbins=320, xmin=-3.2, xmax=3.2) ] + defineHistogram('CutCounter', type='TH1I', path='EXPERT', title="L2Electron Hypo Cut Counter;Cut Counter", xbins=8, xmin=-1.5, xmax=7.5, opt="kCumulative"), + defineHistogram('CaloTrackdEta', type='TH1F', path='EXPERT', title="L2Electron Hypo #Delta #eta between cluster and track;#Delta #eta;Nevents", xbins=80, xmin=-0.4, xmax=0.4), + defineHistogram('CaloTrackdPhi', type='TH1F', path='EXPERT', title="L2Electron Hypo #Delta #phi between cluster and track;#Delta #phi;Nevents", xbins=80, xmin=-0.4, xmax=0.4), + defineHistogram('CaloTrackEoverP', type='TH1F', path='EXPERT', title="L2Electron Hypo E/p;E/p;Nevents", xbins=120, xmin=0, xmax=12), + defineHistogram('PtTrack', type='TH1F', path='EXPERT', title="L2Electron Hypo p_{T}^{track} [MeV];p_{T}^{track} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), + defineHistogram('PtCalo', type='TH1F', path='EXPERT', title="L2Electron Hypo p_{T}^{calo} [MeV];p_{T}^{calo} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), + defineHistogram('CaloEta', type='TH1F', path='EXPERT', title="L2Electron Hypo #eta^{calo} ; #eta^{calo};Nevents", xbins=200, xmin=-2.5, xmax=2.5), + defineHistogram('CaloPhi', type='TH1F', path='EXPERT', title="L2Electron Hypo #phi^{calo} ; #phi^{calo};Nevents", xbins=320, xmin=-3.2, xmax=3.2) ] monTool.HistPath = 'L2ElectronHypo/'+tool.name() tool.MonTool = monTool diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py index 41045436c2cb..6545372fb8f3 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2PhotonHypoTool.py @@ -15,10 +15,10 @@ def TrigL2PhotonHypoToolFromDict( chainDict ): from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram monTool = GenericMonitoringTool("MonTool"+name) monTool.Histograms = [ - defineHistogram('CutCounter', type='TH1I', title="L2Photon Hypo Cut Counter;Cut Counter", xbins=8, xmin=-1.5, xmax=7.5, opt="kCumulative"), - defineHistogram('PtCalo', type='TH1F', title="L2Photon Hypo p_{T}^{calo} [MeV];p_{T}^{calo} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), - defineHistogram('CaloEta', type='TH1F', title="L2Photon Hypo #eta^{calo} ; #eta^{calo};Nevents", xbins=200, xmin=-2.5, xmax=2.5), - defineHistogram('CaloPhi', type='TH1F', title="L2Photon Hypo #phi^{calo} ; #phi^{calo};Nevents", xbins=320, xmin=-3.2, xmax=3.2) ] + defineHistogram('CutCounter', type='TH1I', path='EXPERT', title="L2Photon Hypo Cut Counter;Cut Counter", xbins=8, xmin=-1.5, xmax=7.5, opt="kCumulative"), + defineHistogram('PtCalo', type='TH1F', path='EXPERT', title="L2Photon Hypo p_{T}^{calo} [MeV];p_{T}^{calo} [MeV];Nevents", xbins=50, xmin=0, xmax=100000), + defineHistogram('CaloEta', type='TH1F', path='EXPERT', title="L2Photon Hypo #eta^{calo} ; #eta^{calo};Nevents", xbins=200, xmin=-2.5, xmax=2.5), + defineHistogram('CaloPhi', type='TH1F', path='EXPERT', title="L2Photon Hypo #phi^{calo} ; #phi^{calo};Nevents", xbins=320, xmin=-3.2, xmax=3.2) ] monTool.HistPath = 'L2PhotonHypo/'+tool.name() tool.MonTool = monTool diff --git a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoMonitoringTool.py b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoMonitoringTool.py index 3eaa9a96534b..e9bdc9f099ef 100644 --- a/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoMonitoringTool.py +++ b/Trigger/TrigHypothesis/TrigMissingETHypo/python/TrigMissingETHypoMonitoringTool.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram @@ -9,21 +9,21 @@ class TrigMissingETHypoMonitoringToolBase(GenericMonitoringTool): self.Histograms = [] - hEx_log = defineHistogram('Hypo_MEx_log', type='TH1F', title="Missing E_{x};sgn(ME_{x}) log_{10}(ME_{x}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) - hEy_log = defineHistogram('Hypo_MEy_log', type='TH1F', title="Missing E_{y};sgn(ME_{y}) log_{10}(ME_{y}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) - hEz_log = defineHistogram('Hypo_MEz_log', type='TH1F', title="Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) - hMET_log = defineHistogram('Hypo_MET_log', type='TH1F', title="|Missing E_{T}|;log_{10}(ME_{T}/GeV)", xbins=35, xmin=-1.875, xmax=5.375) - hSumEt_log = defineHistogram('Hypo_SumEt_log', type='TH1F', title="Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", xbins=35, xmin=-1.875, xmax=5.125) - - hEx_lin = defineHistogram('Hypo_MEx_lin', type='TH1F', title="Missing E_{x};ME_{x} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) - hEy_lin = defineHistogram('Hypo_MEy_lin', type='TH1F', title="Missing E_{y};ME_{y} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) - hEz_lin = defineHistogram('Hypo_MEz_lin', type='TH1F', title="Missing E_{z};ME_{z} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) - hMET_lin = defineHistogram('Hypo_MET_lin', type='TH1F', title="|Missing E_{T}|;ME_{T} (GeV)", xbins=105, xmin=-13.5, xmax=301.5) - hSumEt_lin = defineHistogram('Hypo_SumEt_lin', type='TH1F', title="Sum |E_{T}|;SumE_{T} (GeV)", xbins=155, xmin=-27., xmax=2000.) - - hMETPhi = defineHistogram('Hypo_MET_phi', type='TH1F', title="MET #phi;#phi (rad)", xbins=32, xmin=-3.1416, xmax=3.1416) - hXS = defineHistogram('Hypo_XS', type='TH1F', title="EF Significance; (XS/GeV^{1/2})", xbins=40, xmin=-0.025, xmax=20.025) - hXS2 = defineHistogram('Hypo_XS2', type='TH1F', title="EF Significance 2; (XS2/GeV^{1/2})", xbins=40, xmin=-0.025, xmax=20.025) + hEx_log = defineHistogram('Hypo_MEx_log', type='TH1F', path='EXPERT', title="Missing E_{x};sgn(ME_{x}) log_{10}(ME_{x}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) + hEy_log = defineHistogram('Hypo_MEy_log', type='TH1F', path='EXPERT', title="Missing E_{y};sgn(ME_{y}) log_{10}(ME_{y}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) + hEz_log = defineHistogram('Hypo_MEz_log', type='TH1F', path='EXPERT', title="Missing E_{z};sgn(ME_{z}) log_{10}(ME_{z}/GeV)", xbins=41, xmin=-5.075, xmax=5.075) + hMET_log = defineHistogram('Hypo_MET_log', type='TH1F', path='EXPERT', title="|Missing E_{T}|;log_{10}(ME_{T}/GeV)", xbins=35, xmin=-1.875, xmax=5.375) + hSumEt_log = defineHistogram('Hypo_SumEt_log', type='TH1F', path='EXPERT', title="Sum |E_{T}|;log_{10}(SumE_{T}/GeV)", xbins=35, xmin=-1.875, xmax=5.125) + + hEx_lin = defineHistogram('Hypo_MEx_lin', type='TH1F', path='EXPERT', title="Missing E_{x};ME_{x} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) + hEy_lin = defineHistogram('Hypo_MEy_lin', type='TH1F', path='EXPERT', title="Missing E_{y};ME_{y} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) + hEz_lin = defineHistogram('Hypo_MEz_lin', type='TH1F', path='EXPERT', title="Missing E_{z};ME_{z} (GeV)", xbins=199, xmin=-298.5, xmax=298.5) + hMET_lin = defineHistogram('Hypo_MET_lin', type='TH1F', path='EXPERT', title="|Missing E_{T}|;ME_{T} (GeV)", xbins=105, xmin=-13.5, xmax=301.5) + hSumEt_lin = defineHistogram('Hypo_SumEt_lin', type='TH1F', path='EXPERT', title="Sum |E_{T}|;SumE_{T} (GeV)", xbins=155, xmin=-27., xmax=2000.) + + hMETPhi = defineHistogram('Hypo_MET_phi', type='TH1F', path='EXPERT', title="MET #phi;#phi (rad)", xbins=32, xmin=-3.1416, xmax=3.1416) + hXS = defineHistogram('Hypo_XS', type='TH1F', path='EXPERT', title="EF Significance; (XS/GeV^{1/2})", xbins=40, xmin=-0.025, xmax=20.025) + hXS2 = defineHistogram('Hypo_XS2', type='TH1F', path='EXPERT', title="EF Significance 2; (XS2/GeV^{1/2})", xbins=40, xmin=-0.025, xmax=20.025) class TrigMissingETHypoMonitoringTool(TrigMissingETHypoMonitoringToolBase): diff --git a/Trigger/TrigHypothesis/TrigMultiVarHypo/python/TrigL2CaloRingerFexMTInit.py b/Trigger/TrigHypothesis/TrigMultiVarHypo/python/TrigL2CaloRingerFexMTInit.py index 6953a89590b8..7cb18851af92 100755 --- a/Trigger/TrigHypothesis/TrigMultiVarHypo/python/TrigL2CaloRingerFexMTInit.py +++ b/Trigger/TrigHypothesis/TrigMultiVarHypo/python/TrigL2CaloRingerFexMTInit.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # from TrigMultiVarHypo.TrigL2CaloRingerCutDefs import TrigL2CaloRingerCutDefs @@ -39,14 +39,14 @@ def add_monitoring(tool): from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram monTool = GenericMonitoringTool("RingerFexMon") - monTool.Histograms = [ defineHistogram('Et', type='TH1F', title="E_{T}", xbins=50, xmin=0, xmax=50), - defineHistogram('Eta', type='TH1F', title="#eta", xbins=25, xmin=0, xmax=2.5), - defineHistogram('rnnOut', type='TH1F', title="NN output", xbins=80, xmin=-1, xmax=1), - defineHistogram('Eta,rnnOut', type='TH2F', title="NN output as function of #eta", xbins=15, xmin=0, xmax=2.5, ybins=80, ymin=-1, ymax=1), - defineHistogram('Et,rnnOut', type='TH2F', title="NN output as function of E_{T}", xbins=20, xmin=0, xmax=50, ybins=80, ymin=-1, ymax=1), - defineHistogram( "TIME_total", title="Total Time;time[ms]", xbins=50, xmin=0, xmax=100 ), - defineHistogram( "TIME_preprocess", title="Preprocessing Time;time[ms]", xbins=50, xmin=0, xmax=50 ), - defineHistogram( "TIME_decision", title="Decision Time;time[ms]", xbins=50, xmin=0, xmax=50 )] + monTool.Histograms = [ defineHistogram('Et', type='TH1F', path='EXPERT', title="E_{T}", xbins=50, xmin=0, xmax=50), + defineHistogram('Eta', type='TH1F', path='EXPERT', title="#eta", xbins=25, xmin=0, xmax=2.5), + defineHistogram('rnnOut', type='TH1F', path='EXPERT', title="NN output", xbins=80, xmin=-1, xmax=1), + defineHistogram('Eta,rnnOut', type='TH2F', path='EXPERT', title="NN output as function of #eta", xbins=15, xmin=0, xmax=2.5, ybins=80, ymin=-1, ymax=1), + defineHistogram('Et,rnnOut', type='TH2F', path='EXPERT', title="NN output as function of E_{T}", xbins=20, xmin=0, xmax=50, ybins=80, ymin=-1, ymax=1), + defineHistogram( "TIME_total", path='EXPERT', title="Total Time;time[ms]", xbins=50, xmin=0, xmax=100 ), + defineHistogram( "TIME_preprocess", path='EXPERT', title="Preprocessing Time;time[ms]", xbins=50, xmin=0, xmax=50 ), + defineHistogram( "TIME_decision", path='EXPERT', title="Decision Time;time[ms]", xbins=50, xmin=0, xmax=50 )] tool.MonTool = monTool monTool.HistPath = 'TrigL2CaloRinger/'+tool.name() diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/python/TrigMuonHypoMonitoringMT.py b/Trigger/TrigHypothesis/TrigMuonHypo/python/TrigMuonHypoMonitoringMT.py index 16301782450a..268d88630712 100755 --- a/Trigger/TrigHypothesis/TrigMuonHypo/python/TrigMuonHypoMonitoringMT.py +++ b/Trigger/TrigHypothesis/TrigMuonHypo/python/TrigMuonHypoMonitoringMT.py @@ -1,6 +1,6 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # -# PORPOSE: AthenaMT Migration +# PURPOSE: AthenaMT Migration # from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram @@ -10,15 +10,15 @@ class TrigMufastHypoMonitoring(GenericMonitoringTool): super(TrigMufastHypoMonitoring, self).__init__(name) self.HistPath = name - self.Histograms = [ defineHistogram('Pt', type='TH1F', title="P_{T} reconstruction from #muFast; P_{T} (GeV)", xbins=200, xmin=-100, xmax=100), - defineHistogram('PtFL', type='TH1F', title="P_{T} of not selected muons from #muFast; p_{T} (GeV)", xbins=200, xmin=-100, xmax=100), - defineHistogram('Eta , Phi', type='TH2F', title="Eta vs Phi reconstruction of #muFast; Eta; Phi",xbins=50, xmin=-3.2, xmax=3.2, ybins=25, ymin=-3.15, ymax=3.15), - defineHistogram('Eta', type='TH1F', title="Eta reconstruction from #muFast; Eta",xbins=100, xmin=-3.2, xmax=3.2), - defineHistogram('Phi', type='TH1F', title="Phi reconstruction from #muFast; Phi",xbins=100, xmin=-3.15, xmax=3.15), - defineHistogram('ZatSt, Phi', type='TH2F', title="Z vs Phi reconstructed in MIDDLE station; Z (cm); Phi (rad)",xbins=50, xmin=-1200., xmax=1200., ybins=25, ymin=-3.2, ymax=3.2), - defineHistogram('XatSt , YatSt', type='TH2F', title="Y vs X reconstructed in MIDDLE station; X (cm); Y(cm)",xbins=50, xmin=-1200., xmax=1200., ybins=50, ymin=-1200., ymax=1200.), - defineHistogram('ZatBe', type='TH1F', title="DCA along Z; Z (cm)",xbins=100, xmin=-2100, xmax=2100), - defineHistogram('XatBe', type='TH1F', title="DCA along X; X (cm)",xbins=100, xmin=-1000, xmax=1000) ] + self.Histograms = [ defineHistogram('Pt', type='TH1F', path='EXPERT', title="P_{T} reconstruction from #muFast; P_{T} (GeV)", xbins=200, xmin=-100, xmax=100), + defineHistogram('PtFL', type='TH1F', path='EXPERT', title="P_{T} of not selected muons from #muFast; p_{T} (GeV)", xbins=200, xmin=-100, xmax=100), + defineHistogram('Eta , Phi', type='TH2F', path='EXPERT', title="Eta vs Phi reconstruction of #muFast; Eta; Phi",xbins=50, xmin=-3.2, xmax=3.2, ybins=25, ymin=-3.15, ymax=3.15), + defineHistogram('Eta', type='TH1F', path='EXPERT', title="Eta reconstruction from #muFast; Eta",xbins=100, xmin=-3.2, xmax=3.2), + defineHistogram('Phi', type='TH1F', path='EXPERT', title="Phi reconstruction from #muFast; Phi",xbins=100, xmin=-3.15, xmax=3.15), + defineHistogram('ZatSt, Phi', type='TH2F', path='EXPERT', title="Z vs Phi reconstructed in MIDDLE station; Z (cm); Phi (rad)",xbins=50, xmin=-1200., xmax=1200., ybins=25, ymin=-3.2, ymax=3.2), + defineHistogram('XatSt , YatSt', type='TH2F', path='EXPERT', title="Y vs X reconstructed in MIDDLE station; X (cm); Y(cm)",xbins=50, xmin=-1200., xmax=1200., ybins=50, ymin=-1200., ymax=1200.), + defineHistogram('ZatBe', type='TH1F', path='EXPERT', title="DCA along Z; Z (cm)",xbins=100, xmin=-2100, xmax=2100), + defineHistogram('XatBe', type='TH1F', path='EXPERT', title="DCA along X; X (cm)",xbins=100, xmin=-1000, xmax=1000) ] class TrigmuCombHypoMonitoring(GenericMonitoringTool): @@ -26,19 +26,19 @@ class TrigmuCombHypoMonitoring(GenericMonitoringTool): super(TrigmuCombHypoMonitoring, self).__init__(name) self.HistPath = name - self.Histograms = [ defineHistogram('Pt', type='TH1F', title="p_{T} reconstruction from #muComb; p_{T} (GeV)", + self.Histograms = [ defineHistogram('Pt', type='TH1F', path='EXPERT', title="p_{T} reconstruction from #muComb; p_{T} (GeV)", xbins=210, xmin=-105, xmax=105) ] - self.Histograms += [ defineHistogram('PtFL', type='TH1F', title="p_{T} of not selected muons from #muComb; p_{T} (GeV)", + self.Histograms += [ defineHistogram('PtFL', type='TH1F', path='EXPERT', title="p_{T} of not selected muons from #muComb; p_{T} (GeV)", xbins=210, xmin=-105., xmax=105.) ] - self.Histograms += [ defineHistogram('StrategyFlag', type='TH1F', title="Combination Strategy from #muComb; Strategy Code", + self.Histograms += [ defineHistogram('StrategyFlag', type='TH1F', path='EXPERT', title="Combination Strategy from #muComb; Strategy Code", xbins=12, xmin=-1.5, xmax=10.5) ] - self.Histograms += [ defineHistogram('Eta', type='TH1F', title="Eta reconstruction from #muComb; Eta", + self.Histograms += [ defineHistogram('Eta', type='TH1F', path='EXPERT', title="Eta reconstruction from #muComb; Eta", xbins=108, xmin=-2.7, xmax=2.7) ] - self.Histograms += [ defineHistogram('Phi', type='TH1F', title="Phi reconstruction from #muComb; Phi (rad)", + self.Histograms += [ defineHistogram('Phi', type='TH1F', path='EXPERT', title="Phi reconstruction from #muComb; Phi (rad)", xbins=96, xmin=-3.1416, xmax=3.1416) ] - self.Histograms += [ defineHistogram('Z0', type='TH1F', title="PCA along Z from ID track from #muComb; PCA(Z0) (mm)", + self.Histograms += [ defineHistogram('Z0', type='TH1F', path='EXPERT', title="PCA along Z from ID track from #muComb; PCA(Z0) (mm)", xbins=100, xmin=-200, xmax=200) ] - self.Histograms += [ defineHistogram('A0', type='TH1F', title="PCA along x-y from ID track from #muComb; PCA(A0) (mm)", + self.Histograms += [ defineHistogram('A0', type='TH1F', path='EXPERT', title="PCA along x-y from ID track from #muComb; PCA(A0) (mm)", xbins=100, xmin=-0.6, xmax=0.6) ] class TrigMuisoHypoMonitoring(GenericMonitoringTool): @@ -47,8 +47,8 @@ class TrigMuisoHypoMonitoring(GenericMonitoringTool): super(TrigMuisoHypoMonitoring, self).__init__(name) self.HistPath = name - self.Histograms = [ defineHistogram('CutCounter', type='TH1F', title="MuIsoHypo cut counter;cut; nevents", xbins=9, xmin=-1.5, xmax=7.5, opt="kCumulative") ] - self.Histograms += [ defineHistogram('SumPtCone', type='TH1F', title="MuIsoHypo SumPt in cone around muon;E [GeV/c]; nevents", xbins=200, xmin=0., xmax=15.) ] + self.Histograms = [ defineHistogram('CutCounter', type='TH1F', path='EXPERT', title="MuIsoHypo cut counter;cut; nevents", xbins=9, xmin=-1.5, xmax=7.5, opt="kCumulative") ] + self.Histograms += [ defineHistogram('SumPtCone', type='TH1F', path='EXPERT', title="MuIsoHypo SumPt in cone around muon;E [GeV/c]; nevents", xbins=200, xmin=0., xmax=15.) ] class TrigMuonEFMSonlyHypoMonitoring(GenericMonitoringTool): @@ -57,17 +57,17 @@ class TrigMuonEFMSonlyHypoMonitoring(GenericMonitoringTool): super(TrigMuonEFMSonlyHypoMonitoring, self).__init__(name) self.HistPath = name - self.Histograms = [ defineHistogram('Pt', type='TH1F', title="P_{T} reconstruction from #TrigMuonEFMSonlyHypo; P_{T} (MeV)", + self.Histograms = [ defineHistogram('Pt', type='TH1F', path='EXPERT', title="P_{T} reconstruction from #TrigMuonEFMSonlyHypo; P_{T} (MeV)", xbins=200, xmin=-100, xmax=100) ] - self.Histograms += [ defineHistogram('Eta', type='TH1F', title="Eta reconstruction from #TrigMuonEFMSonlyHypo; Eta", + self.Histograms += [ defineHistogram('Eta', type='TH1F', path='EXPERT', title="Eta reconstruction from #TrigMuonEFMSonlyHypo; Eta", xbins=100, xmin=-3.2, xmax=3.2) ] - self.Histograms += [ defineHistogram('Phi', type='TH1F', title="Phi reconstruction from #TrigMuonEFMSonlyHypo; Phi", + self.Histograms += [ defineHistogram('Phi', type='TH1F', path='EXPERT', title="Phi reconstruction from #TrigMuonEFMSonlyHypo; Phi", xbins=100, xmin=-3.15, xmax=3.15) ] - self.Histograms += [ defineHistogram('Pt_sel', type='TH1F', title="Selected P_{T} reconstruction from #TrigMuonEFMSonlyHypo; P_{T} (MeV)", + self.Histograms += [ defineHistogram('Pt_sel', type='TH1F', path='EXPERT', title="Selected P_{T} reconstruction from #TrigMuonEFMSonlyHypo; P_{T} (MeV)", xbins=200, xmin=-100, xmax=100) ] - self.Histograms += [ defineHistogram('Eta_sel', type='TH1F', title="Selected Eta reconstruction from #TrigMuonEFMSonlyHypo; Eta", + self.Histograms += [ defineHistogram('Eta_sel', type='TH1F', path='EXPERT', title="Selected Eta reconstruction from #TrigMuonEFMSonlyHypo; Eta", xbins=100, xmin=-3.2, xmax=3.2) ] - self.Histograms += [ defineHistogram('Phi_sel', type='TH1F', title="Selected Phi reconstruction from #TrigMuonEFMSonlyHypo; Phi", + self.Histograms += [ defineHistogram('Phi_sel', type='TH1F', path='EXPERT', title="Selected Phi reconstruction from #TrigMuonEFMSonlyHypo; Phi", xbins=100, xmin=-3.15, xmax=3.15) ] class TrigMuonEFCombinerHypoMonitoring(GenericMonitoringTool): @@ -76,15 +76,15 @@ class TrigMuonEFCombinerHypoMonitoring(GenericMonitoringTool): super(TrigMuonEFCombinerHypoMonitoring, self).__init__(name) self.HistPath = name - self.Histograms = [ defineHistogram('Pt', type='TH1F', title="P_{T} reconstruction from #TrigMuonEFCombinerHypo; P_{T} (MeV)", + self.Histograms = [ defineHistogram('Pt', type='TH1F', path='EXPERT', title="P_{T} reconstruction from #TrigMuonEFCombinerHypo; P_{T} (MeV)", xbins=200, xmin=-100, xmax=100) ] - self.Histograms += [ defineHistogram('Eta', type='TH1F', title="Eta reconstruction from #TrigMuonEFCombinerHypo; Eta", + self.Histograms += [ defineHistogram('Eta', type='TH1F', path='EXPERT', title="Eta reconstruction from #TrigMuonEFCombinerHypo; Eta", xbins=100, xmin=-3.2, xmax=3.2) ] - self.Histograms += [ defineHistogram('Phi', type='TH1F', title="Phi reconstruction from #TrigMuonEFCombinerHypo; Phi", + self.Histograms += [ defineHistogram('Phi', type='TH1F', path='EXPERT', title="Phi reconstruction from #TrigMuonEFCombinerHypo; Phi", xbins=100, xmin=-3.15, xmax=3.15) ] - self.Histograms += [ defineHistogram('Pt_sel', type='TH1F', title="Selected P_{T} reconstruction from #TrigMuonEFCombinerHypo; P_{T} (MeV)", + self.Histograms += [ defineHistogram('Pt_sel', type='TH1F', path='EXPERT', title="Selected P_{T} reconstruction from #TrigMuonEFCombinerHypo; P_{T} (MeV)", xbins=200, xmin=-100, xmax=100) ] - self.Histograms += [ defineHistogram('Eta_sel', type='TH1F', title="Selected Eta reconstruction from #TrigMuonEFCombinerHypo; Eta", + self.Histograms += [ defineHistogram('Eta_sel', type='TH1F', path='EXPERT', title="Selected Eta reconstruction from #TrigMuonEFCombinerHypo; Eta", xbins=100, xmin=-3.2, xmax=3.2) ] - self.Histograms += [ defineHistogram('Phi_sel', type='TH1F', title="Selected Phi reconstruction from #TrigMuonEFCombinerHypo; Phi", + self.Histograms += [ defineHistogram('Phi_sel', type='TH1F', path='EXPERT', title="Selected Phi reconstruction from #TrigMuonEFCombinerHypo; Phi", xbins=100, xmin=-3.15, xmax=3.15) ] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py index 780ec7476a5e..8b465c1e96cd 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/jetDefs.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # def jetRecoSequence(RoIs): @@ -23,16 +23,20 @@ def jetRecoSequence(RoIs): mon = GenericMonitoringTool("CaloDataAccessSvcMon") mon.Histograms += [ defineHistogram("TIME_locking_LAr_RoI", + path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), defineHistogram("roiROBs_LAr", + path="EXPERT", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), defineHistogram("TIME_locking_LAr_FullDet", + path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), defineHistogram("roiEta_LAr,roiPhi_LAr", type="TH2F", + path="EXPERT", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/metDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/metDefs.py index f83bfc6ab88f..eac0537f8f38 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/metDefs.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/metDefs.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # def metCellRecoSequence(RoIs): @@ -28,10 +28,10 @@ def metCellRecoSequence(RoIs): # Set up monitoring for CaloDataAccess ################################################# mon = GenericMonitoringTool("CaloDataAccessSvcMon") - mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiROBs_LAr", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), - defineHistogram( "TIME_locking_LAr_FullDet", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-pi, ymax=pi )] + mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", path='EXPERT', title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiROBs_LAr", path='EXPERT', title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), + defineHistogram( "TIME_locking_LAr_FullDet", path='EXPERT', title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", path='EXPERT', title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-pi, ymax=pi )] svcMgr += TrigCaloDataAccessSvc() svcMgr.TrigCaloDataAccessSvc.MonTool = mon @@ -60,8 +60,8 @@ def metCellRecoSequence(RoIs): # Setup monitoring for EFMissingETAlg #/////////////////////////////////////////// metMon = GenericMonitoringTool("METMonTool") - metMon.Histograms = [ defineHistogram( "TIME_Total", title="Time spent Alg", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "TIME_Loop", title="Time spent in Tools loop", xbins=100, xmin=0, xmax=100 )] + metMon.Histograms = [ defineHistogram( "TIME_Total", path='EXPERT', title="Time spent Alg", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "TIME_Loop", path='EXPERT', title="Time spent in Tools loop", xbins=100, xmin=0, xmax=100 )] from TrigEFMissingET.TrigEFMissingETMonitoring import ( hEx_log, hEy_log, hEz_log, hMET_log, hSumEt_log, hMET_lin, hSumEt_lin, hXS, hMETPhi, hMETStatus, diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/jet.recoToy.py b/Trigger/TrigValidation/TrigUpgradeTest/share/jet.recoToy.py index 52e63837969e..ca018f0cf733 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/jet.recoToy.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/jet.recoToy.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # include("TrigUpgradeTest/testHLT_MT.py") @@ -27,16 +27,20 @@ if TriggerFlags.doCalo: mon = GenericMonitoringTool("CaloDataAccessSvcMon") mon.Histograms += [ defineHistogram("TIME_locking_LAr_RoI", + path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), defineHistogram("roiROBs_LAr", + path="EXPERT", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), defineHistogram("TIME_locking_LAr_FullDet", + path="EXPERT", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram("roiEta_LAr,roiPhi_LAr", + defineHistogram("roiEta_LAr,roiPhi_LAr", type="TH2F", + path="EXPERT", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/metTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/metTest.py index f84167c36398..3c9800612f1b 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/metTest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/metTest.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # OutputLevel=WARNING include("TrigUpgradeTest/testHLT_MT.py") @@ -12,10 +12,10 @@ from TrigT2CaloCommon.TrigT2CaloCommonConf import TrigCaloDataAccessSvc#, TestCa from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool, defineHistogram mon = GenericMonitoringTool("CaloDataAccessSvcMon") -mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiROBs_LAr", title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), - defineHistogram( "TIME_locking_LAr_FullDet", title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] +mon.Histograms += [defineHistogram( "TIME_locking_LAr_RoI", path='EXPERT', title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiROBs_LAr", path='EXPERT', title="Number of ROBs unpacked in RoI requests", xbins=20, xmin=0, xmax=20 ), + defineHistogram( "TIME_locking_LAr_FullDet", path='EXPERT', title="Time spent in unlocking the LAr collection", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "roiEta_LAr,roiPhi_LAr", type="TH2F", path='EXPERT', title="Geometric usage", xbins=50, xmin=-5, xmax=5, ybins=64, ymin=-math.pi, ymax=math.pi )] svcMgr += TrigCaloDataAccessSvc() svcMgr.TrigCaloDataAccessSvc.MonTool = mon @@ -52,8 +52,8 @@ metAlg.HelperTool= helperTool metAlg.OutputLevel=WARNING metMon = GenericMonitoringTool("METMonTool") -metMon.Histograms = [ defineHistogram( "TIME_Total", title="Time spent Alg", xbins=100, xmin=0, xmax=100 ), - defineHistogram( "TIME_Loop", title="Time spent in Tools loop", xbins=100, xmin=0, xmax=100 )] +metMon.Histograms = [ defineHistogram( "TIME_Total", path='EXPERT', title="Time spent Alg", xbins=100, xmin=0, xmax=100 ), + defineHistogram( "TIME_Loop", path='EXPERT', title="Time spent in Tools loop", xbins=100, xmin=0, xmax=100 )] from TrigEFMissingET.TrigEFMissingETMonitoring import ( hEx_log, hEy_log, hEz_log, hMET_log, hSumEt_log, hMET_lin, hSumEt_lin, hXS, hMETPhi, hMETStatus, -- GitLab From a4cb2e1a372f211ffff73015c489056ab6fc5199 Mon Sep 17 00:00:00 2001 From: Charles Leggett <charles.g.leggett@gmail.com> Date: Thu, 24 Jan 2019 18:51:29 +0000 Subject: [PATCH 095/192] TRT_CalibAlgs: fixes for genconf in gcc8 --- .../TRT_CalibAlgs/TRT_StrawStatus.h | 24 ++------- .../TRT_CalibAlgs/src/TRT_StrawStatus.cxx | 52 +++++++++++++------ 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h index e275dc23583a..2bf037d4f85a 100644 --- a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h +++ b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h @@ -26,6 +26,7 @@ #include <cstdlib> #include <string> #include <vector> +#include <array> class AtlasDetectorID; class Identifier; @@ -82,28 +83,13 @@ namespace InDet number boards 0-9 barrel, 0-19 endcap (first 12 on A wheels, ordering from smaller to larger |z|) number chips 0-103 barrel, 0-239 endcap number pads: chips x 2 */ - - int m_nBarrelStraws; // 1642 - int m_nEndcapStraws; // 3840 - int m_nAllStraws; // 1642+3840=5484 - - int m_nBarrelBoards; // 9 - int m_nEndcapBoards; // 20 - int m_nAllBoards; // 29 - - int m_nBarrelChips; // 104 - int m_nEndcapChips; // 240 - int m_nAllChips; // 344 - - int m_nBarrelPads; // 2 x N of chips - int m_nEndcapPads; - int m_nAllPads; - + int m_nEvents; // count N of processed events, needed for normalization int m_runNumber; - + /** accumulate hits, last index: 0 - all hits, 1 - hits on track, 2 - all HT (TR) hits, 3 - HT (TR) hits on track */ - int m_accumulateHits[2][32][5482][6]; + typedef std::array<std::array<std::array<std::array<int,6>,5482>,32>,2> ACCHITS_t; + ACCHITS_t *m_accumulateHits; const TRT_ID *m_TRTHelper; diff --git a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/src/TRT_StrawStatus.cxx b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/src/TRT_StrawStatus.cxx index 662fc15f4aad..0fe5033c1374 100644 --- a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/src/TRT_StrawStatus.cxx +++ b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/src/TRT_StrawStatus.cxx @@ -37,16 +37,29 @@ int last_lumiBlock0=-99; +const size_t nBarrelStraws { 1642 }; +const size_t nEndcapStraws { 3840 }; +const size_t nAllStraws { nBarrelStraws + nEndcapStraws }; + +const size_t nBarrelBoards { 9 }; +const size_t nEndcapBoards { 20 }; +const size_t nAllBoards { nBarrelBoards + nEndcapBoards }; + +const size_t nBarrelChips { 104 }; +const size_t nEndcapChips { 240 }; +const size_t nAllChips { nBarrelChips + nAllChips }; + +const size_t nBarrelPads { 2 * nBarrelChips }; +const size_t nEndcapPads { 2 * nEndcapChips }; +const size_t nAllPads { 2 * nAllChips }; + //================ Constructor ================================================= InDet::TRT_StrawStatus::TRT_StrawStatus(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name,pSvcLocator), -m_nBarrelStraws(1642), m_nEndcapStraws(3840), m_nAllStraws(5482), -m_nBarrelBoards(9), m_nEndcapBoards(20), m_nAllBoards(29), -m_nBarrelChips(104), m_nEndcapChips(240), m_nAllChips(344), -m_nBarrelPads(208), m_nEndcapPads(480), m_nAllPads(688), m_nEvents(0), m_runNumber(0), +m_accumulateHits(0), m_TRTHelper(0), m_mapSvc("TRT_HWMappingSvc",name), m_DCSSvc("TRT_DCS_ConditionsSvc",name), @@ -64,8 +77,8 @@ m_printDetailedInformation(0) // print the information on mapping as well as whi declareProperty("HWMapSvc", m_mapSvc); declareProperty("InDetTRT_DCS_ConditionsSvc",m_DCSSvc); declareProperty("locR_cut", m_locR_cut ); - declareProperty("printDetailedInformation", m_printDetailedInformation); - clear(); + declareProperty("printDetailedInformation", m_printDetailedInformation); + } //================ Destructor ================================================= @@ -78,6 +91,11 @@ InDet::TRT_StrawStatus::~TRT_StrawStatus() StatusCode InDet::TRT_StrawStatus::initialize() { + + m_accumulateHits = new ACCHITS_t; + assert( (*m_accumulateHits)[0][0].size() == nAllStraws ); + clear(); + // Code entered here will be executed once at program start. // Initialize ReadHandleKey ATH_CHECK(m_eventInfoKey.initialize()); @@ -100,6 +118,7 @@ StatusCode InDet::TRT_StrawStatus::finalize(){ reportResults(); if (m_printDetailedInformation) printDetailedInformation(); // Code entered here will be executed once at the end of the program run. + delete m_accumulateHits; return StatusCode::SUCCESS; } @@ -218,8 +237,8 @@ StatusCode InDet::TRT_StrawStatus::execute(){ Identifier id = driftCircle->identify(); int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index - m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][1]++; // accumulate hits on track - if (driftCircle->highLevel()) m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][3]++; // accumulate hits on track + (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][1]++; // accumulate hits on track + if (driftCircle->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][3]++; // accumulate hits on track } // end trackStatesIt loop @@ -255,8 +274,8 @@ StatusCode InDet::TRT_StrawStatus::execute(){ for (DataVector<TRT_RDORawData>::const_iterator trtIt = TRTCollection->begin(); trtIt != TRTCollection->end(); trtIt++) { Identifier id = (*trtIt)->identify(); int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index - m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][0]++; // accumulate all hits - if ((*trtIt)->highLevel()) m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][2]++; // accumulate TR hits + (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][0]++; // accumulate all hits + if ((*trtIt)->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][2]++; // accumulate TR hits if (std::find(holeIdentifiers.begin(), holeIdentifiers.end(), id) != holeIdentifiers.end()) // a hole was found on the same straw, but hits is there holeIdentifiersWithHits.push_back( id ); @@ -273,10 +292,10 @@ StatusCode InDet::TRT_StrawStatus::execute(){ int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index - m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][4]++; + (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][4]++; if (std::find(holeIdentifiersWithHits.begin(), holeIdentifiersWithHits.end(), id) != holeIdentifiersWithHits.end()) - m_accumulateHits[(index[0]>0)?0:1][index[2]][index[5]][5]++; + (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][5]++; } //================ End loop over all hits @@ -317,8 +336,7 @@ StatusCode InDet::TRT_StrawStatus::execute(){ void InDet::TRT_StrawStatus::clear() { m_nEvents = 0; - for (int i=0; i<2; i++) for (int j=0; j<32; j++) for (int k=0; k<m_nAllStraws; k++) for (int m=0; m<6; m++) - m_accumulateHits[i][j][k][m] = 0; + *m_accumulateHits = {}; return; } @@ -328,11 +346,11 @@ void InDet::TRT_StrawStatus::reportResults() { snprintf(fileName, 299,"%s.%07d_newFormat.txt", m_fileName.c_str(), m_runNumber); FILE *f = fopen(fileName, "w"); fprintf(f, "%d %d %d %d %d %d %d %d %d \n", 0, 0, 0, 0, 0, 0, 0, 0, m_nEvents); - for (int i=0; i<2; i++) for (int j=0; j<32; j++) for (int k=0; k<m_nAllStraws; k++) { + for (size_t i=0; i<2; i++) for (size_t j=0; j<32; j++) for (size_t k=0; k<nAllStraws; k++) { int side = (i>0)?-1:1; if (k>=1642) side *= 2; - fprintf(f, "%d %d %d", side, j, k); - for (int m=0; m<6; m++) fprintf(f, " %d", m_accumulateHits[i][j][k][m]); + fprintf(f, "%d %zu %zu", side, j, k); + for (int m=0; m<6; m++) fprintf(f, " %d", (*m_accumulateHits)[i][j][k][m]); fprintf(f, "\n"); } fclose(f); -- GitLab From 1d444bdabb9f594e3b80d38d76a69160596d4e26 Mon Sep 17 00:00:00 2001 From: Susumu Oda <susumu.oda@cern.ch> Date: Thu, 24 Jan 2019 18:54:22 +0000 Subject: [PATCH 096/192] Make SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText and SCT_TestCablingAlg reentrant (ATLASRECTS-4824) --- .../InDetDetDescr/SCT_Cabling/CMakeLists.txt | 2 +- .../SCT_Cabling/share/TestSCT_CablingCfg.sh | 4 ++-- .../src/SCT_CablingCondAlgFromCoraCool.cxx | 18 +++++++++--------- .../src/SCT_CablingCondAlgFromCoraCool.h | 10 +++++----- .../src/SCT_CablingCondAlgFromText.cxx | 10 +++++----- .../src/SCT_CablingCondAlgFromText.h | 10 +++++----- .../SCT_Cabling/src/SCT_TestCablingAlg.cxx | 8 ++++---- .../SCT_Cabling/src/SCT_TestCablingAlg.h | 12 ++++++------ 8 files changed, 37 insertions(+), 37 deletions(-) diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/CMakeLists.txt b/InnerDetector/InDetDetDescr/SCT_Cabling/CMakeLists.txt index fe5a3bb132cb..ae8d4b886dc1 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/CMakeLists.txt @@ -39,7 +39,7 @@ atlas_add_component( SCT_Cabling atlas_add_test( TestSCT_CablingCfg SCRIPT share/TestSCT_CablingCfg.sh PROPERTIES TIMEOUT 300 - ENVIRONMENT THREADS=2 ) + ENVIRONMENT THREADS=1 ) # Install files from the package: atlas_install_joboptions( share/*.py ) diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/share/TestSCT_CablingCfg.sh b/InnerDetector/InDetDetDescr/SCT_Cabling/share/TestSCT_CablingCfg.sh index 64a170078fbd..6ab4957fe3d5 100755 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/share/TestSCT_CablingCfg.sh +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/share/TestSCT_CablingCfg.sh @@ -10,7 +10,7 @@ svcMgr.AvalancheSchedulerSvc.ShowControlFlow=True svcMgr.AvalancheSchedulerSvc.ShowDataDependencies=True EOF -athena --threads=2 --config-only=bootstrap.pkl bootstrap.py +athena --threads=1 --config-only=bootstrap.pkl bootstrap.py get_files -jo SCT_Cabling/TestSCT_CablingCfg.py @@ -24,5 +24,5 @@ else echo echo "JOs reading stage finished, launching Athena from pickle file" echo - athena --evtMax=2 TestSCT_CablingCfg.pkl + athena --evtMax=2 TestSCT_CablingCfg.pkl 2>&1 fi diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.cxx b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.cxx index 4add5248d8df..66196b2084fd 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.cxx +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -173,7 +173,7 @@ namespace { // Constructor SCT_CablingCondAlgFromCoraCool::SCT_CablingCondAlgFromCoraCool(const std::string& name, ISvcLocator* pSvcLocator): - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_condSvc{"CondSvc", name} { } @@ -227,9 +227,9 @@ SCT_CablingCondAlgFromCoraCool::finalize() { // StatusCode -SCT_CablingCondAlgFromCoraCool::execute() { +SCT_CablingCondAlgFromCoraCool::execute(const EventContext& ctx) const { // Write Cond Handle - SG::WriteCondHandle<SCT_CablingData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_CablingData> writeHandle{m_writeKey, ctx}; if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." << ". In theory this should not be called, but may happen" @@ -244,7 +244,7 @@ SCT_CablingCondAlgFromCoraCool::execute() { bool isRun2{m_readKeyRod.key()==rodFolderName2}; // let's get the ROD AttrLists - SG::ReadCondHandle<CondAttrListVec> readHandleRod{m_readKeyRod}; + SG::ReadCondHandle<CondAttrListVec> readHandleRod{m_readKeyRod, ctx}; const CondAttrListVec* pRod{*readHandleRod}; if (pRod==nullptr) { ATH_MSG_FATAL("Could not find ROD configuration data: " << m_readKeyRod.key()); @@ -310,7 +310,7 @@ SCT_CablingCondAlgFromCoraCool::execute() { * In fact for the barrel its obvious, so only extract the endcap ones **/ IntMap geoMurMap; - SG::ReadCondHandle<CondAttrListVec> readHandleGeo{m_readKeyGeo}; + SG::ReadCondHandle<CondAttrListVec> readHandleGeo{m_readKeyGeo, ctx}; const CondAttrListVec* pGeo{*readHandleGeo}; if (pGeo==nullptr) { ATH_MSG_FATAL("Could not find Geog configuration data: " << m_readKeyGeo.key()); @@ -330,7 +330,7 @@ SCT_CablingCondAlgFromCoraCool::execute() { * so make a temporary data structure. **/ IntMap murPositionMap; - SG::ReadCondHandle<CondAttrListVec> readHandleRodMur{m_readKeyRodMur}; + SG::ReadCondHandle<CondAttrListVec> readHandleRodMur{m_readKeyRodMur, ctx}; const CondAttrListVec* pRodMur{*readHandleRodMur}; if (pRodMur==nullptr) { ATH_MSG_FATAL("Could not find RodMur configuration data: " << m_readKeyRodMur.key()); @@ -359,7 +359,7 @@ SCT_CablingCondAlgFromCoraCool::execute() { if (not allInsertsSucceeded) ATH_MSG_WARNING("Some MUR-position map inserts failed."); // let's get the MUR AttrLists - SG::ReadCondHandle<CondAttrListVec> readHandleMur{m_readKeyMur}; + SG::ReadCondHandle<CondAttrListVec> readHandleMur{m_readKeyMur, ctx}; const CondAttrListVec* pMur{*readHandleMur}; if (pMur==nullptr) { ATH_MSG_FATAL("Could not find ROD configuration data: " << m_readKeyMur.key()); @@ -538,7 +538,7 @@ SCT_CablingCondAlgFromCoraCool::execute() { // bool -SCT_CablingCondAlgFromCoraCool::insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) { +SCT_CablingCondAlgFromCoraCool::insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) const { if (not sn.isWellFormed()) { ATH_MSG_FATAL("Serial number is not in correct format"); return false; diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.h b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.h index ed29ad6704e3..bf2ff175ce71 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.h +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromCoraCool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_CablingCondAlgFromCoraCool_H @@ -14,7 +14,7 @@ */ //Athena includes -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaPoolUtilities/CondAttrListVec.h" #include "SCT_Cabling/SCT_CablingData.h" #include "StoreGate/ReadCondHandleKey.h" @@ -33,18 +33,18 @@ * */ -class SCT_CablingCondAlgFromCoraCool: public AthAlgorithm { +class SCT_CablingCondAlgFromCoraCool: public AthReentrantAlgorithm { public: SCT_CablingCondAlgFromCoraCool(const std::string& name, ISvcLocator* svc); virtual ~SCT_CablingCondAlgFromCoraCool() = default; virtual StatusCode initialize() override; - virtual StatusCode execute() override; + virtual StatusCode execute(const EventContext& ctx) const override; virtual StatusCode finalize() override; private: - bool insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data); + bool insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) const; SG::ReadCondHandleKey<CondAttrListVec> m_readKeyRod{this, "ReadKeyRod", "/SCT/DAQ/Config/ROD", "Key of input (raw) conditions folder of Rods"}; SG::ReadCondHandleKey<CondAttrListVec> m_readKeyRodMur{this, "ReadKeyRodMur", "/SCT/DAQ/Config/RODMUR", "Key of input (raw) conditions folder of RodMurs"}; diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.cxx b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.cxx index 1c1948fea007..ecba6f9bb078 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.cxx +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -58,7 +58,7 @@ namespace { // Constructor SCT_CablingCondAlgFromText::SCT_CablingCondAlgFromText(const std::string& name, ISvcLocator* pSvcLocator): - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_condSvc{"CondSvc", name} { } @@ -96,9 +96,9 @@ SCT_CablingCondAlgFromText::finalize() { // StatusCode -SCT_CablingCondAlgFromText::execute() { +SCT_CablingCondAlgFromText::execute(const EventContext& ctx) const { // Write Cond Handle - SG::WriteCondHandle<SCT_CablingData> writeHandle{m_writeKey}; + SG::WriteCondHandle<SCT_CablingData> writeHandle{m_writeKey, ctx}; if (writeHandle.isValid()) { ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid." << ". In theory this should not be called, but may happen" @@ -238,7 +238,7 @@ SCT_CablingCondAlgFromText::execute() { // bool -SCT_CablingCondAlgFromText::insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) { +SCT_CablingCondAlgFromText::insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) const { if (not sn.isWellFormed()) { ATH_MSG_FATAL("Serial number is not in correct format"); return false; diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.h b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.h index a989786b27fb..d01a858f29b7 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.h +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingCondAlgFromText.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_CablingCondAlgFromText_H @@ -14,7 +14,7 @@ */ //Athena includes -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "SCT_Cabling/SCT_CablingData.h" #include "StoreGate/WriteCondHandleKey.h" @@ -31,18 +31,18 @@ * */ -class SCT_CablingCondAlgFromText: public AthAlgorithm { +class SCT_CablingCondAlgFromText: public AthReentrantAlgorithm { public: SCT_CablingCondAlgFromText(const std::string& name, ISvcLocator* svc); virtual ~SCT_CablingCondAlgFromText() = default; virtual StatusCode initialize() override; - virtual StatusCode execute() override; + virtual StatusCode execute(const EventContext& ctx) const override; virtual StatusCode finalize() override; private: - bool insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data); + bool insert(const IdentifierHash& hash, const SCT_OnlineId& onlineId, const SCT_SerialNumber& sn, SCT_CablingData* data) const; StringProperty m_source{this, "DataSource", "SCT_MC_FullCabling_svc.dat", "a plain text file for the SCT Cabing"}; SG::WriteCondHandleKey<SCT_CablingData> m_writeKey{this, "WriteKey", "SCT_CablingData", "Key of output (derived) conditions folder"}; ServiceHandle<ICondSvc> m_condSvc; diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.cxx b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.cxx index c5e8dc4f814b..a3b2bd66f4ae 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.cxx +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /** @@ -37,7 +37,7 @@ using namespace std; using namespace SCT_Cabling; SCT_TestCablingAlg::SCT_TestCablingAlg(const std::string& name, ISvcLocator* pSvcLocator): - AthAlgorithm(name, pSvcLocator), + AthReentrantAlgorithm(name, pSvcLocator), m_idHelper{nullptr} { //nop } @@ -51,7 +51,7 @@ SCT_TestCablingAlg::initialize() { } std::string -SCT_TestCablingAlg::coordString(const Identifier& offlineId) { +SCT_TestCablingAlg::coordString(const Identifier& offlineId) const { using std::to_string; const std::string sep{", "}; std::string result{std::string("[") + to_string(m_idHelper->barrel_ec(offlineId)) + sep}; @@ -63,7 +63,7 @@ SCT_TestCablingAlg::coordString(const Identifier& offlineId) { } StatusCode -SCT_TestCablingAlg::execute() { +SCT_TestCablingAlg::execute(const EventContext& /*ctx*/) const { const string testAreaPath{CoveritySafe::getenv("TestArea")}; string filename{testAreaPath+"/cabling.txt"}; ATH_MSG_INFO("Filename: " << filename << " will be written to your $TestArea."); diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.h b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.h index 79347ef144f6..ee07cfe6130a 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.h +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_TestCablingAlg.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef SCT_TestCablingAlg_h @@ -11,7 +11,7 @@ * @date 20 October, 2008 **/ -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" //package includes #include "SCT_Cabling/ISCT_CablingTool.h" @@ -29,19 +29,19 @@ class SCT_ID; /** * SCT_TestCablingAlg exercises the routines of the SCT cabling service **/ -class SCT_TestCablingAlg:public AthAlgorithm { +class SCT_TestCablingAlg:public AthReentrantAlgorithm { public: SCT_TestCablingAlg(const std::string& name, ISvcLocator* pSvcLocator); ~SCT_TestCablingAlg() = default; // Standard Gaudi functions StatusCode initialize(); //!< Gaudi initialiser - StatusCode execute(); //!< Gaudi executer - StatusCode finalize(); //!< Gaudi finaliser + StatusCode execute(const EventContext& ctx) const; //!< Gaudi executer + StatusCode finalize(); //!< Gaudi finaliser private: ToolHandle<ISCT_CablingTool> m_cablingTool{this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}; const SCT_ID* m_idHelper; //!< helper for offlineId/hash conversions - std::string coordString(const Identifier& offlineId); + std::string coordString(const Identifier& offlineId) const; }; #endif // SCT_TestCablingAlg_h -- GitLab From 6579151ee6227bd9cb61b7bfd03b01691729be6d Mon Sep 17 00:00:00 2001 From: Peter van Gemmeren <gemmeren@anl.gov> Date: Thu, 24 Jan 2019 16:16:00 -0600 Subject: [PATCH 097/192] Fix Placment by ensuring that only Storage Prefix is removed from ContainerName --- .../AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx index e70b2c8c90ab..74d47e9e09b7 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx @@ -160,9 +160,12 @@ void AthenaPoolConverter::setPlacementWithType(const std::string& tname, const s } m_placement->setTechnology(m_athenaPoolCnvSvc->technologyType(containerName).type()); // Remove Technology from containerName - std::size_t colonPos = containerName.find(":"); - if (colonPos != std::string::npos) { - containerName.erase(0, colonPos + 1); + if (containerName.find("ROOTKEY:") == 0) { + containerName.erase(0, 8); + } else if (containerName.find("ROOTTREE:") == 0) { + containerName.erase(0, 9); + } else if (containerName.find("ROOTTREEINDEX:") == 0) { + containerName.erase(0, 13); } m_placement->setContainerName(containerName); } -- GitLab From 3ddbff09d9cb01f4147860a911e944639aa3d8ba Mon Sep 17 00:00:00 2001 From: Edward Moyse <edward.moyse@cern.ch> Date: Fri, 25 Jan 2019 00:48:29 +0000 Subject: [PATCH 098/192] Master vp1 arbitraryline guideline --- .../VP1GuideLineSystems/GuideSysController.h | 10 +- .../VP1GuideLineSystems/VP1Lines.h | 35 ++++ .../src/GuideSysController.cxx | 80 +++++++- .../src/VP1GuideLineSystem.cxx | 11 +- .../VP1GuideLineSystems/src/VP1Lines.cxx | 150 ++++++++++++++ .../src/guidelinescontrollerform.ui | 132 ++++++------ .../src/guides_settings_lines_form.ui | 192 ++++++++++++++++++ 7 files changed, 548 insertions(+), 62 deletions(-) create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx create mode 100644 graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h index 8f932861f472..650769f07640 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/GuideSysController.h @@ -92,11 +92,15 @@ public: double etaExtent() const;//>0: extent means to a given radius, <0: extent means to a given z. //TrackingVolumes - bool showTrackingVolumes() const; + bool showTrackingVolumes() const; bool showInnerDetector() const; bool showCalorimeters() const; bool showMuonSpectrometer() const; + // Lines + bool showLines() const; + double lineLength() const; + SbVec3f lineDirection() const; //ID Proj surfs: @@ -150,6 +154,8 @@ signals: void showInnerDetectorChanged(bool); void showCalorimetersChanged(bool); void showMuonSpectrometerChanged(bool); + void showLinesChanged(bool); + void lineDirectionChanged(const SbVec3f&); private: @@ -194,6 +200,8 @@ private slots: void possibleChange_showInnerDetector(); void possibleChange_showCalorimeters(); void possibleChange_showMuonSpectrometer(); + void possibleChange_showLines(); + void possibleChange_lineDirection(); }; diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h new file mode 100644 index 000000000000..d35194613570 --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/VP1GuideLineSystems/VP1Lines.h @@ -0,0 +1,35 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef VP1LINES_H +#define VP1LINES_H + +#include "VP1Base/VP1HelperClassBase.h" +#include <QObject> +#include <Inventor/C/errors/debugerror.h> +#include <Inventor/SbColor4f.h> +class SoSeparator; + +class VP1Lines : public QObject, public VP1HelperClassBase { + + Q_OBJECT + +public: + + VP1Lines( SoSeparator * attachsep,//where the grid separator will attach itself when visible + IVP1System * sys,QObject * parent = 0); + virtual ~VP1Lines(); + +public slots: + + void setShown(bool);//will attach/detach itself from attachsep depending on this + void setColourAndTransp(const SbColor4f&); + void setDirection(const SbVec3f&); + +private: + class Imp; + Imp * m_d; +}; + +#endif diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx index 71255fdabd93..5032e37a52b3 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/GuideSysController.cxx @@ -23,11 +23,11 @@ #include "ui_guides_settings_grid_form.h" #include "ui_guides_settings_idprojsurfs_form.h" #include "ui_guides_settings_trkvolumes_form.h" +#include "ui_guides_settings_lines_form.h" #include "VP1Base/VP1Serialise.h" #include "VP1Base/VP1Deserialise.h" - -//#include "CLHEP/Units/SystemOfUnits.h" #include "GaudiKernel/SystemOfUnits.h" +#include <cmath> //____________________________________________________________________ class GuideSysController::Imp { @@ -40,6 +40,7 @@ public: Ui::VP1GuidesSysSettingsGridForm ui_grid; Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs; Ui::VP1TrackingVolumesForm ui_trkvolumes; + Ui::VP1LinesForm ui_lines; static SbColor4f color4f(const QColor& col, int transp_int) { return SbColor4f(std::max<float>(0.0f,std::min<float>(1.0f,col.redF())), @@ -78,6 +79,9 @@ public: bool last_showInnerDetector; bool last_showCalorimeters; bool last_showMuonSpectrometer; + bool last_showLines; + SbVec3f last_lineDirection; + double last_line_eta; // This is needed to update the display in possibleChange_lineDirection InDetProjFlags::InDetProjPartsFlags last_applicablePixelProjParts; InDetProjFlags::InDetProjPartsFlags last_applicableSCTProjParts; @@ -108,6 +112,7 @@ GuideSysController::GuideSysController(IVP1System * sys) initDialog(m_d->ui_grid, m_d->ui.pushButton_settings_grid,m_d->ui.checkBox_grid); initDialog(m_d->ui_idprojsurfs, m_d->ui.pushButton_settings_inDetProjSurfs,m_d->ui.checkBox_inDetProjSurfs); initDialog(m_d->ui_trkvolumes, m_d->ui.pushButton_settings_trkVolumes,m_d->ui.checkBox_trkVolumes); + initDialog(m_d->ui_lines, m_d->ui.pushButton_settings_lines,m_d->ui.checkBox_lines); //Hide SCT/Pixel projection surface controls for now: m_d->ui_idprojsurfs.groupBox_pixelproj->setVisible(false); @@ -314,6 +319,16 @@ GuideSysController::GuideSysController(IVP1System * sys) addUpdateSlot(SLOT(possibleChange_showMuonSpectrometer())); connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_MS); + addUpdateSlot(SLOT(possibleChange_showLines())); + connectToLastUpdateSlot(m_d->ui.checkBox_lines); + + addUpdateSlot(SLOT(possibleChange_lineDirection())); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_phi); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_theta); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_eta); + connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_length); + + initLastVars(); } @@ -502,6 +517,29 @@ double GuideSysController::etaExtent() const * (m_d->ui_etacones.radioButton_etaconeextentisr->isChecked() ? 1.0 : -1.0); } +//____________________________________________________________________ +bool GuideSysController::showLines() const +{ + return m_d->ui.checkBox_lines->isChecked(); +} + + +//____________________________________________________________________ +SbVec3f GuideSysController::lineDirection() const +{ + double r = lineLength(); + double phi = m_d->ui_lines.doubleSpinBox_phi->value(); + double theta = m_d->ui_lines.doubleSpinBox_theta->value(); + SbVec3f direction(r*sin(theta)*cos(phi),r*sin(theta)*sin(phi), r*cos(theta)); + return direction; +} + +//____________________________________________________________________ +double GuideSysController::lineLength() const +{ + return m_d->ui_lines.doubleSpinBox_length->value() * Gaudi::Units::m; +} + //_____________________________________________________________________________________ InDetProjFlags::InDetProjPartsFlags GuideSysController::Imp::projPartsFlag( bool barrelinner, bool barrelouter, bool endcapinner, bool endcapouter, @@ -726,7 +764,7 @@ bool GuideSysController::showMuonSpectrometer() const //____________________________________________________________________ int GuideSysController::currentSettingsVersion() const { - return 2; + return 3; } //____________________________________________________________________ @@ -833,6 +871,13 @@ void GuideSysController::actualSaveSettings(VP1Serialise&s) const s.save(m_d->ui_trkvolumes.checkBox_ID); s.save(m_d->ui_trkvolumes.checkBox_Calo); s.save(m_d->ui_trkvolumes.checkBox_MS); + + // Line from origin + s.save(m_d->ui.checkBox_lines); + s.save(m_d->ui_lines.doubleSpinBox_phi); + s.save(m_d->ui_lines.doubleSpinBox_phi); + s.save(m_d->ui_lines.doubleSpinBox_eta); + s.save(m_d->ui_lines.doubleSpinBox_length); } //____________________________________________________________________ @@ -946,9 +991,36 @@ void GuideSysController::actualRestoreSettings(VP1Deserialise& s) s.restore(m_d->ui_trkvolumes.checkBox_Calo); s.restore(m_d->ui_trkvolumes.checkBox_MS); } + if (s.version()>=3) { + s.restore(m_d->ui.checkBox_lines); + s.restore(m_d->ui_lines.doubleSpinBox_phi); + s.restore(m_d->ui_lines.doubleSpinBox_phi); + s.restore(m_d->ui_lines.doubleSpinBox_eta); + s.restore(m_d->ui_lines.doubleSpinBox_length); + } +} +void GuideSysController::possibleChange_lineDirection() { + // Bit of a hack possibly to do this here, but I want to be able to update the direction by changing either theta or eta + double eta = m_d->ui_lines.doubleSpinBox_eta->value(); + double theta = m_d->ui_lines.doubleSpinBox_theta->value(); + + if (m_d->last_line_eta != eta){ + // eta has changed, so update theta in the UI + theta = 2*std::atan(std::exp(-1.0 * eta)); + m_d->ui_lines.doubleSpinBox_theta->setValue(theta); + } else if ( theta!= std::acos(m_d->last_lineDirection[2] / lineLength() ) ){ + eta = -1.0 * std::log(std::tan(theta/2.0)); + m_d->ui_lines.doubleSpinBox_eta->setValue(eta); + } + m_d->last_line_eta = m_d->ui_lines.doubleSpinBox_eta->value(); + if (changed( m_d->last_lineDirection , lineDirection() ) ) { + if (verbose()&&!initVarsMode()) messageVerbose("Emitting "+QString()+"( lineDirectionChanged"+toString(m_d->last_lineDirection)+" )"); + emit lineDirectionChanged(m_d->last_lineDirection); + } } + /////////////////////////////////////////////////////////////////////////// // Test for possible changes in values and emit signals as appropriate: // (possibleChange_XXX() slots code provided by macros) @@ -988,3 +1060,5 @@ POSSIBLECHANGE_IMP(showTrackingVolumes) POSSIBLECHANGE_IMP(showInnerDetector) POSSIBLECHANGE_IMP(showCalorimeters) POSSIBLECHANGE_IMP(showMuonSpectrometer) +POSSIBLECHANGE_IMP(showLines) +//POSSIBLECHANGE_IMP(lineDirection) Implemented this manually so we can update eta/theta diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx index 9fa913399c4c..7f3900c6cc5b 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1GuideLineSystem.cxx @@ -23,6 +23,7 @@ #include "VP1GuideLineSystems/VP1CartesianGrid.h" #include "VP1GuideLineSystems/VP1CylindricalGrid.h" #include "VP1GuideLineSystems/VP1TrackingVolumes.h" +#include "VP1GuideLineSystems/VP1Lines.h" #include "VP1Base/VP1Serialise.h" #include "VP1Base/VP1Deserialise.h" @@ -64,6 +65,7 @@ public: VP1EtaCone * etacone2; VP1EtaCone * etacone3; VP1TrackingVolumes * trackingVolumes; + VP1Lines * lines; ProjectionSurfacesHelper * projsurfhelper_pixel; ProjectionSurfacesHelper * projsurfhelper_sct; @@ -213,7 +215,14 @@ void VP1GuideLineSystem::buildPermanentSceneGraph(StoreGateSvc* /*detstore*/, So connect(m_d->controller,SIGNAL(showCalorimetersChanged(bool)),m_d->trackingVolumes,SLOT(setShownCalo(bool))); connect(m_d->controller,SIGNAL(showMuonSpectrometerChanged(bool)),m_d->trackingVolumes,SLOT(setShownMS(bool))); m_d->trackingVolumes->setShown(m_d->controller->showTrackingVolumes()); - + + //Lines + m_d->lines = new VP1Lines(root, this); + connect(m_d->controller,SIGNAL(showLinesChanged(bool)),m_d->lines,SLOT(setShown(bool))); + m_d->lines->setShown(m_d->controller->showLines()); + connect(m_d->controller,SIGNAL(lineDirectionChanged(const SbVec3f&)),m_d->lines,SLOT(setDirection(const SbVec3f&))); + m_d->lines->setDirection(m_d->controller->lineDirection()); + SoSeparator * projsep = new SoSeparator; root->addChild(projsep); diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx new file mode 100644 index 000000000000..aaffe29ccab6 --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/VP1Lines.cxx @@ -0,0 +1,150 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include "VP1GuideLineSystems/VP1Lines.h" + +#include <Inventor/nodes/SoSeparator.h> +#include <Inventor/nodes/SoVertexProperty.h> +#include <Inventor/nodes/SoLineSet.h> +#include <Inventor/SbColor4f.h> + +#include "GaudiKernel/SystemOfUnits.h" + + +//____________________________________________________________________ +class VP1Lines::Imp { +public: + Imp(VP1Lines *, + SoSeparator * attachsep); + VP1Lines * theclass; + SoSeparator * attachSep; + + bool shown; + SbColor4f colourAndTransp; + SbVec3f direction; + + SoSeparator * sep; + + void rebuild3DObjects(); + void updateColour(); +}; + +//____________________________________________________________________ +VP1Lines::VP1Lines(SoSeparator * attachsep, + IVP1System * sys,QObject * parent) + : QObject(parent), VP1HelperClassBase(sys,"VP1Lines"), m_d(new Imp(this,attachsep)) +{ +} + +//____________________________________________________________________ +VP1Lines::~VP1Lines() +{ + setShown(false); + if (m_d->sep) + m_d->sep->unref(); + m_d->attachSep->unref(); + delete m_d; +} + +//____________________________________________________________________ +VP1Lines::Imp::Imp(VP1Lines *tc,SoSeparator * as) + : theclass(tc), attachSep(as), shown(false), + colourAndTransp(SbColor4f(1,1,1,1)), direction(SbVec3f(0,0,0)), sep(0) +{ + attachSep->ref(); +} + +//____________________________________________________________________ +void VP1Lines::Imp::rebuild3DObjects() +{ + theclass->messageVerbose("(Re)building 3D objects"); + + if (sep) { + sep->removeAllChildren(); + } else { + sep = new SoSeparator; + sep->ref(); + } + + const bool save = sep->enableNotify(false); + + SoVertexProperty * line_vertices = new SoVertexProperty(); + + line_vertices->vertex.set1Value(0,0.0,0.0,0.0); + line_vertices->vertex.set1Value(1,direction[0],direction[1],direction[2]); + + line_vertices->materialBinding=SoMaterialBinding::OVERALL; + line_vertices->normalBinding=SoNormalBinding::OVERALL; + SoLineSet * line = new SoLineSet(); + line->numVertices.enableNotify(FALSE); + // line->numVertices.setNum(1); + // line->numVertices.set1Value(0,2); + line->vertexProperty = line_vertices; + line->numVertices.enableNotify(TRUE); + line->numVertices.touch(); + + sep->addChild(line); + updateColour(); + + if (save) { + sep->enableNotify(true); + sep->touch(); + } + +} + +//____________________________________________________________________ +void VP1Lines::Imp::updateColour() +{ + theclass->messageVerbose("Updating packed colour"); + if (!sep||sep->getNumChildren()<1) + return; + SoNode * n = sep->getChild(0); + if (!n||n->getTypeId()!=SoLineSet::getClassTypeId()) + return; + SoLineSet * line = static_cast<SoLineSet*>(n); + SoVertexProperty * vertices = static_cast<SoVertexProperty *>(line->vertexProperty.getValue()); + if (!vertices) + return; + vertices->orderedRGBA = colourAndTransp.getPackedValue(); +} + +//____________________________________________________________________ +void VP1Lines::setShown(bool b) +{ + messageVerbose("Signal received: setShown("+str(b)+")"); + if (m_d->shown==b) + return; + m_d->shown=b; + if (m_d->shown) { + m_d->rebuild3DObjects(); + if (m_d->attachSep->findChild(m_d->sep)<0) + m_d->attachSep->addChild(m_d->sep); + } else { + if (m_d->sep&&m_d->attachSep->findChild(m_d->sep)>=0) + m_d->attachSep->removeChild(m_d->sep); + } +} + +//____________________________________________________________________ +void VP1Lines::setColourAndTransp(const SbColor4f&ct) +{ + messageVerbose("Signal received in setColourAndTransp slot."); + if (m_d->colourAndTransp==ct) + return; + m_d->colourAndTransp=ct; + if (m_d->shown) + m_d->updateColour(); +} + +//____________________________________________________________________ +void VP1Lines::setDirection(const SbVec3f& o) +{ + messageVerbose("Signal received: setDirection("+str(o)+")"); + if (m_d->direction==o) + return; + m_d->direction=o; + if (m_d->shown) + m_d->rebuild3DObjects(); +} diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui index c527d377a5d8..f0d1f101b3b2 100644 --- a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guidelinescontrollerform.ui @@ -1,7 +1,8 @@ -<ui version="4.0" > +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> <class>VP1GuidesControllerForm</class> - <widget class="QWidget" name="VP1GuidesControllerForm" > - <property name="geometry" > + <widget class="QWidget" name="VP1GuidesControllerForm"> + <property name="geometry"> <rect> <x>0</x> <y>0</y> @@ -9,128 +10,145 @@ <height>182</height> </rect> </property> - <property name="windowTitle" > + <property name="windowTitle"> <string>Form</string> </property> - <layout class="QGridLayout" > - <property name="rightMargin" > + <layout class="QGridLayout"> + <property name="rightMargin"> <number>1</number> </property> - <property name="bottomMargin" > + <property name="bottomMargin"> <number>1</number> </property> - <property name="spacing" > + <property name="spacing"> <number>0</number> </property> - <item row="0" column="0" > - <layout class="QGridLayout" > - <property name="horizontalSpacing" > + <item row="0" column="0"> + <layout class="QGridLayout"> + <property name="horizontalSpacing"> <number>2</number> </property> - <property name="verticalSpacing" > + <property name="verticalSpacing"> <number>0</number> </property> - <item row="0" column="0" > - <widget class="QCheckBox" name="checkBox_floorAndLetters" > - <property name="text" > + <item row="0" column="0"> + <widget class="QCheckBox" name="checkBox_floorAndLetters"> + <property name="text"> <string>Floor && Letters</string> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="0" column="1" > - <widget class="QPushButton" name="pushButton_settings_floorAndLetters" > - <property name="text" > + <item row="0" column="1"> + <widget class="QPushButton" name="pushButton_settings_floorAndLetters"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="1" column="0" > - <widget class="QCheckBox" name="checkBox_coordinateAxes" > - <property name="text" > + <item row="1" column="0"> + <widget class="QCheckBox" name="checkBox_coordinateAxes"> + <property name="text"> <string>Coordinate axes</string> </property> </widget> </item> - <item row="1" column="1" > - <widget class="QPushButton" name="pushButton_settings_coordinateAxes" > - <property name="text" > + <item row="1" column="1"> + <widget class="QPushButton" name="pushButton_settings_coordinateAxes"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="2" column="0" > - <widget class="QCheckBox" name="checkBox_grid" > - <property name="text" > + <item row="2" column="0"> + <widget class="QCheckBox" name="checkBox_grid"> + <property name="text"> <string>Grid</string> </property> </widget> </item> - <item row="2" column="1" > - <widget class="QPushButton" name="pushButton_settings_grid" > - <property name="text" > + <item row="2" column="1"> + <widget class="QPushButton" name="pushButton_settings_grid"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="3" column="0" > - <widget class="QCheckBox" name="checkBox_etaCones" > - <property name="text" > + <item row="3" column="0"> + <widget class="QCheckBox" name="checkBox_etaCones"> + <property name="text"> <string>Eta Cones</string> </property> </widget> </item> - <item row="3" column="1" > - <widget class="QPushButton" name="pushButton_settings_etaCones" > - <property name="text" > + <item row="3" column="1"> + <widget class="QPushButton" name="pushButton_settings_etaCones"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="4" column="0" > - <widget class="QCheckBox" name="checkBox_inDetProjSurfs" > - <property name="text" > + <item row="4" column="0"> + <widget class="QCheckBox" name="checkBox_inDetProjSurfs"> + <property name="text"> <string>ID projection surfaces</string> </property> - <property name="checked" > + <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="4" column="1" > - <widget class="QPushButton" name="pushButton_settings_inDetProjSurfs" > - <property name="text" > + <item row="4" column="1"> + <widget class="QPushButton" name="pushButton_settings_inDetProjSurfs"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="5" column="1" > - <widget class="QPushButton" name="pushButton_settings_trkVolumes" > - <property name="text" > + <item row="5" column="1"> + <widget class="QPushButton" name="pushButton_settings_trkVolumes"> + <property name="text"> <string>Configure</string> </property> </widget> </item> - <item row="5" column="0" > - <widget class="QCheckBox" name="checkBox_trkVolumes" > - <property name="text" > + <item row="5" column="0"> + <widget class="QCheckBox" name="checkBox_trkVolumes"> + <property name="text"> <string>Tracking Volumes</string> </property> - <property name="checked" > + <property name="checked"> <bool>false</bool> </property> </widget> </item> + <item row="7" column="0"> + <widget class="QCheckBox" name="checkBox_lines"> + <property name="text"> + <string>Line from origin</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="7" column="1"> + <widget class="QPushButton" name="pushButton_settings_lines"> + <property name="text"> + <string>Configure</string> + </property> + </widget> + </item> </layout> </item> - <item row="0" column="1" > + <item row="0" column="1"> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Horizontal</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>1</width> <height>20</height> @@ -138,12 +156,12 @@ </property> </spacer> </item> - <item row="1" column="0" > + <item row="1" column="0"> <spacer> - <property name="orientation" > + <property name="orientation"> <enum>Qt::Vertical</enum> </property> - <property name="sizeHint" stdset="0" > + <property name="sizeHint" stdset="0"> <size> <width>20</width> <height>1</height> diff --git a/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui new file mode 100644 index 000000000000..aa6ab3689c2d --- /dev/null +++ b/graphics/VP1/VP1Systems/VP1GuideLineSystems/src/guides_settings_lines_form.ui @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>VP1LinesForm</class> + <widget class="QWidget" name="VP1LinesForm"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>333</width> + <height>166</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="6" column="0"> + <widget class="QLabel" name="label_26"> + <property name="text"> + <string>Length</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_phi"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-6.280000000000000</double> + </property> + <property name="maximum"> + <double>6.280000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_theta"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-6.280000000000000</double> + </property> + <property name="maximum"> + <double>6.280000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="6" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_length"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string> m</string> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-99.989999999999995</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + <property name="value"> + <double>5.000000000000000</double> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_27"> + <property name="text"> + <string>Theta</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QDoubleSpinBox" name="doubleSpinBox_eta"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="suffix"> + <string/> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="minimum"> + <double>-5.000000000000000</double> + </property> + <property name="maximum"> + <double>5.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_24"> + <property name="text"> + <string>Eta</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_25"> + <property name="text"> + <string>Phi</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="_2"> + <property name="spacing"> + <number>0</number> + </property> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>1</width> + <height>5</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="pushButton_close"> + <property name="text"> + <string>&Close</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> -- GitLab From 63079f11809f6d863cb506bcf38ec1b86bc3d033 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Fri, 25 Jan 2019 01:54:33 +0100 Subject: [PATCH 099/192] Migrated LArGeoModel test beam packages from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../src/ExcluderConstruction.cxx | 23 +- .../src/FrontBeamConstructionH62002.cxx | 32 +-- .../src/HECConstructionH62002.cxx | 60 ++-- .../src/LArDetectorFactoryH62002.cxx | 62 ++--- .../src/TableConstructionH62002.cxx | 28 +- .../src/LArDetectorConstructionH62003.cxx | 11 +- .../src/ExcluderConstructionH62004.cxx | 73 ++--- .../src/FCALConstructionH62004.cxx | 47 ++-- .../src/FrontBeamConstructionH62004.cxx | 44 +-- .../src/HECConstructionH62004.cxx | 72 ++--- .../src/LArDetectorFactoryH62004.cxx | 54 ++-- .../src/MiddleBeamConstructionH62004.cxx | 20 +- .../src/ModulesConstructionH62004.cxx | 259 +++++++++--------- .../src/MovableTableConstructionH62004.cxx | 56 ++-- .../src/WarmTCConstructionH62004.cxx | 65 ++--- .../LArGeoH6Cryostats/MWPCConstruction.h | 2 +- .../LArGeoH6Cryostats/src/BPCConstruction.cxx | 107 ++++---- .../src/H6CryostatConstruction.cxx | 30 +- .../src/MWPCConstruction.cxx | 41 +-- .../src/WallsConstruction.cxx | 68 ++--- .../src/TBBarrelCryostatConstruction.cxx | 85 +++--- .../src/CryostatConstructionTBEC.cxx | 88 +++--- .../LArGeoTBEC/src/EMECModuleConstruction.cxx | 93 +++---- .../src/LArDetectorConstructionTBEC.cxx | 62 ++--- 24 files changed, 740 insertions(+), 742 deletions(-) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx index 6786c4e35f31..b5421fc8b63c 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx @@ -42,6 +42,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -88,7 +89,7 @@ GeoPhysVol* LArGeo::ExcluderConstruction::GetEnvelope() const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.11*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.11*GeoModelKernelUnits::g/Gaudi::Units::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -111,25 +112,25 @@ GeoPhysVol* LArGeo::ExcluderConstruction::GetEnvelope() // It is a Union out of a GeoBox and a GeoTubs. // Box Dimensions: - double xbox = 300.0 *GeoModelKernelUnits::mm; - double ybox = 160.0 *GeoModelKernelUnits::mm; - double zbox = 300.7 *GeoModelKernelUnits::mm; + double xbox = 300.0 *Gaudi::Units::mm; + double ybox = 160.0 *Gaudi::Units::mm; + double zbox = 300.7 *Gaudi::Units::mm; // // Tubs Dimensions: - double ztubs = 300.0 *GeoModelKernelUnits::mm; - double phitubs= 76.2 *GeoModelKernelUnits::deg; - double delphi = 27.6 *GeoModelKernelUnits::deg; - double rcold = 1249.5 *GeoModelKernelUnits::mm; - double rmin = 1220.0 *GeoModelKernelUnits::mm; + double ztubs = 300.0 *Gaudi::Units::mm; + double phitubs= 76.2 *Gaudi::Units::deg; + double delphi = 27.6 *Gaudi::Units::deg; + double rcold = 1249.5 *Gaudi::Units::mm; + double rmin = 1220.0 *Gaudi::Units::mm; - // The radius of the cryostat cold wall is: 1250 GeoModelKernelUnits::mm + // The radius of the cryostat cold wall is: 1250 Gaudi::Units::mm // Before we make the union, we have to shift the box in y (that actually along the beam axis) // and there, positive y goes from the cryostat centre towards the beam window. std::string ExcluderName = "LAr::H6::Cryostat::Excluder"; GeoBox* rohaBox = new GeoBox(xbox, ybox, zbox); // The rectangular part of the excluder - const GeoShapeShift & rohaBoxShift = (*rohaBox << GeoTrf::TranslateY3D(1062.85*GeoModelKernelUnits::mm) ); + const GeoShapeShift & rohaBoxShift = (*rohaBox << GeoTrf::TranslateY3D(1062.85*Gaudi::Units::mm) ); GeoTubs* rohaTubs = new GeoTubs(rmin, rcold, ztubs, phitubs, delphi); // The round part of the excluder // Combine the two parts to make one excluder of the correct shape: diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx index bd3ac799fc91..9adb356ca566 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx @@ -24,7 +24,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -42,6 +41,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -140,8 +140,8 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() std::string baseName = "LAr::TBH62002"; std::string H62002FrontBeamName = baseName + "::FrontBeam"; - const double H62002FrontBeamXY = 2000.*GeoModelKernelUnits::mm; - const double H62002FrontBeamZ = 350.*GeoModelKernelUnits::mm; + const double H62002FrontBeamXY = 2000.*Gaudi::Units::mm; + const double H62002FrontBeamZ = 350.*Gaudi::Units::mm; GeoBox* H62002FrontBeamShape = new GeoBox( H62002FrontBeamXY, H62002FrontBeamXY, H62002FrontBeamZ ); @@ -158,27 +158,27 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm - // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm + // B1 : 30 x 30 x 10 Gaudi::Units::mm + // W1,2 : 150 x 150 x 10 Gaudi::Units::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 log << "Create Front Scintillators ..." << std::endl; - const double Wxy= 75.0*GeoModelKernelUnits::mm; - const double Wz = 5.0*GeoModelKernelUnits::mm; - const double Bxy= 15.0*GeoModelKernelUnits::mm; - const double Bz = 5.0*GeoModelKernelUnits::mm; + const double Wxy= 75.0*Gaudi::Units::mm; + const double Wz = 5.0*Gaudi::Units::mm; + const double Bxy= 15.0*Gaudi::Units::mm; + const double Bz = 5.0*Gaudi::Units::mm; std::vector<double> v_ScintXY; std::vector<double> v_ScintZ; v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Bxy); - v_ScintZ.push_back(170.*GeoModelKernelUnits::mm); - v_ScintZ.push_back(200.*GeoModelKernelUnits::mm); - v_ScintZ.push_back(340.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(170.*Gaudi::Units::mm); + v_ScintZ.push_back(200.*Gaudi::Units::mm); + v_ScintZ.push_back(340.*Gaudi::Units::mm); // Create one Scintillator and place it twice along z: @@ -193,7 +193,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() //BScintPhysical->add( new GeoNameTag(ScintName) ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62002FrontBeamPhysical->add( new GeoIdentifierTag(i) ); - m_H62002FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-H62002FrontBeamZ) ) ) ) ; m_H62002FrontBeamPhysical->add( new GeoNameTag(ScintName) ); + m_H62002FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (v_ScintZ[ i ]-H62002FrontBeamZ) ) ) ) ; m_H62002FrontBeamPhysical->add( new GeoNameTag(ScintName) ); switch(i) { case 0: case 1: { m_H62002FrontBeamPhysical->add( WScintPhysical ); break; } @@ -208,12 +208,12 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() //------ Get MWPC number 5 from LArGeoH6Cryostats - const double MwpcPos = 605.*GeoModelKernelUnits::mm; - double WireStep = 2.*GeoModelKernelUnits::mm; + const double MwpcPos = 605.*Gaudi::Units::mm; + double WireStep = 2.*Gaudi::Units::mm; MWPCConstruction mwpcXConstruction (WireStep); GeoVPhysVol* mwpcEnvelope = mwpcXConstruction.GetEnvelope(); m_H62002FrontBeamPhysical->add(new GeoIdentifierTag(5)); - m_H62002FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-H62002FrontBeamZ) ) ) ); + m_H62002FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (MwpcPos-H62002FrontBeamZ) ) ) ); m_H62002FrontBeamPhysical->add(mwpcEnvelope); //------ Done with creating an MWPC from LArGeoH6Cryostats diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx index 44c6937ad57a..71dabd2d398c 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" #include "GeoGenericFunctions/Sin.h" @@ -36,6 +35,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -151,7 +151,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() int lastPlaneHEC = ( sizeof(HECMotherZplan) / sizeof(double) ); - double moduleDeltaPhi = 2.*M_PI/32. ; // = 11.25*GeoModelKernelUnits::deg; + double moduleDeltaPhi = 2.*M_PI/32. ; // = 11.25*Gaudi::Units::deg; double phiStart [] = {-19. , -18. } ; double hecPhistart[] = { phiStart[0]*M_PI/32 , phiStart[1]*M_PI/32 } ; double modulePhistart[] = { (phiStart[0]+2.)*M_PI/32 , (phiStart[1]+2.)*M_PI/32 } ; @@ -212,9 +212,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() double spacerDiameter[2]; double ztie[2]; // This is the +/- z length of the tie rod in the LAr gap - ztie[0]=-0.227825*GeoModelKernelUnits::cm; - ztie[1]= 0.227825*GeoModelKernelUnits::cm; - double rodSize = 0.39435*GeoModelKernelUnits::cm; + ztie[0]=-0.227825*Gaudi::Units::cm; + ztie[1]= 0.227825*Gaudi::Units::cm; + double rodSize = 0.39435*Gaudi::Units::cm; @@ -225,7 +225,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() const GeoLogVol* logiSlice[3]; GeoPhysVol* physiSlice[3]; // Absorber - double radialShift = 1.02*GeoModelKernelUnits::cm; // absorbers are adjusted by this amount + double radialShift = 1.02*Gaudi::Units::cm; // absorbers are adjusted by this amount GeoTubs* solidFrontAbsorber[2]; const GeoLogVol* logiFrontAbsorber[2]; GeoPhysVol* physiFrontAbsorber[2]; @@ -272,19 +272,19 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() int moduleNumberFront = 3; int moduleNumberRear = 2; // radial dimensions of the modules: - double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*GeoModelKernelUnits::cm; - double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*GeoModelKernelUnits::cm; - double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*GeoModelKernelUnits::cm; + double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*Gaudi::Units::cm; + double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*Gaudi::Units::cm; + double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*Gaudi::Units::cm; // thickness of Cu pads, LAr gaps and inter-wheel gap: - double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*GeoModelKernelUnits::cm; - double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*GeoModelKernelUnits::cm; - double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; + double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*Gaudi::Units::cm; + double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*Gaudi::Units::cm; + double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*Gaudi::Units::cm; for (int idepth=0; idepth < depthNumber; ++idepth) { - depthSize[idepth] = (*hecLongitudinalBlock)[idepth]->getDouble("BLDPTH")*GeoModelKernelUnits::cm; - firstAbsorber[idepth]= (*hecLongitudinalBlock)[idepth]->getDouble("PLATE0")*GeoModelKernelUnits::cm; + depthSize[idepth] = (*hecLongitudinalBlock)[idepth]->getDouble("BLDPTH")*Gaudi::Units::cm; + firstAbsorber[idepth]= (*hecLongitudinalBlock)[idepth]->getDouble("PLATE0")*Gaudi::Units::cm; gapNumber[idepth] = (int) (*hecLongitudinalBlock)[idepth]->getDouble("BLMOD"); } @@ -293,8 +293,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << ikapton; const std::string A0 = A0STR.str(); - kaptonPosition[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTPOS"+A0)*GeoModelKernelUnits::cm; - kaptonWidth[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTWID"+A0)*GeoModelKernelUnits::cm; + kaptonPosition[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTPOS"+A0)*Gaudi::Units::cm; + kaptonWidth[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTWID"+A0)*Gaudi::Units::cm; } for (int itie=0; itie < 4; ++itie) @@ -302,8 +302,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << itie; const std::string A0 = A0STR.str(); - tieRodPositionX[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSX"+A0)*GeoModelKernelUnits::cm; - tieRodPositionY[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSR"+A0)*GeoModelKernelUnits::cm; + tieRodPositionX[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSX"+A0)*Gaudi::Units::cm; + tieRodPositionY[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSR"+A0)*Gaudi::Units::cm; } for (int i=0; i < 2; ++i) @@ -311,16 +311,16 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << i; const std::string A0 = A0STR.str(); - tieRodDiameter[i] = (*hadronicEndcap)[0]->getDouble("RODDIM"+A0)*GeoModelKernelUnits::cm; - spacerDiameter[i] = (*hadronicEndcap)[0]->getDouble("SPCDIM"+A0)*GeoModelKernelUnits::cm; + tieRodDiameter[i] = (*hadronicEndcap)[0]->getDouble("RODDIM"+A0)*Gaudi::Units::cm; + spacerDiameter[i] = (*hadronicEndcap)[0]->getDouble("SPCDIM"+A0)*Gaudi::Units::cm; } - double frontAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_0")*GeoModelKernelUnits::cm; - double rearAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_1")*GeoModelKernelUnits::cm; + double frontAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_0")*Gaudi::Units::cm; + double rearAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_1")*Gaudi::Units::cm; // Radial dimensions and z-plane locations - double zCoordinate[] = {0.0*GeoModelKernelUnits::cm, depthSize[0], depthSize[0], 816.51*GeoModelKernelUnits::mm, 816.51*GeoModelKernelUnits::mm, 1350.*GeoModelKernelUnits::mm }; + double zCoordinate[] = {0.0*Gaudi::Units::cm, depthSize[0], depthSize[0], 816.51*Gaudi::Units::mm, 816.51*Gaudi::Units::mm, 1350.*Gaudi::Units::mm }; double innerRadius[] = {moduleRinner1,moduleRinner1, moduleRinner2,moduleRinner2,moduleRinner2,moduleRinner2,}; @@ -490,7 +490,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //---------------------------------------------------------------- // Absorbers , the inner and outer Radius are smaller by radialShift // but positionned in the center of depth. this alows - // to have 2 GeoModelKernelUnits::mm gap between the copper plates of neighbor FrontModules + // to have 2 Gaudi::Units::mm gap between the copper plates of neighbor FrontModules //---------------------------------------------------------------- // Two different Absorbers for the front depths: @@ -703,10 +703,10 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() // Tie rods in Slice //---------------------------------------------------------------- - // double rodSize = 0.85*GeoModelKernelUnits::cm; + // double rodSize = 0.85*Gaudi::Units::cm; for (int iwheel=0; iwheel<2; iwheel++) { - solidTieRod[iwheel] = new GeoTubs(0.*GeoModelKernelUnits::cm,spacerDiameter[iwheel]/2.,rodSize/2., 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidTieRod[iwheel] = new GeoTubs(0.*Gaudi::Units::cm,spacerDiameter[iwheel]/2.,rodSize/2., 0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); logiTieRod[iwheel] = new GeoLogVol(tieRodName, solidTieRod[iwheel], Iron); } @@ -747,12 +747,12 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //---------------------------------------------------------------- // Tie rods in Absorbers //---------------------------------------------------------------- - solidAbsorberTieRod[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); - solidAbsorberTieRod[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRod[0] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); + solidAbsorberTieRod[1] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); logiAbsorberTieRod[0] = new GeoLogVol(tieRodName,solidAbsorberTieRod[0],Iron); //,0,0,0); logiAbsorberTieRod[1] = new GeoLogVol(tieRodName,solidAbsorberTieRod[1],Iron); //,0,0,0); - solidAbsorberTieRodRear[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); - solidAbsorberTieRodRear[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRodRear[0] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); + solidAbsorberTieRodRear[1] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); logiAbsorberTieRodRear[0] = new GeoLogVol(tieRodRearName,solidAbsorberTieRodRear[0],Iron); //,0,0,0); logiAbsorberTieRodRear[1] = new GeoLogVol(tieRodRearName,solidAbsorberTieRodRear[1],Iron); //,0,0,0); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx index 64849d9ef750..9e656fe86677 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx @@ -27,7 +27,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" #include "GeoGenericFunctions/Sin.h" @@ -43,6 +42,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -128,8 +128,8 @@ void LArGeo::LArDetectorFactoryH62002::getSimulationParameters() } (*log)<< MSG::INFO<< endmsg; - (*log)<< MSG::INFO << " Use cryo X : " << m_cryoXpos << " GeoModelKernelUnits::mm" << endmsg; - (*log)<< MSG::INFO << " Use table Y : " << m_tableYpos << " GeoModelKernelUnits::mm" << endmsg; + (*log)<< MSG::INFO << " Use cryo X : " << m_cryoXpos << " Gaudi::Units::mm" << endmsg; + (*log)<< MSG::INFO << " Use table Y : " << m_tableYpos << " Gaudi::Units::mm" << endmsg; } @@ -162,13 +162,13 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // 4databa : // numbers taken from LArCalorimeter/LArG4TB/LArG4TBExpHall/src/LArG4TBEmecHecDetectorConstruction.cc // (That's a mighty big hall.....) - double expHallX = 14000.*GeoModelKernelUnits::mm; - double expHallY = 14000.*GeoModelKernelUnits::mm; - double expHallZ = 50000.*GeoModelKernelUnits::mm; - //double cryoZpos = 12250.*GeoModelKernelUnits::mm; - //double cryoXrot = -90.*GeoModelKernelUnits::deg; - //double cryoXpos = m_cryoXpos * GeoModelKernelUnits::mm ; - //double cryoXpos = 0.*GeoModelKernelUnits::mm; // <-- Should be made available in RunOptions! (Perhaps default in DB...) + double expHallX = 14000.*Gaudi::Units::mm; + double expHallY = 14000.*Gaudi::Units::mm; + double expHallZ = 50000.*Gaudi::Units::mm; + //double cryoZpos = 12250.*Gaudi::Units::mm; + //double cryoXrot = -90.*Gaudi::Units::deg; + //double cryoXpos = m_cryoXpos * Gaudi::Units::mm ; + //double cryoXpos = 0.*Gaudi::Units::mm; // <-- Should be made available in RunOptions! (Perhaps default in DB...) //-----------------------------------------------------------------------------------// // Next make the box that describes the shape of the expHall volume: // @@ -193,11 +193,11 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // the element we want to position in the following order: - double Theta = -90. * GeoModelKernelUnits::deg; - double Phi = 0. * GeoModelKernelUnits::deg; + double Theta = -90. * Gaudi::Units::deg; + double Phi = 0. * Gaudi::Units::deg; GeoTrf::Transform3D Mrot(GeoTrf::RotateZ3D(Phi)*GeoTrf::RotateX3D(Theta)); - GeoTrf::Translate3D pos3Vector( m_cryoXpos*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, 12250.*GeoModelKernelUnits::mm ); + GeoTrf::Translate3D pos3Vector( m_cryoXpos*Gaudi::Units::mm, 0.*Gaudi::Units::mm, 12250.*Gaudi::Units::mm ); H6CryostatConstruction H6CryoCons; GeoVPhysVol* Envelope = 0; @@ -211,7 +211,7 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) //Add the walls in front of the cryostat: { - const double H62002WallsPos = 10182.*GeoModelKernelUnits::mm; // A wild guess at the moment..... + const double H62002WallsPos = 10182.*Gaudi::Units::mm; // A wild guess at the moment..... WallsConstruction WallsConstruction2002; GeoVPhysVol* frontwalls = WallsConstruction2002.GetEnvelope(); if(frontwalls !=0 && expHallPhys !=0){ @@ -224,7 +224,7 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) //Add the table instrumentation: { - const double H62002TablePos = 8320.*GeoModelKernelUnits::mm; + const double H62002TablePos = 8320.*Gaudi::Units::mm; TableConstructionH62002 TableConstruction; GeoVPhysVol* table = TableConstruction.GetEnvelope(); if(table !=0 && expHallPhys !=0){ @@ -237,8 +237,8 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) //Add the front beam instrumentation: { - const double H62002FrontBeamPos = -20215.5*GeoModelKernelUnits::mm; // (Use this to get the Front dets. in Peter Schacht's position) - //const double H62002FrontBeamPos = -20439.*GeoModelKernelUnits::mm; // (according to old code: [-21600+801+350]*GeoModelKernelUnits::mm) + const double H62002FrontBeamPos = -20215.5*Gaudi::Units::mm; // (Use this to get the Front dets. in Peter Schacht's position) + //const double H62002FrontBeamPos = -20439.*Gaudi::Units::mm; // (according to old code: [-21600+801+350]*Gaudi::Units::mm) // (with 350=1/2 length of FrontBeam volume) FrontBeamConstructionH62002 FrontBeamConstruction; GeoVPhysVol* front = FrontBeamConstruction.GetEnvelope(); @@ -263,10 +263,10 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // For the moment it is still commented out until I have // its true geometry confirmed; But really it is ready to go: // Add Rohacell Excluder - // double ThetaRoha = 0. * GeoModelKernelUnits::deg; - // double PhiRoha = 0. * GeoModelKernelUnits::deg; + // double ThetaRoha = 0. * Gaudi::Units::deg; + // double PhiRoha = 0. * Gaudi::Units::deg; // GeoTrf::Transform3D MrotRoha(GeoTrf::RotateZ3D(PhiRoha)*GeoTrf::RotateX3D(ThetaRoha)); - // GeoTrf::Translate3D pos3Roha( 0*GeoModelKernelUnits::mm, 0.0*GeoModelKernelUnits::mm , 0.*GeoModelKernelUnits::mm); + // GeoTrf::Translate3D pos3Roha( 0*Gaudi::Units::mm, 0.0*Gaudi::Units::mm , 0.*Gaudi::Units::mm); { ExcluderConstruction excluderConstruction; @@ -286,12 +286,12 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) EMECDetectorManager *emecDetectorManager = new EMECDetectorManager(); - double ThetaEmec = -90. * GeoModelKernelUnits::deg; - double PhiEmec = 180. * GeoModelKernelUnits::deg; + double ThetaEmec = -90. * Gaudi::Units::deg; + double PhiEmec = 180. * Gaudi::Units::deg; GeoTrf::Transform3D MrotEmec(GeoTrf::RotateZ3D(PhiEmec)*GeoTrf::RotateX3D(ThetaEmec)); - // GeoTrf::Vector3D pos3Emec( 0*GeoModelKernelUnits::mm, 869.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); - GeoTrf::Translate3D pos3Emec( 0*GeoModelKernelUnits::mm, 808.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); + // GeoTrf::Vector3D pos3Emec( 0*Gaudi::Units::mm, 869.0*Gaudi::Units::mm , 1720.*Gaudi::Units::mm); + GeoTrf::Translate3D pos3Emec( 0*Gaudi::Units::mm, 808.0*Gaudi::Units::mm , 1720.*Gaudi::Units::mm); //use this line for physical construction of the EMEC outer wheel only: EMECConstruction emecConstruction(true, true, true); @@ -392,11 +392,11 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) } - double ThetaPS = -90. * GeoModelKernelUnits::deg; - double PhiPS = 180. * GeoModelKernelUnits::deg; + double ThetaPS = -90. * Gaudi::Units::deg; + double PhiPS = 180. * Gaudi::Units::deg; GeoTrf::Transform3D MrotPS(GeoTrf::RotateZ3D(PhiPS)*GeoTrf::RotateX3D(ThetaPS)); - //GeoTrf::Vector3D pos3PS( 0*GeoModelKernelUnits::mm, 945.5*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); - GeoTrf::Translate3D pos3PS( 0*GeoModelKernelUnits::mm, 888.5*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); + //GeoTrf::Vector3D pos3PS( 0*Gaudi::Units::mm, 945.5*Gaudi::Units::mm , 1720.*Gaudi::Units::mm); + GeoTrf::Translate3D pos3PS( 0*Gaudi::Units::mm, 888.5*Gaudi::Units::mm , 1720.*Gaudi::Units::mm); //double zPSpos = -869. -(61. +2. +13.5); //std::string PresamplerName = baseName + "::Presampler::"; @@ -420,10 +420,10 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // Add HEC - double ThetaHec = 90. * GeoModelKernelUnits::deg; - double PhiHec = 0. * GeoModelKernelUnits::deg; + double ThetaHec = 90. * Gaudi::Units::deg; + double PhiHec = 0. * Gaudi::Units::deg; GeoTrf::Transform3D MrotHec(GeoTrf::RotateZ3D(PhiHec)*GeoTrf::RotateX3D(ThetaHec)); - GeoTrf::Translate3D pos3Hec( 0*GeoModelKernelUnits::mm, 233.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); + GeoTrf::Translate3D pos3Hec( 0*Gaudi::Units::mm, 233.0*Gaudi::Units::mm , 1720.*Gaudi::Units::mm); { HECConstructionH62002 hecConstruction; diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx index 8b2d56e9cbf4..ad4bd0b4743d 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx @@ -24,7 +24,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -42,6 +41,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -138,8 +138,8 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() std::string baseName = "LAr::TBH62002"; std::string H62002TableName = baseName + "::Table"; - const double H62002TableXY = 150.*GeoModelKernelUnits::mm; - const double H62002TableZ = 1200.*GeoModelKernelUnits::mm; + const double H62002TableXY = 150.*Gaudi::Units::mm; + const double H62002TableZ = 1200.*Gaudi::Units::mm; GeoBox* H62002TableShape = new GeoBox( H62002TableXY, H62002TableXY, H62002TableZ ); @@ -156,13 +156,13 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() log << "Create F1/F2 Scintillators ..." << std::endl; // Universal size: - const double Fx = 10.0*GeoModelKernelUnits::mm; - const double Fy = 10.0*GeoModelKernelUnits::mm; - const double Fz = 10.0*GeoModelKernelUnits::mm; + const double Fx = 10.0*Gaudi::Units::mm; + const double Fy = 10.0*Gaudi::Units::mm; + const double Fz = 10.0*Gaudi::Units::mm; std::vector<double> v_ScintZ; - v_ScintZ.push_back(2195.*GeoModelKernelUnits::mm); // <-- = btas_pos - v_ScintZ.push_back(2320.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(2195.*Gaudi::Units::mm); // <-- = btas_pos + v_ScintZ.push_back(2320.*Gaudi::Units::mm); const double ScintDx = Fx; const double ScintDy = Fy; const double ScintDz = Fz; @@ -175,7 +175,7 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() GeoPhysVol* ScintPhysical = new GeoPhysVol( ScintLogical ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62002TablePhysical->add( new GeoIdentifierTag(i) ); - m_H62002TablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-H62002TableZ) ) ) ); + m_H62002TablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (v_ScintZ[ i ]-H62002TableZ) ) ) ); log << MSG::INFO << " Position the F Scintillator at: " << v_ScintZ[ i ] << endmsg ; m_H62002TablePhysical->add( ScintPhysical ); } @@ -190,16 +190,16 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() //------ Get the MWPCs from LArGeoH6Cryostats const int MwpcNumber = 3; std::vector<double> v_MwpcPos; - v_MwpcPos.push_back(105.*GeoModelKernelUnits::mm); - v_MwpcPos.push_back(825.*GeoModelKernelUnits::mm); - v_MwpcPos.push_back(1815.*GeoModelKernelUnits::mm); - double WireStep = 1.*GeoModelKernelUnits::mm; + v_MwpcPos.push_back(105.*Gaudi::Units::mm); + v_MwpcPos.push_back(825.*Gaudi::Units::mm); + v_MwpcPos.push_back(1815.*Gaudi::Units::mm); + double WireStep = 1.*Gaudi::Units::mm; MWPCConstruction mwpcXConstruction (WireStep); GeoVPhysVol* mwpcEnvelope = mwpcXConstruction.GetEnvelope(); for ( int imwpc = 0; imwpc<MwpcNumber ; imwpc++) { m_H62002TablePhysical->add(new GeoIdentifierTag(imwpc+2)); - m_H62002TablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_MwpcPos[imwpc]-H62002TableZ) ) ) ); + m_H62002TablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (v_MwpcPos[imwpc]-H62002TableZ) ) ) ); m_H62002TablePhysical->add(mwpcEnvelope); } //------ Done with creating an MWPC from LArGeoH6Cryostats diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx index e613b8c86a7f..af8b3736e390 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx @@ -49,17 +49,18 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> #include <iostream> using GeoModelKernelUnits::g; -using GeoModelKernelUnits::cm3; -using GeoModelKernelUnits::mm; -using GeoModelKernelUnits::cm; -using GeoModelKernelUnits::m; -using GeoModelKernelUnits::deg; +using Gaudi::Units::cm3; +using Gaudi::Units::mm; +using Gaudi::Units::cm; +using Gaudi::Units::m; +using Gaudi::Units::deg; using GeoTrf::Vector3D; using GeoTrf::Transform3D; using GeoTrf::Translate3D; diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx index 5320788f5ff3..8f7f0914e60b 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx @@ -36,6 +36,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -99,7 +100,7 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/Gaudi::Units::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -107,7 +108,7 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { Rohacell->lock(); /* - a = 12.957*GeoModelKernelUnits::g/GeoModelKernelUnits::mole; + a = 12.957*GeoModelKernelUnits::g/Gaudi::Units::mole; density = 0.112*g/cm3; z = 6.18; G4Material* Rohacell = new G4Material(name="Rohacell",z, a, density); @@ -138,20 +139,20 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { switch(m_which) { case 0: { // EMEC excluder // DB values - double Rmin = 725.*GeoModelKernelUnits::mm; - double Rmin_2 = 780.*GeoModelKernelUnits::mm; - double Rmax = 980.*GeoModelKernelUnits::mm; + double Rmin = 725.*Gaudi::Units::mm; + double Rmin_2 = 780.*Gaudi::Units::mm; + double Rmax = 980.*Gaudi::Units::mm; - double Zall = 626*GeoModelKernelUnits::mm; - double Zback = 91*GeoModelKernelUnits::mm; - double Zfront = 60*GeoModelKernelUnits::mm; + double Zall = 626*Gaudi::Units::mm; + double Zback = 91*Gaudi::Units::mm; + double Zfront = 60*Gaudi::Units::mm; - double alpha = 22.5*GeoModelKernelUnits::degree; - double beta = 6.375*GeoModelKernelUnits::degree; + double alpha = 22.5*Gaudi::Units::degree; + double beta = 6.375*Gaudi::Units::degree; // double gamma = 8.589*degree; - double delta = 2.720*GeoModelKernelUnits::degree; + double delta = 2.720*Gaudi::Units::degree; // solidEx = new GeoTubs("MotherEx",Rmin,Rmax,Zall/2.,-(alpha+gamma), 2*(alpha+gamma)); // GeoTubs* solidEx = new GeoTubs(Rmin,Rmax,Zall/2.,-(alpha+beta), 2*(alpha+beta)); @@ -209,30 +210,30 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { } case 1 : { // FCAL excluder - double Rmax = 335.*GeoModelKernelUnits::mm; -// double Rmax_1 = 253.*GeoModelKernelUnits::mm; - double bepo_Beta = 4.668*GeoModelKernelUnits::degree; // DB !!! - double bepo_ty = 90.0*GeoModelKernelUnits::degree; // DB !! - -// double Zall = (1021.4/2.)*GeoModelKernelUnits::mm; - double Zall = (912./2.)*GeoModelKernelUnits::mm; -// double Zpara = (168.47/2.)*GeoModelKernelUnits::mm; -// double Zpara = (247.87/2.)*GeoModelKernelUnits::mm; - double Xall = (171./2.)*GeoModelKernelUnits::mm; - double Yall = (300./2.)*GeoModelKernelUnits::mm; + double Rmax = 335.*Gaudi::Units::mm; +// double Rmax_1 = 253.*Gaudi::Units::mm; + double bepo_Beta = 4.668*Gaudi::Units::degree; // DB !!! + double bepo_ty = 90.0*Gaudi::Units::degree; // DB !! + +// double Zall = (1021.4/2.)*Gaudi::Units::mm; + double Zall = (912./2.)*Gaudi::Units::mm; +// double Zpara = (168.47/2.)*Gaudi::Units::mm; +// double Zpara = (247.87/2.)*Gaudi::Units::mm; + double Xall = (171./2.)*Gaudi::Units::mm; + double Yall = (300./2.)*Gaudi::Units::mm; double Rmax_1 = Rmax - 2.*Zall*tan(bepo_Beta); - GeoPara *pEx = new GeoPara(Zall,Yall,Xall,0*GeoModelKernelUnits::degree,bepo_Beta,0.*GeoModelKernelUnits::degree); + GeoPara *pEx = new GeoPara(Zall,Yall,Xall,0*Gaudi::Units::degree,bepo_Beta,0.*Gaudi::Units::degree); GeoCons *tEx = new GeoCons(0.,0.,Rmax,Rmax_1,Zall,0.,M_PI); GeoBox *box = new GeoBox(Yall,Xall,Zall); GeoTrf::RotateX3D Rot(bepo_Beta); - GeoTrf::Translation3D trans1(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall) + Xall + Zall*tan(bepo_Beta), 0*GeoModelKernelUnits::mm); + GeoTrf::Translation3D trans1(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall) + Xall + Zall*tan(bepo_Beta), 0*Gaudi::Units::mm); GeoTrf::Transform3D offset = trans1 * Rot; const GeoShapeIntersection &is = (*tEx).intersect(*box<<offset); GeoTrf::Transform3D Rot1 = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateZ3D(bepo_ty) * GeoTrf::RotateY3D(bepo_ty); -// G4ThreeVector translation(0., (203.74-168.47/2.)*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm); - GeoTrf::Translation3D translation(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall)-Xall+Zall*tan(bepo_Beta),0.*GeoModelKernelUnits::mm); +// G4ThreeVector translation(0., (203.74-168.47/2.)*Gaudi::Units::mm, 0.*Gaudi::Units::mm); + GeoTrf::Translation3D translation(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall)-Xall+Zall*tan(bepo_Beta),0.*Gaudi::Units::mm); GeoTrf::Transform3D offset1 = translation * Rot1; const GeoShapeUnion &us = is.add(*pEx<<offset1); std::string bExName = "LArGeoTB::FCAL::Excluder"; @@ -245,19 +246,19 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { // double Rmax = bcry_rlar; - double Rmax = 125.5*GeoModelKernelUnits::cm; // DB !!! - double bepo_Beta = 4.668*GeoModelKernelUnits::degree; // DB !!! + double Rmax = 125.5*Gaudi::Units::cm; // DB !!! + double bepo_Beta = 4.668*Gaudi::Units::degree; // DB !!! - double Zall = (1200./2.)*GeoModelKernelUnits::mm; - double angle = 32.*GeoModelKernelUnits::degree; -// double Xall = 119.35*GeoModelKernelUnits::cm; + double Zall = (1200./2.)*Gaudi::Units::mm; + double angle = 32.*Gaudi::Units::degree; +// double Xall = 119.35*Gaudi::Units::cm; double Xall = Rmax*cos(angle/2); double Yall = Rmax*sin(angle/2); GeoTubs *tEx = new GeoTubs(0.,Rmax,Zall,-angle/2.,angle); GeoPara *box = new GeoPara(Xall,Yall,1.1*Zall,0.,-bepo_Beta,0.); - GeoTrf::Translate3D offset(0., 0.*GeoModelKernelUnits::mm, 0*GeoModelKernelUnits::mm); + GeoTrf::Translate3D offset(0., 0.*Gaudi::Units::mm, 0*Gaudi::Units::mm); const GeoShapeSubtraction &is = (*tEx).subtract((*box)<<(offset)); // G4UnionSolid *is = new G4UnionSolid("isEx",tEx,box,Rot,trans1); std::string FrontExName = "LArGeoTB::Front::Excluder"; @@ -268,18 +269,18 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { case 3 : { // Back excluder // double Rmax = bcry_rlar; - double Rmax = 125.5*GeoModelKernelUnits::cm; // DB !!! + double Rmax = 125.5*Gaudi::Units::cm; // DB !!! - double Zall = (1600./2.)*GeoModelKernelUnits::mm; - double angle = 58.*GeoModelKernelUnits::degree; + double Zall = (1600./2.)*Gaudi::Units::mm; + double angle = 58.*Gaudi::Units::degree; double Xall = Rmax*cos(angle/2.); double Yall = Rmax*sin(angle/2.); GeoTubs *tEx = new GeoTubs(0.,Rmax,Zall,0.,angle); GeoBox *box = new GeoBox(Xall,Yall,1.1*Zall); GeoTrf::RotateZ3D Rot(angle/2.); - GeoTrf::Translation3D trans1(0., 0.*GeoModelKernelUnits::mm, 0*GeoModelKernelUnits::mm); + GeoTrf::Translation3D trans1(0., 0.*Gaudi::Units::mm, 0*Gaudi::Units::mm); GeoTrf::Transform3D offset = trans1 * Rot; const GeoShapeSubtraction &is = (*tEx).subtract((*box)<<(offset)); std::string BackExName = "LArGeoTB::Back::Excluder"; diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx index 3413f1c2bab4..37f0b782c251 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx @@ -55,6 +55,7 @@ // For units: #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> #include <cfloat> @@ -214,13 +215,13 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() std::string baseName = "LAr::FCAL::"; double fcalHalfDepth=0; - double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * GeoModelKernelUnits::cm; - double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * GeoModelKernelUnits::cm; - double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * GeoModelKernelUnits::cm; + double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * Gaudi::Units::cm; + double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * Gaudi::Units::cm; + double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * Gaudi::Units::cm; // Should go to Db (change FCalNominals ????) - double fcalstartPhi = 90.*GeoModelKernelUnits::deg; - double fcaldeltaPhi = 90.*GeoModelKernelUnits::deg; + double fcalstartPhi = 90.*Gaudi::Units::deg; + double fcaldeltaPhi = 90.*Gaudi::Units::deg; // FCAL VOLUME. IT DOES NOT INCLUDE THE COPPER PLUG, ONLY THE LAR AND MODS 1-3 { @@ -275,17 +276,17 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // 16 Troughs representing Cable Harnesses: if(m_absPhysical1==0) { - double troughDepth = 0.9999 * GeoModelKernelUnits::cm; + double troughDepth = 0.9999 * Gaudi::Units::cm; double outerRadius = fcalData[0].outerModuleRadius; double innerRadius = outerRadius - troughDepth; double halfLength = fcalData[0].fullModuleDepth/ 2.0; - double deltaPhi = 5.625 * GeoModelKernelUnits::deg; - double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * Gaudi::Units::deg; + double startPhi = 11.25 * Gaudi::Units::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module1::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); GeoGenfun::Variable i; - GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*GeoModelKernelUnits::deg*i; + GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*Gaudi::Units::deg*i; GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,4); modPhysical->add(st); @@ -296,7 +297,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() double halfDepth = fcalData[0].fullGapDepth/2.0; double innerRadius = fcalData[0].innerGapRadius; double outerRadius = fcalData[0].outerGapRadius; - GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); + GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg); GeoLogVol *logVol = new GeoLogVol(baseName + "Module1::Gap",tubs, LAr); GeoPhysVol *physVol = new GeoPhysVol(logVol); @@ -327,7 +328,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; //std::cout<<thisTileStr<<" "<<thisTubeX<<" "<<thisTubeY<<std::endl; - GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*Gaudi::Units::cm, thisTubeY*Gaudi::Units::cm,0)); modPhysical->add(xf); modPhysical->add(physVol); } @@ -371,17 +372,17 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // 16 Troughs representing Cable Harnesses: if(m_absPhysical2==0) { - double troughDepth = 1.0 * GeoModelKernelUnits::cm; + double troughDepth = 1.0 * Gaudi::Units::cm; double outerRadius = fcalData[1].outerModuleRadius; double innerRadius = outerRadius - troughDepth; double halfLength = fcalData[1].fullModuleDepth/ 2.0; - double deltaPhi = 5.625 * GeoModelKernelUnits::deg; - double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * Gaudi::Units::deg; + double startPhi = 11.25 * Gaudi::Units::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module2::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); GeoGenfun::Variable i; - GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*GeoModelKernelUnits::deg*i; + GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*Gaudi::Units::deg*i; GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,4); modPhysical->add(st); @@ -431,7 +432,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() if (m_VisLimit!=-1 && (counter++ > m_VisLimit)) continue; - GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*Gaudi::Units::cm, thisTubeY*Gaudi::Units::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } @@ -452,7 +453,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // We need few more materials // ColdTC effective absorber: Cu with a little bit of inactive argon - GeoMaterial *thisAbsorber = new GeoMaterial("ColdTCAbsorber",8.701*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial *thisAbsorber = new GeoMaterial("ColdTCAbsorber",8.701*GeoModelKernelUnits::g/Gaudi::Units::cm3); thisAbsorber->add(Copper,0.994); thisAbsorber->add(LAr,0.006); thisAbsorber->lock(); @@ -487,8 +488,8 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() double outerRadius = fcalData[2].outerGapRadius; // Where in DB should go this ? - double ElectrodeDepth = 0.85*GeoModelKernelUnits::cm; - double ActiveDepth = 0.2*GeoModelKernelUnits::cm; + double ElectrodeDepth = 0.85*Gaudi::Units::cm; + double ActiveDepth = 0.2*Gaudi::Units::cm; // big argon gap solid GeoTubs *gapSolid = new GeoTubs(innerRadius,outerRadius,halfDepth, fcalstartPhi, fcaldeltaPhi); @@ -506,13 +507,13 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // active gaps in electrode int iCopy = 1; - double zPos = -ElectrodeDepth/2. + 1.5 * GeoModelKernelUnits::mm + ActiveDepth/2.; + double zPos = -ElectrodeDepth/2. + 1.5 * Gaudi::Units::mm + ActiveDepth/2.; GeoTransform *t1 = new GeoTransform(GeoTrf::Translate3D(0.,0.,zPos)); electrodePhys->add(new GeoSerialIdentifier(iCopy)); electrodePhys->add(t1); electrodePhys->add(activePhys); ++iCopy; - zPos += 3.5 * GeoModelKernelUnits::mm; + zPos += 3.5 * Gaudi::Units::mm; electrodePhys->add(new GeoSerialIdentifier(iCopy)); electrodePhys->add(t1); electrodePhys->add(activePhys); @@ -523,12 +524,12 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() gapPhys->add(t2); gapPhys->add(electrodePhys); // big gaps in copper block - zPos = -fcalData[2].fullModuleDepth/2. + 2.2 * GeoModelKernelUnits::cm + halfDepth; + zPos = -fcalData[2].fullModuleDepth/2. + 2.2 * Gaudi::Units::cm + halfDepth; for ( iCopy = 1; iCopy < 9; ++iCopy ){ modPhysical->add(new GeoSerialIdentifier(iCopy)); modPhysical->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,zPos))); modPhysical->add(gapPhys); - zPos += 3.5*GeoModelKernelUnits::cm; + zPos += 3.5*Gaudi::Units::cm; } m_absPhysical3 = modPhysical; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx index fa4dba728df4..0a61111efd35 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx @@ -24,7 +24,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -40,6 +39,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -123,14 +123,14 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() // Define dimension of Front part & position of Front part // // DB ? - const double bard_x = 20.0*GeoModelKernelUnits::cm; - const double bard_y = 20.0*GeoModelKernelUnits::cm; - //const double bard_z = 35.0*GeoModelKernelUnits::cm; - const double bard_z = 100.0*GeoModelKernelUnits::cm; - const double fbpc_z[2] = {60.4*GeoModelKernelUnits::cm,112.7*GeoModelKernelUnits::cm}; + const double bard_x = 20.0*Gaudi::Units::cm; + const double bard_y = 20.0*Gaudi::Units::cm; + //const double bard_z = 35.0*Gaudi::Units::cm; + const double bard_z = 100.0*Gaudi::Units::cm; + const double fbpc_z[2] = {60.4*Gaudi::Units::cm,112.7*Gaudi::Units::cm}; // Position in exp_hall - //const double z_bard=-2160.0*GeoModelKernelUnits::cm+80.1*GeoModelKernelUnits::cm+16.*GeoModelKernelUnits::cm+bard_z; - //const double z_bardm=-2160.0*GeoModelKernelUnits::cm+1362.3*GeoModelKernelUnits::cm; + //const double z_bard=-2160.0*Gaudi::Units::cm+80.1*Gaudi::Units::cm+16.*Gaudi::Units::cm+bard_z; + //const double z_bardm=-2160.0*Gaudi::Units::cm+1362.3*Gaudi::Units::cm; @@ -144,27 +144,27 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm - // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm + // B1 : 30 x 30 x 10 Gaudi::Units::mm + // W1,2 : 150 x 150 x 10 Gaudi::Units::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 log << MSG::INFO << "Create Front Scintillators ..." << endmsg; - const double Wxy= 75.0*GeoModelKernelUnits::mm; - const double Wz = 5.0*GeoModelKernelUnits::mm; - const double Bxy= 15.0*GeoModelKernelUnits::mm; - const double Bz = 5.0*GeoModelKernelUnits::mm; + const double Wxy= 75.0*Gaudi::Units::mm; + const double Wz = 5.0*Gaudi::Units::mm; + const double Bxy= 15.0*Gaudi::Units::mm; + const double Bz = 5.0*Gaudi::Units::mm; std::vector<double> v_ScintXY; std::vector<double> v_ScintZ; v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Bxy); - v_ScintZ.push_back(10.*GeoModelKernelUnits::mm); - v_ScintZ.push_back(40.*GeoModelKernelUnits::mm); - v_ScintZ.push_back(180.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(10.*Gaudi::Units::mm); + v_ScintZ.push_back(40.*Gaudi::Units::mm); + v_ScintZ.push_back(180.*Gaudi::Units::mm); // Create one Scintillator and place it twice along z: @@ -179,7 +179,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() //BScintPhysical->add( new GeoNameTag(ScintName) ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(i+1) ); - m_H62004FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-bard_z) ) ) ) ; m_H62004FrontBeamPhysical->add( new GeoNameTag(ScintName) ); + m_H62004FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (v_ScintZ[ i ]-bard_z) ) ) ) ; m_H62004FrontBeamPhysical->add( new GeoNameTag(ScintName) ); switch(i) { case 0: case 1: { m_H62004FrontBeamPhysical->add( WScintPhysical ); break; } @@ -195,13 +195,13 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() //------ Now create MWPC5 log << MSG::INFO << " Create MWPC5 " << endmsg; - MWPCConstruction MWPC5 (2.*GeoModelKernelUnits::mm); + MWPCConstruction MWPC5 (2.*Gaudi::Units::mm); GeoVPhysVol* MwpcPhysical = MWPC5.GetEnvelope(); - const double MwpcPos = 445.*GeoModelKernelUnits::mm; + const double MwpcPos = 445.*Gaudi::Units::mm; m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(5) ); - m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-bard_z) ) ) ); + m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (MwpcPos-bard_z) ) ) ); m_H62004FrontBeamPhysical->add( MwpcPhysical ); //----- Done with the MWPC @@ -213,7 +213,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() GeoVPhysVol* BPCPhysical = BPC.GetEnvelope(); for(int i=1; i<3; ++i) { m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(i) ); - m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-bard_z) + fbpc_z[i-1]) ) ); + m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (MwpcPos-bard_z) + fbpc_z[i-1]) ) ); m_H62004FrontBeamPhysical->add(BPCPhysical); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx index d1c4ba5bb72c..ad4fdaa39c1a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" #include "GeoGenericFunctions/Sin.h" @@ -36,6 +35,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -146,57 +146,57 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() double zCoordinate[6],innerRadius[6],outerRadius[6]; - double absorberPosY = 1.02*GeoModelKernelUnits::cm; - double PosYcorr = 0.005*GeoModelKernelUnits::cm; + double absorberPosY = 1.02*Gaudi::Units::cm; + double PosYcorr = 0.005*Gaudi::Units::cm; const double moduleNumber = (*hadronicEndcap)[0]->getInt("NSCT"); // 32 Modules unsigned int TBmoduleNumber = 8; - double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*GeoModelKernelUnits::cm; // 37.2*GeoModelKernelUnits::cm Inner Radius - double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*GeoModelKernelUnits::cm; // 47.5*GeoModelKernelUnits::cm - //double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*GeoModelKernelUnits::cm; //203.*GeoModelKernelUnits::cm Outer Radius - double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*GeoModelKernelUnits::cm; // 0.003.*GeoModelKernelUnits::cm - double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*GeoModelKernelUnits::cm; // 8.5*GeoModelKernelUnits::mm - double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm-0.001*GeoModelKernelUnits::cm; //40.5*GeoModelKernelUnits::mm + double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*Gaudi::Units::cm; // 37.2*Gaudi::Units::cm Inner Radius + double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*Gaudi::Units::cm; // 47.5*Gaudi::Units::cm + //double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*Gaudi::Units::cm; //203.*Gaudi::Units::cm Outer Radius + double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*Gaudi::Units::cm; // 0.003.*Gaudi::Units::cm + double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*Gaudi::Units::cm; // 8.5*Gaudi::Units::mm + double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*Gaudi::Units::cm-0.001*Gaudi::Units::cm; //40.5*Gaudi::Units::mm int indexloop,index; for (indexloop=0; indexloop < depthNumber; ++indexloop){ - depthSize[indexloop] = (*hecLongitudinalBlock)[indexloop]->getDouble("BLDPTH")*GeoModelKernelUnits::cm; - firstAbsorber[indexloop]= (*hecLongitudinalBlock)[indexloop]->getDouble("PLATE0")*GeoModelKernelUnits::cm; + depthSize[indexloop] = (*hecLongitudinalBlock)[indexloop]->getDouble("BLDPTH")*Gaudi::Units::cm; + firstAbsorber[indexloop]= (*hecLongitudinalBlock)[indexloop]->getDouble("PLATE0")*Gaudi::Units::cm; gapNumber[indexloop] = (int) (*hecLongitudinalBlock)[indexloop]->getDouble("BLMOD"); // 4 or 8 } std::string sidx[4]={"_0","_1","_2","_3"}; for (indexloop=0; indexloop < 3; ++indexloop){ - kaptonPosition[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTPOS" + sidx[indexloop])*GeoModelKernelUnits::cm; - kaptonWidth[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTWID" + sidx[indexloop])*GeoModelKernelUnits::cm; + kaptonPosition[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTPOS" + sidx[indexloop])*Gaudi::Units::cm; + kaptonWidth[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTWID" + sidx[indexloop])*Gaudi::Units::cm; } for (indexloop=0; indexloop < 4; ++indexloop){ - tieRodPositionX[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSX" + sidx[indexloop])*GeoModelKernelUnits::cm; - tieRodPositionY[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSR" + sidx[indexloop])*GeoModelKernelUnits::cm; + tieRodPositionX[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSX" + sidx[indexloop])*Gaudi::Units::cm; + tieRodPositionY[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSR" + sidx[indexloop])*Gaudi::Units::cm; } for (indexloop=0; indexloop < 2; ++indexloop){ - tieRodDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("RODDIM" + sidx[indexloop])*GeoModelKernelUnits::cm; - spacerDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("SPCDIM" + sidx[indexloop])*GeoModelKernelUnits::cm; + tieRodDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("RODDIM" + sidx[indexloop])*Gaudi::Units::cm; + spacerDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("SPCDIM" + sidx[indexloop])*Gaudi::Units::cm; } - double absorberZ1 = (*hadronicEndcap)[0]->getDouble("PLATE_0")*GeoModelKernelUnits::cm; // 2.5*GeoModelKernelUnits::cm; - double absorberZ2 = (*hadronicEndcap)[0]->getDouble("PLATE_1")*GeoModelKernelUnits::cm; //5.0*GeoModelKernelUnits::cm; + double absorberZ1 = (*hadronicEndcap)[0]->getDouble("PLATE_0")*Gaudi::Units::cm; // 2.5*Gaudi::Units::cm; + double absorberZ2 = (*hadronicEndcap)[0]->getDouble("PLATE_1")*Gaudi::Units::cm; //5.0*Gaudi::Units::cm; - const double moduleDeltaPhi = 2*M_PI/moduleNumber; //11.25*GeoModelKernelUnits::deg; + const double moduleDeltaPhi = 2*M_PI/moduleNumber; //11.25*Gaudi::Units::deg; double modulePhistart = -moduleDeltaPhi/2.; - //double modulePhistart = 0.0*GeoModelKernelUnits::deg; - zCoordinate[0]=0.0*GeoModelKernelUnits::cm; - zCoordinate[1]=depthSize[0]; //28.05*GeoModelKernelUnits::cm; - zCoordinate[2]=depthSize[0]+0.001*GeoModelKernelUnits::cm; //28.051*GeoModelKernelUnits::cm; + //double modulePhistart = 0.0*Gaudi::Units::deg; + zCoordinate[0]=0.0*Gaudi::Units::cm; + zCoordinate[1]=depthSize[0]; //28.05*Gaudi::Units::cm; + zCoordinate[2]=depthSize[0]+0.001*Gaudi::Units::cm; //28.051*Gaudi::Units::cm; zCoordinate[3]=zCoordinate[2]+depthSize[1]+depthSize[2]+betweenWheel/2; zCoordinate[4]=zCoordinate[3]+depthSize[3]+depthSize[4]+betweenWheel/2; - zCoordinate[5]=181.8*GeoModelKernelUnits::cm; + zCoordinate[5]=181.8*Gaudi::Units::cm; innerRadius[0]=moduleRinner1; innerRadius[1]=moduleRinner1; for (index=2; index<numberZplane;++index) {innerRadius[index]=moduleRinner2;} - for (index=0; index<numberZplane;++index) {outerRadius[index]=innerRadius[0] + 78.7*GeoModelKernelUnits::cm; } + for (index=0; index<numberZplane;++index) {outerRadius[index]=innerRadius[0] + 78.7*Gaudi::Units::cm; } //---------------------------------------------------------------- @@ -299,9 +299,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() } //---------------------------------------------------------------- -// Absorbers , the inner and outer Radius are smaller on 1.02*GeoModelKernelUnits::cm +// Absorbers , the inner and outer Radius are smaller on 1.02*Gaudi::Units::cm // but positionned in the center of depth. this alows -// to have 2 GeoModelKernelUnits::mm gap between the copper plates of neighbor Modules +// to have 2 Gaudi::Units::mm gap between the copper plates of neighbor Modules //---------------------------------------------------------------- std::string absorberName = depthName + "::Absorber"; double absorberRinner1 = moduleRinner1-absorberPosY; @@ -334,7 +334,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() double depthPositionZ = 0.; for(int indexDepth=0; indexDepth<5; indexDepth++){ depthPositionZ +=depthSize[indexDepth]/2.; - if (indexDepth==1) depthPositionZ +=0.001*GeoModelKernelUnits::cm; + if (indexDepth==1) depthPositionZ +=0.001*Gaudi::Units::cm; moduleRinner = moduleRinner2; if (indexDepth==0) moduleRinner = moduleRinner1; //for first depth //Absorber size and position @@ -432,12 +432,12 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() std::string tieRodName = sliceName + "::TieRod"; double ztie[2]; - ztie[0]=-0.227825*GeoModelKernelUnits::cm; - ztie[1]= 0.227825*GeoModelKernelUnits::cm; - double rodSize = 0.39435*GeoModelKernelUnits::cm; + ztie[0]=-0.227825*Gaudi::Units::cm; + ztie[1]= 0.227825*Gaudi::Units::cm; + double rodSize = 0.39435*Gaudi::Units::cm; for (int indexWheel=0; indexWheel<2; indexWheel++) { - solidTieRod[indexWheel] = new GeoTubs(0.*GeoModelKernelUnits::cm,spacerDiameter[indexWheel]/2.,rodSize/2., - 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); //size + solidTieRod[indexWheel] = new GeoTubs(0.*Gaudi::Units::cm,spacerDiameter[indexWheel]/2.,rodSize/2., + 0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); //size logiTieRod[indexWheel] = new GeoLogVol(tieRodName,solidTieRod[indexWheel], Iron); } for(int numberSlice=0; numberSlice<3; numberSlice++){ @@ -471,8 +471,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() // Tie rods in Absorbers //---------------------------------------------------------------- - solidAbsorberTieRod[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,absorberZ1/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); - solidAbsorberTieRod[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,absorberZ2/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRod[0] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[0]/2.,absorberZ1/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); + solidAbsorberTieRod[1] = new GeoTubs(0.*Gaudi::Units::cm,tieRodDiameter[1]/2.,absorberZ2/2.,0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); logiAbsorberTieRod[0] = new GeoLogVol(tieRodName, solidAbsorberTieRod[0], Iron); logiAbsorberTieRod[1] = new GeoLogVol(tieRodName, solidAbsorberTieRod[1], Iron); for(int indexA=0; indexA<3; indexA++){ diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx index 0fafefd9cfd0..739009b695bd 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx @@ -26,7 +26,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" #include "GeoGenericFunctions/Sin.h" @@ -44,6 +43,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -117,8 +117,8 @@ void LArGeo::LArDetectorFactoryH62004::getSimulationParameters() m_tableYpos = 70.; } - std::cout << " Use cryo X : " << m_cryoXpos << " GeoModelKernelUnits::mm" << std::endl; - std::cout << " Use table Y : " << m_tableYpos << " GeoModelKernelUnits::mm" << std::endl; + std::cout << " Use cryo X : " << m_cryoXpos << " Gaudi::Units::mm" << std::endl; + std::cout << " Use table Y : " << m_tableYpos << " Gaudi::Units::mm" << std::endl; const_cast<LArGeoTB2004Options*>(largeoTB2004Options)->printMe(); @@ -156,9 +156,9 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) const GeoMaterial *air = materialManager->getMaterial("std::Air"); - double expHallX = 14000.*GeoModelKernelUnits::mm; - double expHallY = 14000.*GeoModelKernelUnits::mm; - double expHallZ = 50000.*GeoModelKernelUnits::mm; + double expHallX = 14000.*Gaudi::Units::mm; + double expHallY = 14000.*Gaudi::Units::mm; + double expHallZ = 50000.*Gaudi::Units::mm; //-----------------------------------------------------------------------------------// // Next make the box that describes the shape of the expHall volume: // @@ -183,13 +183,13 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) // the element we want to position in the following order: - double Theta = -90. * GeoModelKernelUnits::deg; - double Phi = 0. * GeoModelKernelUnits::deg; + double Theta = -90. * Gaudi::Units::deg; + double Phi = 0. * Gaudi::Units::deg; GeoTrf::Transform3D Mrot = GeoTrf::RotateZ3D(Phi) * GeoTrf::RotateX3D(Theta); - GeoTrf::Translation3D pos3Vector(- m_cryoXpos*GeoModelKernelUnits::mm - , 0.*GeoModelKernelUnits::mm - , 12250.*GeoModelKernelUnits::mm ); + GeoTrf::Translation3D pos3Vector(- m_cryoXpos*Gaudi::Units::mm + , 0.*Gaudi::Units::mm + , 12250.*Gaudi::Units::mm ); H6CryostatConstruction H6CryoCons; GeoVPhysVol* CryoEnvelope = 0; @@ -207,8 +207,8 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) // Add the front beam instrumentation: FrontBeamConstructionH62004 FrontBeamConstruction; // DB ? - const double bard_z = 100.0*GeoModelKernelUnits::cm; - const double z_bard=-2160.0*GeoModelKernelUnits::cm+80.1*GeoModelKernelUnits::cm+16.*GeoModelKernelUnits::cm+bard_z; + const double bard_z = 100.0*Gaudi::Units::cm; + const double z_bard=-2160.0*Gaudi::Units::cm+80.1*Gaudi::Units::cm+16.*Gaudi::Units::cm+bard_z; { // (with 350=1/2 length of FrontBeam volume) GeoVPhysVol* front = 0; front = FrontBeamConstruction.GetEnvelope(); @@ -220,13 +220,13 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) } // Add middle chambers MiddleBeamConstructionH62004 MiddleBeamConstruction; - const double z_bardm=-2160.0*GeoModelKernelUnits::cm+1362.3*GeoModelKernelUnits::cm; - const double bttb_pos = 833.5*GeoModelKernelUnits::cm; + const double z_bardm=-2160.0*Gaudi::Units::cm+1362.3*Gaudi::Units::cm; + const double bttb_pos = 833.5*Gaudi::Units::cm; { GeoVPhysVol* middle = 0; middle = MiddleBeamConstruction.GetEnvelope(); if(middle != 0 && expHallPhys !=0){ - double ym_pos = m_tableYpos * (z_bardm + 2160*GeoModelKernelUnits::cm) * (1./(bttb_pos + 2160*GeoModelKernelUnits::cm)); + double ym_pos = m_tableYpos * (z_bardm + 2160*Gaudi::Units::cm) * (1./(bttb_pos + 2160*Gaudi::Units::cm)); expHallPhys->add( new GeoNameTag("H62004::Middle")); expHallPhys->add( new GeoTransform( GeoTrf::TranslateY3D(ym_pos) * GeoTrf::TranslateZ3D(z_bardm) ) ); expHallPhys->add(middle); @@ -246,17 +246,17 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) // WarmTC after the cryostat - double WTC_tild = -1.1*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length !! should go to DB ? - double WTC_len = 591.5*GeoModelKernelUnits::mm; - double WTC_sci_z = 12.7*GeoModelKernelUnits::mm; - double Muon_dist = 120.0*GeoModelKernelUnits::mm; - double Muon_z = 1.0*GeoModelKernelUnits::cm; - double bcry_zpos = 1225.0*GeoModelKernelUnits::cm; - double bcry_rwarm = 129.55*GeoModelKernelUnits::cm; - double WTC_x = 0.0*GeoModelKernelUnits::mm; - double WTC_y = 0.0*GeoModelKernelUnits::mm; - double WTC_z = 460.0*GeoModelKernelUnits::mm - 120.*GeoModelKernelUnits::mm - 10.*GeoModelKernelUnits::mm; - double z_m = (86.0*GeoModelKernelUnits::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; + double WTC_tild = -1.1*Gaudi::Units::deg; // 24 Gaudi::Units::mm tild on 1250 Gaudi::Units::mm length !! should go to DB ? + double WTC_len = 591.5*Gaudi::Units::mm; + double WTC_sci_z = 12.7*Gaudi::Units::mm; + double Muon_dist = 120.0*Gaudi::Units::mm; + double Muon_z = 1.0*Gaudi::Units::cm; + double bcry_zpos = 1225.0*Gaudi::Units::cm; + double bcry_rwarm = 129.55*Gaudi::Units::cm; + double WTC_x = 0.0*Gaudi::Units::mm; + double WTC_y = 0.0*Gaudi::Units::mm; + double WTC_z = 460.0*Gaudi::Units::mm - 120.*Gaudi::Units::mm - 10.*Gaudi::Units::mm; + double z_m = (86.0*Gaudi::Units::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; WarmTCConstructionH62004 wtcConstruction; { diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx index 8101631899dd..c366cd57b988 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx @@ -24,7 +24,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -41,6 +40,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -114,13 +114,13 @@ GeoVPhysVol* LArGeo::MiddleBeamConstructionH62004::GetEnvelope() // // Define dimension of Middle part & position of Front part // - double bmtb_x = 12.0*GeoModelKernelUnits::cm; - double bmtb_y = 12.0*GeoModelKernelUnits::cm; - double bmtb_z = 25.0*GeoModelKernelUnits::cm; - //double bmtb_pos = 10.0*GeoModelKernelUnits::cm; - double bpco_pos[4] = {1.*GeoModelKernelUnits::cm, 1.*GeoModelKernelUnits::cm, 15.3*GeoModelKernelUnits::cm, 15.3*GeoModelKernelUnits::cm}; - double bpco_shift[4] = {0.*GeoModelKernelUnits::cm, 7.8*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 7.5*GeoModelKernelUnits::cm}; - double bpc_old_z = (5.100/2)*GeoModelKernelUnits::cm; + double bmtb_x = 12.0*Gaudi::Units::cm; + double bmtb_y = 12.0*Gaudi::Units::cm; + double bmtb_z = 25.0*Gaudi::Units::cm; + //double bmtb_pos = 10.0*Gaudi::Units::cm; + double bpco_pos[4] = {1.*Gaudi::Units::cm, 1.*Gaudi::Units::cm, 15.3*Gaudi::Units::cm, 15.3*Gaudi::Units::cm}; + double bpco_shift[4] = {0.*Gaudi::Units::cm, 7.8*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 7.5*Gaudi::Units::cm}; + double bpc_old_z = (5.100/2)*Gaudi::Units::cm; GeoBox* H62004MiddleBeamShape = new GeoBox( bmtb_x, bmtb_y, bmtb_z ); const GeoLogVol* H62004MiddleBeamLogical = new GeoLogVol( H62004MiddleBeamName, H62004MiddleBeamShape, Air ); @@ -137,11 +137,11 @@ GeoVPhysVol* LArGeo::MiddleBeamConstructionH62004::GetEnvelope() m_H62004MiddleBeamPhysical->add( new GeoIdentifierTag((3+i/2)*10+i) ); switch(i) { case 0: case 2: { - m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); + m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); m_H62004MiddleBeamPhysical->add(BPCPhysical); break;} case 1: case 3: { - m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); + m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); m_H62004MiddleBeamPhysical->add(BPCPhysical); break;} } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx index f2ffab36b2b3..e72da4124032 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx @@ -49,6 +49,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -72,7 +73,7 @@ LArGeo::ModulesConstructionH62004::ModulesConstructionH62004():m_ModulesPhys(0), { // fill the static arrays, if called first time // - //const double thick = 1.*GeoModelKernelUnits::cm; + //const double thick = 1.*Gaudi::Units::cm; static bool first = true; if(first){ first = false; @@ -82,65 +83,65 @@ LArGeo::ModulesConstructionH62004::ModulesConstructionH62004():m_ModulesPhys(0), s_angleX[i] = s_angleY[i] = s_angleZ[i] = 0.; } - s_dX[0] = s_dX[1] = 1.*GeoModelKernelUnits::cm; s_dY[0]= s_dY[1] = 31.6*GeoModelKernelUnits::cm; s_dZ[0] = s_dZ[1] = 50.*GeoModelKernelUnits::cm; - s_shiftX[0] = -26.*GeoModelKernelUnits::cm; s_shiftX[1] = -s_shiftX[0]; - s_shiftY[0] = s_shiftY[1] = 85.1*GeoModelKernelUnits::cm; s_shiftZ[0] = s_shiftZ[1] = -3.*GeoModelKernelUnits::cm; - s_angleX[0] = s_angleX[1] = 4.668*GeoModelKernelUnits::deg; s_angleZ[0] = s_angleZ[1] = 0.*GeoModelKernelUnits::deg; - s_angleY[0] = -30.*GeoModelKernelUnits::deg; s_angleY[1] = -s_angleY[0]; - s_dX[2] = 98.1*GeoModelKernelUnits::cm; s_dY[2] = 98.2*GeoModelKernelUnits::cm; s_dZ[2] = 30.6*GeoModelKernelUnits::cm; - s_shiftX[2] = 0.*GeoModelKernelUnits::cm; s_shiftY[2] = 89.7*GeoModelKernelUnits::cm; s_shiftZ[2] = -42.*GeoModelKernelUnits::cm; - s_angleX[2] = 94.668*GeoModelKernelUnits::deg; s_angleY[2] = 0.; s_angleZ[2] = 90.*GeoModelKernelUnits::degree; + s_dX[0] = s_dX[1] = 1.*Gaudi::Units::cm; s_dY[0]= s_dY[1] = 31.6*Gaudi::Units::cm; s_dZ[0] = s_dZ[1] = 50.*Gaudi::Units::cm; + s_shiftX[0] = -26.*Gaudi::Units::cm; s_shiftX[1] = -s_shiftX[0]; + s_shiftY[0] = s_shiftY[1] = 85.1*Gaudi::Units::cm; s_shiftZ[0] = s_shiftZ[1] = -3.*Gaudi::Units::cm; + s_angleX[0] = s_angleX[1] = 4.668*Gaudi::Units::deg; s_angleZ[0] = s_angleZ[1] = 0.*Gaudi::Units::deg; + s_angleY[0] = -30.*Gaudi::Units::deg; s_angleY[1] = -s_angleY[0]; + s_dX[2] = 98.1*Gaudi::Units::cm; s_dY[2] = 98.2*Gaudi::Units::cm; s_dZ[2] = 30.6*Gaudi::Units::cm; + s_shiftX[2] = 0.*Gaudi::Units::cm; s_shiftY[2] = 89.7*Gaudi::Units::cm; s_shiftZ[2] = -42.*Gaudi::Units::cm; + s_angleX[2] = 94.668*Gaudi::Units::deg; s_angleY[2] = 0.; s_angleZ[2] = 90.*Gaudi::Units::degree; - s_dX[3] = 1.*GeoModelKernelUnits::cm; s_dY[3] = 43.*GeoModelKernelUnits::cm; s_dZ[3] = 40.*GeoModelKernelUnits::cm; + s_dX[3] = 1.*Gaudi::Units::cm; s_dY[3] = 43.*Gaudi::Units::cm; s_dZ[3] = 40.*Gaudi::Units::cm; s_dX[4] = s_dX[3]; s_dY[4] = s_dY[3]; s_dZ[4] = s_dZ[3]; - s_shiftX[3] = -58.5*GeoModelKernelUnits::cm; s_shiftY[3] = 12.2*GeoModelKernelUnits::cm; s_shiftZ[3] = 5.*GeoModelKernelUnits::cm; + s_shiftX[3] = -58.5*Gaudi::Units::cm; s_shiftY[3] = 12.2*Gaudi::Units::cm; s_shiftZ[3] = 5.*Gaudi::Units::cm; s_shiftX[4] = -s_shiftX[3]; s_shiftY[4] = s_shiftY[3]; s_shiftZ[4] = s_shiftZ[3]; - s_angleX[3] = s_angleX[4] = 4.668*GeoModelKernelUnits::deg; s_angleY[3] = -45.*GeoModelKernelUnits::deg; + s_angleX[3] = s_angleX[4] = 4.668*Gaudi::Units::deg; s_angleY[3] = -45.*Gaudi::Units::deg; s_angleY[4] = -s_angleY[3]; - s_angleZ[3] = 0.*GeoModelKernelUnits::deg; + s_angleZ[3] = 0.*Gaudi::Units::deg; s_angleZ[4] = -s_angleZ[3]; - s_dX[5] = 130.*GeoModelKernelUnits::cm; s_dY[5] = 131.*GeoModelKernelUnits::cm; s_dZ[5] = 43.*GeoModelKernelUnits::cm; - s_shiftX[5] = 0.*GeoModelKernelUnits::cm; s_shiftY[5] = 18.1*GeoModelKernelUnits::cm; s_shiftZ[5] = -62.*GeoModelKernelUnits::cm; - s_angleX[5] = 94.668*GeoModelKernelUnits::deg; s_angleY[5] = 0.*GeoModelKernelUnits::deg; - s_angleZ[5] = 90.*GeoModelKernelUnits::deg; + s_dX[5] = 130.*Gaudi::Units::cm; s_dY[5] = 131.*Gaudi::Units::cm; s_dZ[5] = 43.*Gaudi::Units::cm; + s_shiftX[5] = 0.*Gaudi::Units::cm; s_shiftY[5] = 18.1*Gaudi::Units::cm; s_shiftZ[5] = -62.*Gaudi::Units::cm; + s_angleX[5] = 94.668*Gaudi::Units::deg; s_angleY[5] = 0.*Gaudi::Units::deg; + s_angleZ[5] = 90.*Gaudi::Units::deg; - s_dX[6] = s_dX[7] = 1.*GeoModelKernelUnits::cm; s_dY[6] = s_dY[7] = 27.*GeoModelKernelUnits::cm; s_dZ[6] = s_dZ[7] = 40.*GeoModelKernelUnits::cm; - s_shiftX[6] = -58.*GeoModelKernelUnits::cm; s_shiftY[6] = s_shiftY[7] = -57.85*GeoModelKernelUnits::cm; s_shiftZ[6] = s_shiftZ[7] = -1.*GeoModelKernelUnits::cm; + s_dX[6] = s_dX[7] = 1.*Gaudi::Units::cm; s_dY[6] = s_dY[7] = 27.*Gaudi::Units::cm; s_dZ[6] = s_dZ[7] = 40.*Gaudi::Units::cm; + s_shiftX[6] = -58.*Gaudi::Units::cm; s_shiftY[6] = s_shiftY[7] = -57.85*Gaudi::Units::cm; s_shiftZ[6] = s_shiftZ[7] = -1.*Gaudi::Units::cm; s_shiftX[7] = - s_shiftX[6]; - s_angleX[6] = s_angleX[7] = 4.668*GeoModelKernelUnits::deg; s_angleY[6] = -45.*GeoModelKernelUnits::deg; s_angleZ[6] = s_angleZ[7] = 0.*GeoModelKernelUnits::deg; + s_angleX[6] = s_angleX[7] = 4.668*Gaudi::Units::deg; s_angleY[6] = -45.*Gaudi::Units::deg; s_angleZ[6] = s_angleZ[7] = 0.*Gaudi::Units::deg; s_angleY[7] = -s_angleY[6]; - s_dX[8] = 130.*GeoModelKernelUnits::cm; s_dY[8] = 131.*GeoModelKernelUnits::cm; s_dZ[8] = 27.*GeoModelKernelUnits::cm; - s_shiftX[8] = 0.*GeoModelKernelUnits::cm; s_shiftY[8] = -51.9*GeoModelKernelUnits::cm; s_shiftZ[8] = -67.*GeoModelKernelUnits::cm; - s_angleX[8] = 94.668*GeoModelKernelUnits::degree; s_angleY[8] = 0.*GeoModelKernelUnits::degree; s_angleZ[8] = 90.*GeoModelKernelUnits::degree; - s_dX[9] = 1.*GeoModelKernelUnits::cm; s_dY[9] = 82.*GeoModelKernelUnits::cm; s_dZ[9] = 44.5*GeoModelKernelUnits::cm; - s_shiftX[9] = 0.*GeoModelKernelUnits::cm; s_shiftY[9] = -89.0*GeoModelKernelUnits::cm; s_shiftZ[9] = 32.5*GeoModelKernelUnits::cm; - s_angleX[9] = 4.668*GeoModelKernelUnits::degree; s_angleY[9] = 0.*GeoModelKernelUnits::degree; s_angleZ[9] = 90.*GeoModelKernelUnits::degree; + s_dX[8] = 130.*Gaudi::Units::cm; s_dY[8] = 131.*Gaudi::Units::cm; s_dZ[8] = 27.*Gaudi::Units::cm; + s_shiftX[8] = 0.*Gaudi::Units::cm; s_shiftY[8] = -51.9*Gaudi::Units::cm; s_shiftZ[8] = -67.*Gaudi::Units::cm; + s_angleX[8] = 94.668*Gaudi::Units::degree; s_angleY[8] = 0.*Gaudi::Units::degree; s_angleZ[8] = 90.*Gaudi::Units::degree; + s_dX[9] = 1.*Gaudi::Units::cm; s_dY[9] = 82.*Gaudi::Units::cm; s_dZ[9] = 44.5*Gaudi::Units::cm; + s_shiftX[9] = 0.*Gaudi::Units::cm; s_shiftY[9] = -89.0*Gaudi::Units::cm; s_shiftZ[9] = 32.5*Gaudi::Units::cm; + s_angleX[9] = 4.668*Gaudi::Units::degree; s_angleY[9] = 0.*Gaudi::Units::degree; s_angleZ[9] = 90.*Gaudi::Units::degree; - s_dX[10] = s_dX[11] = 1.*GeoModelKernelUnits::cm; s_dY[10] = s_dY[11] = 41.5*GeoModelKernelUnits::cm; s_dZ[10] = s_dZ[11] = 20.3*GeoModelKernelUnits::cm; - s_shiftX[10] = -15.4*GeoModelKernelUnits::cm; s_shiftY[10] = s_shiftY[11] = 14.50*GeoModelKernelUnits::cm; s_shiftZ[10] = s_shiftZ[11] = -39.*GeoModelKernelUnits::cm; + s_dX[10] = s_dX[11] = 1.*Gaudi::Units::cm; s_dY[10] = s_dY[11] = 41.5*Gaudi::Units::cm; s_dZ[10] = s_dZ[11] = 20.3*Gaudi::Units::cm; + s_shiftX[10] = -15.4*Gaudi::Units::cm; s_shiftY[10] = s_shiftY[11] = 14.50*Gaudi::Units::cm; s_shiftZ[10] = s_shiftZ[11] = -39.*Gaudi::Units::cm; s_shiftX[11] = - s_shiftX[10]; - s_angleX[10] = s_angleX[11] = 4.668*GeoModelKernelUnits::degree; s_angleY[10] = -45.*GeoModelKernelUnits::degree; s_angleZ[10] = 0.*GeoModelKernelUnits::degree; + s_angleX[10] = s_angleX[11] = 4.668*Gaudi::Units::degree; s_angleY[10] = -45.*Gaudi::Units::degree; s_angleZ[10] = 0.*Gaudi::Units::degree; s_angleY[11] = -s_angleY[10]; s_angleZ[11] = -s_angleZ[10]; - s_dX[12] = s_dX[13] = 1.*GeoModelKernelUnits::cm; s_dY[12] = s_dY[13] = 27.*GeoModelKernelUnits::cm; s_dZ[12] = s_dZ[13] = 20.3*GeoModelKernelUnits::cm; - s_shiftX[12] = -15.4*GeoModelKernelUnits::cm; s_shiftY[12] = s_shiftY[13] = -54.4*GeoModelKernelUnits::cm; s_shiftZ[12] = s_shiftZ[13] = -43.8*GeoModelKernelUnits::cm; + s_dX[12] = s_dX[13] = 1.*Gaudi::Units::cm; s_dY[12] = s_dY[13] = 27.*Gaudi::Units::cm; s_dZ[12] = s_dZ[13] = 20.3*Gaudi::Units::cm; + s_shiftX[12] = -15.4*Gaudi::Units::cm; s_shiftY[12] = s_shiftY[13] = -54.4*Gaudi::Units::cm; s_shiftZ[12] = s_shiftZ[13] = -43.8*Gaudi::Units::cm; s_shiftX[13] = -s_shiftX[12]; - s_angleX[12] = s_angleX[13] = 4.668*GeoModelKernelUnits::degree; s_angleY[12] = -45.*GeoModelKernelUnits::degree; s_angleZ[12] = 0.*GeoModelKernelUnits::degree; + s_angleX[12] = s_angleX[13] = 4.668*Gaudi::Units::degree; s_angleY[12] = -45.*Gaudi::Units::degree; s_angleZ[12] = 0.*Gaudi::Units::degree; s_angleY[13] = -s_angleY[12]; s_angleZ[13] = -s_angleZ[12]; - s_dX[14] = s_dX[15] = 1.*GeoModelKernelUnits::cm; s_dY[14] = s_dY[15] = 12.*GeoModelKernelUnits::cm; s_dZ[14] = s_dZ[15] = 25.3*GeoModelKernelUnits::cm; - s_shiftX[14] = -19.5*GeoModelKernelUnits::cm; s_shiftY[14] = s_shiftY[15] = -93.5*GeoModelKernelUnits::cm; s_shiftZ[14] = s_shiftZ[15] = -46.5*GeoModelKernelUnits::cm; + s_dX[14] = s_dX[15] = 1.*Gaudi::Units::cm; s_dY[14] = s_dY[15] = 12.*Gaudi::Units::cm; s_dZ[14] = s_dZ[15] = 25.3*Gaudi::Units::cm; + s_shiftX[14] = -19.5*Gaudi::Units::cm; s_shiftY[14] = s_shiftY[15] = -93.5*Gaudi::Units::cm; s_shiftZ[14] = s_shiftZ[15] = -46.5*Gaudi::Units::cm; s_shiftX[15] = -s_shiftX[14]; - s_angleX[14] = s_angleX[15] = 4.668*GeoModelKernelUnits::degree; s_angleY[14] = -45.*GeoModelKernelUnits::degree; s_angleZ[14] = s_angleZ[15] = 0.*GeoModelKernelUnits::degree; + s_angleX[14] = s_angleX[15] = 4.668*Gaudi::Units::degree; s_angleY[14] = -45.*Gaudi::Units::degree; s_angleZ[14] = s_angleZ[15] = 0.*Gaudi::Units::degree; s_angleY[15] = -s_angleY[14]; - s_dX[16] = 59.5*GeoModelKernelUnits::cm; s_dY[16] = 60.0*GeoModelKernelUnits::cm; s_dZ[16] = 12.0*GeoModelKernelUnits::cm; - s_shiftX[16] = 0.*GeoModelKernelUnits::cm; s_shiftY[16] = -91.5*GeoModelKernelUnits::cm; s_shiftZ[16] = -73.5*GeoModelKernelUnits::cm; - s_angleX[16] = 94.668*GeoModelKernelUnits::degree; s_angleY[16] = 0.*GeoModelKernelUnits::degree; s_angleZ[16] = 90.*GeoModelKernelUnits::degree; - s_dX[17] = 0.3*GeoModelKernelUnits::cm; s_dY[17] = 35.*GeoModelKernelUnits::cm; s_dZ[17] = 25.*GeoModelKernelUnits::cm; - s_shiftX[17] = 0.*GeoModelKernelUnits::cm; s_shiftY[17] = -107.0*GeoModelKernelUnits::cm; s_shiftZ[17] = -40.*GeoModelKernelUnits::cm; - s_angleX[17] = 4.668*GeoModelKernelUnits::degree; s_angleY[17] = 0.*GeoModelKernelUnits::degree; s_angleZ[17] = 90.*GeoModelKernelUnits::degree; + s_dX[16] = 59.5*Gaudi::Units::cm; s_dY[16] = 60.0*Gaudi::Units::cm; s_dZ[16] = 12.0*Gaudi::Units::cm; + s_shiftX[16] = 0.*Gaudi::Units::cm; s_shiftY[16] = -91.5*Gaudi::Units::cm; s_shiftZ[16] = -73.5*Gaudi::Units::cm; + s_angleX[16] = 94.668*Gaudi::Units::degree; s_angleY[16] = 0.*Gaudi::Units::degree; s_angleZ[16] = 90.*Gaudi::Units::degree; + s_dX[17] = 0.3*Gaudi::Units::cm; s_dY[17] = 35.*Gaudi::Units::cm; s_dZ[17] = 25.*Gaudi::Units::cm; + s_shiftX[17] = 0.*Gaudi::Units::cm; s_shiftY[17] = -107.0*Gaudi::Units::cm; s_shiftZ[17] = -40.*Gaudi::Units::cm; + s_angleX[17] = 4.668*Gaudi::Units::degree; s_angleY[17] = 0.*Gaudi::Units::degree; s_angleZ[17] = 90.*Gaudi::Units::degree; } //StoreGateSvc* detStore; @@ -195,7 +196,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/Gaudi::Units::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -203,7 +204,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() Rohacell->lock(); /* - a = 12.957*GeoModelKernelUnits::g/GeoModelKernelUnits::mole; + a = 12.957*GeoModelKernelUnits::g/Gaudi::Units::mole; density = 0.112*g/cm3; z = 6.18; G4Material* Rohacell = new G4Material(name="Rohacell",z, a, density); @@ -213,35 +214,35 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() if (!Alu) throw std::runtime_error("Error in ModulesConstruction, std::Aluminium is not found."); // DB numbers: - double bryr_y = 200.0*GeoModelKernelUnits::cm; - double bcry_rlar = 125.5*GeoModelKernelUnits::cm; - double bcry_phistart = 0.*GeoModelKernelUnits::degree; - double bcry_phiend = 360.*GeoModelKernelUnits::degree; - //double EMECdzende = 63.2*GeoModelKernelUnits::cm; // Can not get from parameters + double bryr_y = 200.0*Gaudi::Units::cm; + double bcry_rlar = 125.5*Gaudi::Units::cm; + double bcry_phistart = 0.*Gaudi::Units::degree; + double bcry_phiend = 360.*Gaudi::Units::degree; + //double EMECdzende = 63.2*Gaudi::Units::cm; // Can not get from parameters //double Zall = 62.6*cm; // Excluder dimension - double bepo_tx = 180.0*GeoModelKernelUnits::degree; - double bepo_tz = 90.0*GeoModelKernelUnits::degree; - double bepo_tz_e = ( M_PI / 4 )*GeoModelKernelUnits::rad; - double bepo_ty = 90.0*GeoModelKernelUnits::degree; - double bepo_Beta = 4.668*GeoModelKernelUnits::degree; - double bepo_z_e = -42.86*GeoModelKernelUnits::cm; // 43 GeoModelKernelUnits::cm * cos(4.668) - double bepo_emec_shift = 2.5*GeoModelKernelUnits::cm; - double bepo_excluder_shift = 34.4*GeoModelKernelUnits::cm; - //double bepo_hec_shift = 63.6*GeoModelKernelUnits::cm; // relative position of HEC versus EMEC + double bepo_tx = 180.0*Gaudi::Units::degree; + double bepo_tz = 90.0*Gaudi::Units::degree; + double bepo_tz_e = ( M_PI / 4 )*Gaudi::Units::rad; + double bepo_ty = 90.0*Gaudi::Units::degree; + double bepo_Beta = 4.668*Gaudi::Units::degree; + double bepo_z_e = -42.86*Gaudi::Units::cm; // 43 Gaudi::Units::cm * cos(4.668) + double bepo_emec_shift = 2.5*Gaudi::Units::cm; + double bepo_excluder_shift = 34.4*Gaudi::Units::cm; + //double bepo_hec_shift = 63.6*Gaudi::Units::cm; // relative position of HEC versus EMEC //double bepo_y_a = bcry_rlar-bepo_emec_shift-bepo_hec_shift; double bepo_y_ex = bcry_rlar-bepo_excluder_shift; - double bepo_y_hecshift = 6.*GeoModelKernelUnits::mm; - double bepo_y_emecshift = 11.*GeoModelKernelUnits::mm; - double bepo_x = -2.75*GeoModelKernelUnits::mm; - double bepo_x_e = -17.*GeoModelKernelUnits::mm; -// double bepo_x = 13.25*GeoModelKernelUnits::mm; -// double bepo_x_e = -3.*GeoModelKernelUnits::mm; -// double bepo_x = 17.25*GeoModelKernelUnits::mm; -// double bepo_x_e = -3.*GeoModelKernelUnits::mm; - //double bepo_z = -48.24*GeoModelKernelUnits::cm; // 48.4 GeoModelKernelUnits::cm * cos(4.668) + double bepo_y_hecshift = 6.*Gaudi::Units::mm; + double bepo_y_emecshift = 11.*Gaudi::Units::mm; + double bepo_x = -2.75*Gaudi::Units::mm; + double bepo_x_e = -17.*Gaudi::Units::mm; +// double bepo_x = 13.25*Gaudi::Units::mm; +// double bepo_x_e = -3.*Gaudi::Units::mm; +// double bepo_x = 17.25*Gaudi::Units::mm; +// double bepo_x_e = -3.*Gaudi::Units::mm; + //double bepo_z = -48.24*Gaudi::Units::cm; // 48.4 Gaudi::Units::cm * cos(4.668) double bepo_y_e = bcry_rlar-bepo_emec_shift; - double bepo_pz = 45.0*GeoModelKernelUnits::degree; + double bepo_pz = 45.0*Gaudi::Units::degree; std::string baseName = "LArGeoTB::LeakageDet::"; @@ -249,9 +250,9 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() if(m_Options && m_Options->isRun1()) { ylen = bryr_y; } else { - ylen = bryr_y - 200.*GeoModelKernelUnits::mm; + ylen = bryr_y - 200.*Gaudi::Units::mm; } - GeoTubs *shapeMother = new GeoTubs( 0.0*GeoModelKernelUnits::cm, bcry_rlar, ylen, bcry_phistart,bcry_phiend); + GeoTubs *shapeMother = new GeoTubs( 0.0*Gaudi::Units::cm, bcry_rlar, ylen, bcry_phistart,bcry_phiend); GeoLogVol *logMother = new GeoLogVol(baseName + "LAr", shapeMother, LAr); m_ModulesPhys = new GeoFullPhysVol(logMother); @@ -294,7 +295,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(excluderEnvelope != 0)*/{ GeoTrf::Transform3D rot2 = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateX3D(bepo_ty) * GeoTrf::RotateZ3D(bepo_tz); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex,bepo_z_e+42.*GeoModelKernelUnits::mm) * rot2)); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex,bepo_z_e+42.*Gaudi::Units::mm) * rot2)); m_ModulesPhys->add(excluderEnvelope); } } @@ -310,8 +311,8 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() if(fcexcluderEnvelope != 0){ GeoTrf::Transform3D rot2 = GeoTrf::RotateX3D(0.8*bepo_Beta) * GeoTrf::RotateX3D(-bepo_ty) * GeoTrf::RotateZ3D(bepo_tx); m_ModulesPhys->add(new GeoSerialIdentifier(0)); -// m_ModulesPhys->add(new GeoTransform(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,bepo_y_ex-138.*GeoModelKernelUnits::mm,-477.3*GeoModelKernelUnits::mm)))); - m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex-146.*GeoModelKernelUnits::mm,-412.0*GeoModelKernelUnits::mm) * rot2)); +// m_ModulesPhys->add(new GeoTransform(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,bepo_y_ex-138.*Gaudi::Units::mm,-477.3*Gaudi::Units::mm)))); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex-146.*Gaudi::Units::mm,-412.0*Gaudi::Units::mm) * rot2)); m_ModulesPhys->add(fcexcluderEnvelope); } } @@ -324,14 +325,14 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(frontexcluder != 0)*/{ GeoVFullPhysVol* frontexcluderEnvelope = frontexcluder.GetEnvelope(); if(frontexcluderEnvelope != 0){ - GeoTrf::RotateZ3D rot2((90.)*GeoModelKernelUnits::degree); + GeoTrf::RotateZ3D rot2((90.)*Gaudi::Units::degree); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,20.*GeoModelKernelUnits::mm) * rot2)); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,20.*Gaudi::Units::mm) * rot2)); m_ModulesPhys->add(frontexcluderEnvelope); /* G4VPhysicalVolume* frontexcluderPhysical = -// new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,220.*GeoModelKernelUnits::mm)), // Translation - new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,20.*GeoModelKernelUnits::mm)), // Translation +// new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,220.*Gaudi::Units::mm)), // Translation + new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,20.*Gaudi::Units::mm)), // Translation frontexcluderEnvelope, // Logical volume frontexcluderEnvelope->GetName(), // Name logMother, // Mother volume @@ -349,13 +350,13 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(backexcluder != 0)*/{ GeoVFullPhysVol* backexcluderEnvelope = backexcluder.GetEnvelope(); if(backexcluderEnvelope != 0){ - GeoTrf::RotateZ3D rot2((-90.-29.)*GeoModelKernelUnits::degree); + GeoTrf::RotateZ3D rot2((-90.-29.)*Gaudi::Units::degree); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,0.*GeoModelKernelUnits::mm) * rot2)); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,0.*Gaudi::Units::mm) * rot2)); m_ModulesPhys->add(backexcluderEnvelope); /* G4VPhysicalVolume* backexcluderPhysical = - new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,0.*GeoModelKernelUnits::mm)), // Translation + new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,0.*Gaudi::Units::mm)), // Translation backexcluderEnvelope, // Logical volume backexcluderEnvelope->GetName(), // Name logMother, // Mother volume @@ -373,27 +374,27 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // Transformation for assembly - should be putted to each piece now. GeoTrf::Transform3D rota = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateX3D(bepo_ty) * GeoTrf::RotateZ3D(-bepo_pz); - GeoTrf::Transform3D trans = GeoTrf::Translation3D(0.,bepo_y_e,bepo_z_e+65.*GeoModelKernelUnits::mm) * rota; + GeoTrf::Transform3D trans = GeoTrf::Translation3D(0.,bepo_y_e,bepo_z_e+65.*Gaudi::Units::mm) * rota; //positions emec // Z-positions DB values !!!! - double HECzStart = 427.7*GeoModelKernelUnits::cm; - double EMECzStart = 364.1*GeoModelKernelUnits::cm; - double FCALzStart = 466.85*GeoModelKernelUnits::cm; - double FCALzEnd = 588.28*GeoModelKernelUnits::cm; + double HECzStart = 427.7*Gaudi::Units::cm; + double EMECzStart = 364.1*Gaudi::Units::cm; + double FCALzStart = 466.85*Gaudi::Units::cm; + double FCALzEnd = 588.28*Gaudi::Units::cm; if((!m_Options) || m_Options->isEmec()){ GeoTrf::RotateZ3D MrotEmec(bepo_tz_e); // original value: -// GeoTrf::Vector3D pos3Emec( 0*GeoModelKernelUnits::mm, 9.0*GeoModelKernelUnits::mm , 55.9*GeoModelKernelUnits::mm); -// GeoTrf::Vector3D pos3Emec( 3.636*GeoModelKernelUnits::mm, 9.0*GeoModelKernelUnits::mm , 55.9*GeoModelKernelUnits::mm); -// GeoTrf::Vector3D pos3Emec( bepo_x_e, 9.*GeoModelKernelUnits::mm , 61.*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D pos3Emec( 0*Gaudi::Units::mm, 9.0*Gaudi::Units::mm , 55.9*Gaudi::Units::mm); +// GeoTrf::Vector3D pos3Emec( 3.636*Gaudi::Units::mm, 9.0*Gaudi::Units::mm , 55.9*Gaudi::Units::mm); +// GeoTrf::Vector3D pos3Emec( bepo_x_e, 9.*Gaudi::Units::mm , 61.*Gaudi::Units::mm); GeoTrf::Translation3D pos3Emec((bepo_x_e - bepo_y_emecshift )/2./sin(bepo_tz_e) , (bepo_x_e + bepo_y_emecshift )/2./sin(bepo_tz_e) - , 61.*GeoModelKernelUnits::mm); -// GeoTrf::Vector3D pos3Emec( 0.*GeoModelKernelUnits::mm, bepo_x_e, 61.*GeoModelKernelUnits::mm); + , 61.*Gaudi::Units::mm); +// GeoTrf::Vector3D pos3Emec( 0.*Gaudi::Units::mm, bepo_x_e, 61.*Gaudi::Units::mm); // std::cout<<"ModulesConstructionH62004 calling EMECModuleConstruction....."<<std::endl; //use this line for physical construction of the EMEC inner wheel only: @@ -421,12 +422,12 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // rot.rotateX(bepo_Beta); // GeoTrf::Transform3D hpos = GeoTrf::Transform3D(rot,GeoTrf::Vector3D(bepo_x,bepo_y_a,bepo_z)); -// GeoTrf::Vector3D hecshift(0.,6.*GeoModelKernelUnits::mm,HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(0.,6.*Gaudi::Units::mm,HECzStart-EMECzStart); // GeoTrf::Vector3D hecshift((bepo_x - bepo_y_hecshift)/2./sin(bepo_tz_e), (bepo_x + bepo_y_hecshift)/2./sin(bepo_tz_e), HECzStart-EMECzStart); -// GeoTrf::Vector3D hecshift(-21.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); -// GeoTrf::Vector3D hecshift(-5.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); -// GeoTrf::Vector3D hecshift(0.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); -// GeoModelKernelUnits::HepRotation norot; +// GeoTrf::Vector3D hecshift(-21.*Gaudi::Units::mm, bepo_x, HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(-5.*Gaudi::Units::mm, bepo_x, HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(0.*Gaudi::Units::mm, bepo_x, HECzStart-EMECzStart); +// Gaudi::Units::HepRotation norot; m_ModulesPhys->add(new GeoTransform(trans)); m_ModulesPhys->add( new GeoTransform(GeoTrf::Translate3D((bepo_x - bepo_y_hecshift)/2./sin(bepo_tz_e) , (bepo_x + bepo_y_hecshift)/2./sin(bepo_tz_e) @@ -444,15 +445,15 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() fcal.setFCALVisLimit(m_fcalVisLimit); GeoVPhysVol* fcalEnvelope = fcal.GetEnvelope(); if(fcalEnvelope != 0){ -// GeoModelKernelUnits::HepRotation rotFCal; - // rotFCal.rotateY(0.*GeoModelKernelUnits::deg); +// Gaudi::Units::HepRotation rotFCal; + // rotFCal.rotateY(0.*Gaudi::Units::deg); // rotFCal.rotateZ(-bepo_pz); // rotFCal.rotateX(bepo_ty); // rotFCal.rotateX(bepo_Beta); -// GeoTrf::Vector3D fcalshift(0.,-7.*GeoModelKernelUnits::mm,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.); +// GeoTrf::Vector3D fcalshift(0.,-7.*Gaudi::Units::mm,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.); m_ModulesPhys->add(new GeoTransform(trans)); - m_ModulesPhys->add( new GeoTransform(GeoTrf::Translate3D(9.*GeoModelKernelUnits::mm - ,0.*GeoModelKernelUnits::mm + m_ModulesPhys->add( new GeoTransform(GeoTrf::Translate3D(9.*Gaudi::Units::mm + ,0.*Gaudi::Units::mm ,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.)) ); m_ModulesPhys->add(fcalEnvelope); } @@ -463,48 +464,48 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // Position a cold nose // - double box_x = (650./2.)*GeoModelKernelUnits::mm; - double box_y = (356./2.)*GeoModelKernelUnits::mm; - double box_z = (50.8/2.)*GeoModelKernelUnits::mm; - double btot = 494.*GeoModelKernelUnits::mm; - double tub_r = 452.*GeoModelKernelUnits::mm; - double tub1_dr = 8.*GeoModelKernelUnits::mm; - double tub1_z = (1320./2.)*GeoModelKernelUnits::mm; - double cyl_dr = 10.*GeoModelKernelUnits::mm; - double cyl_r1 = 262.*GeoModelKernelUnits::mm; - double cyl_r2 = 336.5*GeoModelKernelUnits::mm; - double cyl_z = (912./2.)*GeoModelKernelUnits::mm; - double cyl_shift = (10. + 25.)*GeoModelKernelUnits::mm; -// double NoseZshift = -360.*GeoModelKernelUnits::mm; - double NoseZshift = -63.1*GeoModelKernelUnits::mm; -// double NoseYshift = 94.4*GeoModelKernelUnits::mm; -// double NoseYshift = 96.4*GeoModelKernelUnits::mm; - double NoseYshift = 98.4*GeoModelKernelUnits::mm; -// double NoseXshift = -195.*GeoModelKernelUnits::mm; - double NoseXshift = -94.4*GeoModelKernelUnits::mm; + double box_x = (650./2.)*Gaudi::Units::mm; + double box_y = (356./2.)*Gaudi::Units::mm; + double box_z = (50.8/2.)*Gaudi::Units::mm; + double btot = 494.*Gaudi::Units::mm; + double tub_r = 452.*Gaudi::Units::mm; + double tub1_dr = 8.*Gaudi::Units::mm; + double tub1_z = (1320./2.)*Gaudi::Units::mm; + double cyl_dr = 10.*Gaudi::Units::mm; + double cyl_r1 = 262.*Gaudi::Units::mm; + double cyl_r2 = 336.5*Gaudi::Units::mm; + double cyl_z = (912./2.)*Gaudi::Units::mm; + double cyl_shift = (10. + 25.)*Gaudi::Units::mm; +// double NoseZshift = -360.*Gaudi::Units::mm; + double NoseZshift = -63.1*Gaudi::Units::mm; +// double NoseYshift = 94.4*Gaudi::Units::mm; +// double NoseYshift = 96.4*Gaudi::Units::mm; + double NoseYshift = 98.4*Gaudi::Units::mm; +// double NoseXshift = -195.*Gaudi::Units::mm; + double NoseXshift = -94.4*Gaudi::Units::mm; GeoBox* Box1 = new GeoBox(box_x, box_y, box_z); double alpha = acos(box_x/tub_r); double ax = M_PI - 2*alpha; GeoTubs* Tub= new GeoTubs(0., tub_r, box_z, alpha, ax); -// tRot.rotateX(90*GeoModelKernelUnits::degree); +// tRot.rotateX(90*Gaudi::Units::degree); GeoTrf::Translate3D TubTrans(0.,btot-box_y-tub_r,0.); const GeoShapeUnion &uSolid = (*Box1).add((*Tub)<<TubTrans); GeoTubs* Tub1 = new GeoTubs(tub_r, tub_r+tub1_dr, tub1_z, alpha, ax); // GeoTrf::Vector3D TubShift2(0.,btot-box_y-tub_r,-tub1_z+box_z); // GeoTrf::Vector3D TubShift2(0.,0.,0.); -// tRot.rotateX(90*GeoModelKernelUnits::degree); - GeoTrf::Translate3D UnTrans(0.,-135.5*GeoModelKernelUnits::mm,-tub1_z+box_z); +// tRot.rotateX(90*Gaudi::Units::degree); + GeoTrf::Translate3D UnTrans(0.,-135.5*Gaudi::Units::mm,-tub1_z+box_z); const GeoShapeUnion &uSolid2 = uSolid.add((*Tub1)<<UnTrans); GeoCons* Cone = new GeoCons(cyl_r2, cyl_r1, cyl_r2+cyl_dr, cyl_r1+cyl_dr, cyl_z, M_PI/4.,M_PI/2.); -// GeoTrf::Vector3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-3.*GeoModelKernelUnits::mm); - GeoTrf::Translation3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-5.*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-3.*Gaudi::Units::mm); + GeoTrf::Translation3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-5.*Gaudi::Units::mm); // GeoTrf::Vector3D CylShift(0.,0.,cyl_z+box_z); - GeoTrf::RotateX3D tRot(1.*GeoModelKernelUnits::degree); -// tRot.rotateZ(-90*GeoModelKernelUnits::degree); + GeoTrf::RotateX3D tRot(1.*Gaudi::Units::degree); +// tRot.rotateZ(-90*Gaudi::Units::degree); GeoTrf::Transform3D CylTrans = CylShift * tRot; const GeoShapeUnion &uSolid3 = uSolid2.add((*Cone)<<CylTrans); @@ -529,7 +530,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // Do an imprint of assembly: /* - GeoModelKernelUnits::HepRotation rota; + Gaudi::Units::HepRotation rota; rota.rotateZ(-bepo_pz); rota.rotateX(bepo_ty); rota.rotateX(bepo_Beta); @@ -647,14 +648,14 @@ LArGeo::ModulesConstructionH62004::construct(const StoredMaterialManager* materi //------------------ now construct shape and logical volume --------------- GeoLogVol *volume_log; if(myID == 6 || myID == 9 || myID == 17) { - GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-43.*GeoModelKernelUnits::degree,86.*GeoModelKernelUnits::degree); + GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-43.*Gaudi::Units::degree,86.*Gaudi::Units::degree); volume_log = new GeoLogVol(name,tub,Vacuum); } else if(myID == 3) { - GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-32.*GeoModelKernelUnits::degree,64.*GeoModelKernelUnits::degree); + GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-32.*Gaudi::Units::degree,64.*Gaudi::Units::degree); volume_log = new GeoLogVol(name,tub,Vacuum); #if 0 // impossible case... } else if(myID == 19) { - GeoTrd *trd = new GeoTrd(s_dX[myID-1]-16.*GeoModelKernelUnits::cm,s_dX[myID-1],s_dY[myID-1],s_dY[myID-1],s_dZ[myID-1]); + GeoTrd *trd = new GeoTrd(s_dX[myID-1]-16.*Gaudi::Units::cm,s_dX[myID-1],s_dY[myID-1],s_dY[myID-1],s_dZ[myID-1]); volume_log = new GeoLogVol(name,trd,Vacuum); #endif } else { diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx index 814b178f239e..cb5d2f9a3d24 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx @@ -25,7 +25,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -41,6 +40,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -122,25 +122,25 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // // Define dimension of Movable part & position of Front part // - double bttb_x = 15.0*GeoModelKernelUnits::cm; - double bttb_y = 15.0*GeoModelKernelUnits::cm; - double bttb_z = 120.0*GeoModelKernelUnits::cm; - //double bttb_pos = 833.5*GeoModelKernelUnits::cm; + double bttb_x = 15.0*Gaudi::Units::cm; + double bttb_y = 15.0*Gaudi::Units::cm; + double bttb_z = 120.0*Gaudi::Units::cm; + //double bttb_pos = 833.5*Gaudi::Units::cm; // // Define S scintilator dimension and positions // - double btas_x = 7.5*GeoModelKernelUnits::cm; - double btas_y = 7.5*GeoModelKernelUnits::cm; - double btas_z = 1.0*GeoModelKernelUnits::cm; - double bb2_x = 3.0*GeoModelKernelUnits::cm; - double btas_pos[3] = {100.*GeoModelKernelUnits::cm, 219.5*GeoModelKernelUnits::cm, 232.0*GeoModelKernelUnits::cm}; - double bh_x = 30.0*GeoModelKernelUnits::cm; - double bh_d = 6.0*GeoModelKernelUnits::cm; - double bh_shift = 12.0*GeoModelKernelUnits::cm; - double bb_shift = 2.5*GeoModelKernelUnits::cm; - - double mwpc_pos[4] = {44.5*GeoModelKernelUnits::cm, 12.5*GeoModelKernelUnits::cm, 87.0*GeoModelKernelUnits::cm, 185.3*GeoModelKernelUnits::cm}; - double bpc_pos[2] = {140.5*GeoModelKernelUnits::cm, 130.5*GeoModelKernelUnits::cm}; + double btas_x = 7.5*Gaudi::Units::cm; + double btas_y = 7.5*Gaudi::Units::cm; + double btas_z = 1.0*Gaudi::Units::cm; + double bb2_x = 3.0*Gaudi::Units::cm; + double btas_pos[3] = {100.*Gaudi::Units::cm, 219.5*Gaudi::Units::cm, 232.0*Gaudi::Units::cm}; + double bh_x = 30.0*Gaudi::Units::cm; + double bh_d = 6.0*Gaudi::Units::cm; + double bh_shift = 12.0*Gaudi::Units::cm; + double bb_shift = 2.5*Gaudi::Units::cm; + + double mwpc_pos[4] = {44.5*Gaudi::Units::cm, 12.5*Gaudi::Units::cm, 87.0*Gaudi::Units::cm, 185.3*Gaudi::Units::cm}; + double bpc_pos[2] = {140.5*Gaudi::Units::cm, 130.5*Gaudi::Units::cm}; GeoBox* H62004MovableShape = new GeoBox( bttb_x, bttb_y, bttb_z ); const GeoLogVol* H62004FrontBeamLogical = new GeoLogVol( H62004MovableName, H62004MovableShape, Air ); @@ -152,8 +152,8 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm - // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm + // B1 : 30 x 30 x 10 Gaudi::Units::mm + // W1,2 : 150 x 150 x 10 Gaudi::Units::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 @@ -162,7 +162,7 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // Create scintillator S1(num=4),S2,S3(num= 6,7) - GeoBox* ScintShapeS1 = new GeoBox((btas_x-1.*GeoModelKernelUnits::cm)/2., (btas_y-1.*GeoModelKernelUnits::cm)/2., btas_z/2.); + GeoBox* ScintShapeS1 = new GeoBox((btas_x-1.*Gaudi::Units::cm)/2., (btas_y-1.*Gaudi::Units::cm)/2., btas_z/2.); GeoBox* ScintShapeS23 = new GeoBox(btas_x/2., btas_y/2., btas_z/2.); std::string ScintName = H62004MovableName + "::Scintillator"; GeoLogVol* S1ScintLogical = new GeoLogVol( ScintName, ScintShapeS1, Scint ); @@ -171,11 +171,11 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoPhysVol* S2ScintPhysical = new GeoPhysVol( S23ScintLogical ); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(4) ); - m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, btas_pos[0]-bttb_z ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, btas_pos[0]-bttb_z ) ) ) ; m_H62004MovableTablePhysical->add(S1ScintPhysical); for ( unsigned int i = 1; i <3; ++i ) { m_H62004MovableTablePhysical->add( new GeoIdentifierTag(i+5) ); - m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, btas_pos[i]-bttb_z ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, btas_pos[i]-bttb_z ) ) ) ; m_H62004MovableTablePhysical->add( S2ScintPhysical ); } // Create scintilators H (copy num 5) and B2 (copy num 8) @@ -185,14 +185,14 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoLogVol* logHSc = new GeoLogVol( ScintName, &shapeHSc, Scint); GeoPhysVol* physHSc = new GeoPhysVol(logHSc); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(5) ); - m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (btas_pos[0]-bttb_z) + bh_shift) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (btas_pos[0]-bttb_z) + bh_shift) ) ) ; m_H62004MovableTablePhysical->add(physHSc); - GeoBox* boxB = new GeoBox(bb2_x/2., bb2_x/2., (btas_z+2.5*GeoModelKernelUnits::cm)/2.); + GeoBox* boxB = new GeoBox(bb2_x/2., bb2_x/2., (btas_z+2.5*Gaudi::Units::cm)/2.); GeoLogVol* logBSc = new GeoLogVol( ScintName, boxB, Scint); GeoPhysVol* physBSc = new GeoPhysVol(logBSc); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(8) ); - m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (btas_pos[2]-bttb_z) + bb_shift ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (btas_pos[2]-bttb_z) + bb_shift ) ) ) ; m_H62004MovableTablePhysical->add(physBSc); //----- Done with Scintillators @@ -200,12 +200,12 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() //------ Now create MWPC N2 & N3 & N4 log << MSG::INFO << " Create MWPC's " << endmsg; - MWPCConstruction MWPC(1.*GeoModelKernelUnits::mm); + MWPCConstruction MWPC(1.*Gaudi::Units::mm); GeoVPhysVol* MwpcPhysical = MWPC.GetEnvelope(); for(int i = 1; i < 4; ++i){ m_H62004MovableTablePhysical->add( new GeoIdentifierTag(i+1) ); - m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, mwpc_pos[i]-bttb_z ) ) ); + m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, mwpc_pos[i]-bttb_z ) ) ); m_H62004MovableTablePhysical->add( MwpcPhysical ); } //----- Done with the MWPC @@ -217,7 +217,7 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoVPhysVol* BPCPhysical = BPC.GetEnvelope(); for(int i=1; i<3; ++i) { m_H62004MovableTablePhysical->add( new GeoIdentifierTag(7-i) ); - m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpc_pos[i-1]-bttb_z) ) ); + m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, bpc_pos[i-1]-bttb_z) ) ); m_H62004MovableTablePhysical->add(BPCPhysical); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx index 272988e0d7ae..ed714e4157d0 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx @@ -41,6 +41,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -80,30 +81,30 @@ GeoVFullPhysVol* LArGeo::WarmTCConstructionH62004::GetEnvelope() // SHOULD GO INTO DB !!!! // Muon scintilators are the first one: -double Muon_x = 20.0*GeoModelKernelUnits::cm; -double Muon_y = 120.0*GeoModelKernelUnits::cm; -double Muon_z = 1.0*GeoModelKernelUnits::cm; +double Muon_x = 20.0*Gaudi::Units::cm; +double Muon_y = 120.0*Gaudi::Units::cm; +double Muon_z = 1.0*Gaudi::Units::cm; // The extra space to accumulate muon sci. into mother: -double Muon_dist = 120.0*GeoModelKernelUnits::mm; +double Muon_dist = 120.0*Gaudi::Units::mm; // // WTC dimensions -double WTC_len = 591.5*GeoModelKernelUnits::mm; -double WTC_high = 1250.0*GeoModelKernelUnits::mm; -double WTC_sci_z = 12.7*GeoModelKernelUnits::mm; -double WTC_sci_x = 190.0*GeoModelKernelUnits::mm; -double WTC_sci_y = 1160.0*GeoModelKernelUnits::mm; +double WTC_len = 591.5*Gaudi::Units::mm; +double WTC_high = 1250.0*Gaudi::Units::mm; +double WTC_sci_z = 12.7*Gaudi::Units::mm; +double WTC_sci_x = 190.0*Gaudi::Units::mm; +double WTC_sci_y = 1160.0*Gaudi::Units::mm; // Define dimension WTC mother // double x_m = WTC_high / 2; double y_m = WTC_high / 2; -double z_m = (86.0*GeoModelKernelUnits::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; +double z_m = (86.0*Gaudi::Units::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; // // Define dimension of Fe absorber // double Fe_x = WTC_high / 2; double Fe_y = WTC_high / 2; -double Fe_z = (99.0 / 2)*GeoModelKernelUnits::mm; +double Fe_z = (99.0 / 2)*Gaudi::Units::mm; // // Define dimension of X scintilator // @@ -124,24 +125,24 @@ double z_s = WTC_sci_z / 2; // double z_x[3], z_y[3], z_Fe[4]; z_x[0] = -z_m + Muon_dist + Muon_z + z_s; // X scin. Layer 1 - z_y[0] = z_x[0] + 54*GeoModelKernelUnits::mm; // Y scin. Layer 2 - z_Fe[0] = z_x[0] + 86.0*GeoModelKernelUnits::mm + Fe_z; // 1st Fe abs. - z_y[1] = z_Fe[0] + 125.5*GeoModelKernelUnits::mm - Fe_z; // Y scin. Layer 3 - z_Fe[1] = z_Fe[0] + 2 * Fe_z + 53.0*GeoModelKernelUnits::mm; // 2nd Fe abs. - z_x[1] = z_Fe[0] - Fe_z + 278.5*GeoModelKernelUnits::mm; // X scin. Layer 4 - z_Fe[2] = z_Fe[1] + 2 *Fe_z + 52.5*GeoModelKernelUnits::mm; // 3rd Fe abs. - z_y[2] = z_Fe[0] - Fe_z + 433.0*GeoModelKernelUnits::mm; // Y scin. Layer 5 - z_Fe[3] = z_Fe[2] + 2 *Fe_z + 61.5*GeoModelKernelUnits::mm; // 4rd Fe abs. + z_y[0] = z_x[0] + 54*Gaudi::Units::mm; // Y scin. Layer 2 + z_Fe[0] = z_x[0] + 86.0*Gaudi::Units::mm + Fe_z; // 1st Fe abs. + z_y[1] = z_Fe[0] + 125.5*Gaudi::Units::mm - Fe_z; // Y scin. Layer 3 + z_Fe[1] = z_Fe[0] + 2 * Fe_z + 53.0*Gaudi::Units::mm; // 2nd Fe abs. + z_x[1] = z_Fe[0] - Fe_z + 278.5*Gaudi::Units::mm; // X scin. Layer 4 + z_Fe[2] = z_Fe[1] + 2 *Fe_z + 52.5*Gaudi::Units::mm; // 3rd Fe abs. + z_y[2] = z_Fe[0] - Fe_z + 433.0*Gaudi::Units::mm; // Y scin. Layer 5 + z_Fe[3] = z_Fe[2] + 2 *Fe_z + 61.5*Gaudi::Units::mm; // 4rd Fe abs. z_x[2] = z_Fe[0] - Fe_z + WTC_len; // X scin. Layer 6 // // Tilding of the TC -//double WTC_tild = -1.1*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length -//double WTC_tild = 0.*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length +//double WTC_tild = -1.1*Gaudi::Units::deg; // 24 Gaudi::Units::mm tild on 1250 Gaudi::Units::mm length +//double WTC_tild = 0.*Gaudi::Units::deg; // 24 Gaudi::Units::mm tild on 1250 Gaudi::Units::mm length // Define position in test beam line.... // -//double WTC_x = 0.0*GeoModelKernelUnits::mm; -//double WTC_y = 0.0*GeoModelKernelUnits::mm; -//double WTC_z = 460.0*GeoModelKernelUnits::mm - 120.*GeoModelKernelUnits::mm - 10.*GeoModelKernelUnits::mm; +//double WTC_x = 0.0*Gaudi::Units::mm; +//double WTC_y = 0.0*Gaudi::Units::mm; +//double WTC_z = 460.0*Gaudi::Units::mm - 120.*Gaudi::Units::mm - 10.*Gaudi::Units::mm; // Some elements @@ -152,7 +153,7 @@ double z_x[3], z_y[3], z_Fe[4]; const GeoMaterial* Iron = materialManager->getMaterial("std::Iron"); const GeoMaterial *Air = materialManager->getMaterial("std::Air"); // Scintillator - double density = 1.032*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + double density = 1.032*GeoModelKernelUnits::g/Gaudi::Units::cm3; GeoMaterial* Scintillator=new GeoMaterial("Scintillator",density); Scintillator->add(elC,0.9147); Scintillator->add(elH,0.0853); @@ -181,16 +182,16 @@ double z_x[3], z_y[3], z_Fe[4]; GeoLogVol *mu_log = new GeoLogVol(muname, mu_box, Scintillator); GeoPhysVol *mu_phys = new GeoPhysVol(mu_log); for(int i=1; i<=3; ++i) { - a = -5.*i*GeoModelKernelUnits::mm + (2*i-1)*Muon_x/2; + a = -5.*i*Gaudi::Units::mm + (2*i-1)*Muon_x/2; n = pow(-1,i) * Muon_z/2 - z_m + Muon_z; - GeoTrf::Vector3D posShift(a,0.0*GeoModelKernelUnits::mm,n); + GeoTrf::Vector3D posShift(a,0.0*Gaudi::Units::mm,n); m_WarmTCPhys->add(new GeoSerialIdentifier(6-i)); - m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(a,0.0*GeoModelKernelUnits::mm,n))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(a,0.0*Gaudi::Units::mm,n))); m_WarmTCPhys->add(mu_phys); n = pow(-1,i+1) * Muon_z/2 - z_m + Muon_z; m_WarmTCPhys->add(new GeoSerialIdentifier(5+i)); - m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(-a,0.0*GeoModelKernelUnits::mm,n))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(-a,0.0*Gaudi::Units::mm,n))); m_WarmTCPhys->add(mu_phys); } @@ -205,7 +206,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<4; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_Fe[i]))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*Gaudi::Units::mm,0.0*Gaudi::Units::mm,z_Fe[i]))); m_WarmTCPhys->add(Fe_phys); } @@ -219,7 +220,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<3; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_x[i]))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*Gaudi::Units::mm,0.0*Gaudi::Units::mm,z_x[i]))); m_WarmTCPhys->add(X_phys); } @@ -233,7 +234,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<3; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_y[i]))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*Gaudi::Units::mm,0.0*Gaudi::Units::mm,z_y[i]))); m_WarmTCPhys->add(Y_phys); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h index 14f6658bd474..0d1414271ff5 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h @@ -11,7 +11,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <memory> class IRDBAccessSvc; diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx index 043e1e5d2248..acc19f08b194 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx @@ -43,6 +43,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -104,7 +105,7 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() std::string name; double density; const GeoElement* W=materialManager->getElement("Wolfram"); - GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/Gaudi::Units::cm3); Tungsten->add(W,1.); Tungsten->lock(); @@ -114,21 +115,21 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* Al=materialManager->getElement("Aluminium"); - GeoMaterial* CO2 = new GeoMaterial(name="CO2", density=1.84E-03*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* CO2 = new GeoMaterial(name="CO2", density=1.84E-03*GeoModelKernelUnits::g/Gaudi::Units::cm3); CO2->add(C,0.273); CO2->add(O,0.727); CO2->lock(); - GeoMaterial* ArCO2_1 = new GeoMaterial(name="ArCO2_1", density=(0.8*1.782e-03 + 0.2*1.84E-03)*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* ArCO2_1 = new GeoMaterial(name="ArCO2_1", density=(0.8*1.782e-03 + 0.2*1.84E-03)*GeoModelKernelUnits::g/Gaudi::Units::cm3); ArCO2_1->add(Ar,0.8); ArCO2_1->add(CO2,0.2); ArCO2_1->lock(); - GeoMaterial* ArCO2_2 = new GeoMaterial(name="ArCO2_2", density=(0.9*1.782e-03 + 0.1*1.84E-03)*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* ArCO2_2 = new GeoMaterial(name="ArCO2_2", density=(0.9*1.782e-03 + 0.1*1.84E-03)*GeoModelKernelUnits::g/Gaudi::Units::cm3); ArCO2_2->add(Ar,0.9); ArCO2_2->add(CO2,0.1); ArCO2_2->lock(); // AlMylar AlC5H4O2 ?????? - density = 1.39*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; - GeoMaterial* AlMylar=new GeoMaterial(name="AlMylar",density=1.39*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + density = 1.39*GeoModelKernelUnits::g/Gaudi::Units::cm3; + GeoMaterial* AlMylar=new GeoMaterial(name="AlMylar",density=1.39*GeoModelKernelUnits::g/Gaudi::Units::cm3); AlMylar->add(C,0.487980); AlMylar->add(O,0.260014); AlMylar->add(H,0.032761); @@ -159,36 +160,36 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() ////////////////////////////////////////////////////////////////// // Define geometry ////////////////////////////////////////////////////////////////// - double bpc_x = 15.0*GeoModelKernelUnits::cm; - double bpc_y = 15.0*GeoModelKernelUnits::cm; - double bpc_z = (8.684/2)*GeoModelKernelUnits::cm; - double bpc_send = (1.14/2)*GeoModelKernelUnits::cm; - double bpc_sen = (1.06)*GeoModelKernelUnits::cm; - double bpc_div = 5.06*GeoModelKernelUnits::mm; - //double bpc_space = 2.6*GeoModelKernelUnits::mm; - double bpc_ml = 0.0010*GeoModelKernelUnits::cm; - double bpc_alml = 0.0012*GeoModelKernelUnits::cm; - double bpc_frame = 12.1*GeoModelKernelUnits::mm; - double bpc_alframe = 8.*GeoModelKernelUnits::mm; - double bpc_step = 0.6*GeoModelKernelUnits::cm; - double bpc_cstep = 0.3*GeoModelKernelUnits::cm; - double bpc_wd = 0.0020*GeoModelKernelUnits::cm; - double bpc_cwd = 0.0100*GeoModelKernelUnits::cm; + double bpc_x = 15.0*Gaudi::Units::cm; + double bpc_y = 15.0*Gaudi::Units::cm; + double bpc_z = (8.684/2)*Gaudi::Units::cm; + double bpc_send = (1.14/2)*Gaudi::Units::cm; + double bpc_sen = (1.06)*Gaudi::Units::cm; + double bpc_div = 5.06*Gaudi::Units::mm; + //double bpc_space = 2.6*Gaudi::Units::mm; + double bpc_ml = 0.0010*Gaudi::Units::cm; + double bpc_alml = 0.0012*Gaudi::Units::cm; + double bpc_frame = 12.1*Gaudi::Units::mm; + double bpc_alframe = 8.*Gaudi::Units::mm; + double bpc_step = 0.6*Gaudi::Units::cm; + double bpc_cstep = 0.3*Gaudi::Units::cm; + double bpc_wd = 0.0020*Gaudi::Units::cm; + double bpc_cwd = 0.0100*Gaudi::Units::cm; - double bpc_old_x = 12.0*GeoModelKernelUnits::cm; - double bpc_old_y = 12.0*GeoModelKernelUnits::cm; - double bpc_old_z = (5.100/2)*GeoModelKernelUnits::cm; - double bpc_old_div = 7.6*GeoModelKernelUnits::mm; - double bpc_old_alml = 0.0020*GeoModelKernelUnits::cm; - double bpc_old_ml = 0.0050*GeoModelKernelUnits::cm; - double bpc_old_frame = 10.*GeoModelKernelUnits::mm; - double bpc_old_alframe = 2.*GeoModelKernelUnits::mm; - double bpc_old_alframe1 = 12.*GeoModelKernelUnits::mm; - double bpc_old_send = (1.7/2)*GeoModelKernelUnits::cm; - double bpc_old_sen = 0.5*GeoModelKernelUnits::cm; - double bpc_old_space = 1.*GeoModelKernelUnits::mm; - double bpc_old_step = 0.6*GeoModelKernelUnits::cm; - double bpc_old_cstep = 0.3*GeoModelKernelUnits::cm; + double bpc_old_x = 12.0*Gaudi::Units::cm; + double bpc_old_y = 12.0*Gaudi::Units::cm; + double bpc_old_z = (5.100/2)*Gaudi::Units::cm; + double bpc_old_div = 7.6*Gaudi::Units::mm; + double bpc_old_alml = 0.0020*Gaudi::Units::cm; + double bpc_old_ml = 0.0050*Gaudi::Units::cm; + double bpc_old_frame = 10.*Gaudi::Units::mm; + double bpc_old_alframe = 2.*Gaudi::Units::mm; + double bpc_old_alframe1 = 12.*Gaudi::Units::mm; + double bpc_old_send = (1.7/2)*Gaudi::Units::cm; + double bpc_old_sen = 0.5*Gaudi::Units::cm; + double bpc_old_space = 1.*Gaudi::Units::mm; + double bpc_old_step = 0.6*Gaudi::Units::cm; + double bpc_old_cstep = 0.3*Gaudi::Units::cm; // Here we creat the envelope for the Moveable FrontBeam Instrumentation. This code is repeated @@ -307,18 +308,18 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() // wires in each division GeoTubs* shape_bpc_wire; - if(m_oldType) shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_old_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); - else shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); + if(m_oldType) shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_old_x, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg); + else shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_x, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg); GeoLogVol* log_bpc_wire; if(m_oldType) log_bpc_wire = new GeoLogVol(BPCName + "::bpco_wire", shape_bpc_wire, Tungsten); else log_bpc_wire = new GeoLogVol(BPCName + "::bpc_wire", shape_bpc_wire, Tungsten); GeoPhysVol* phys_bpc_wire = new GeoPhysVol(log_bpc_wire); phys_bpc_xdiv->add( new GeoIdentifierTag( 1 ) ); - phys_bpc_xdiv->add( new GeoTransform( GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) ) ); + phys_bpc_xdiv->add( new GeoTransform( GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ) ) ); phys_bpc_xdiv->add(phys_bpc_wire); if(!m_oldType) { phys_bpc_ydiv->add( new GeoIdentifierTag( 1 ) ); - phys_bpc_ydiv->add( new GeoTransform( GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) ) ); + phys_bpc_ydiv->add( new GeoTransform( GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ) ) ); phys_bpc_ydiv->add(phys_bpc_wire); } @@ -326,20 +327,20 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(m_oldType) Ndiv = int(2.0*bpc_old_x/bpc_cstep); else Ndiv = int(2.0*bpc_x/bpc_cstep); GeoTubs* shape_bpc_cwire; - if(m_oldType) shape_bpc_cwire = new GeoTubs(0., bpc_cwd, bpc_old_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); - else shape_bpc_cwire = new GeoTubs( 0., bpc_cwd, bpc_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); + if(m_oldType) shape_bpc_cwire = new GeoTubs(0., bpc_cwd, bpc_old_x, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg); + else shape_bpc_cwire = new GeoTubs( 0., bpc_cwd, bpc_x, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg); GeoLogVol* log_bpc_cwire; if(m_oldType) log_bpc_cwire = new GeoLogVol(BPCName + "::bpco_cwire",shape_bpc_cwire, Tungsten); else log_bpc_cwire = new GeoLogVol(BPCName + "::bpc_cwire",shape_bpc_cwire, Tungsten); GeoPhysVol* phys_bpc_cwire = new GeoPhysVol(log_bpc_cwire); -// GeoXF::TRANSFUNCTION TXXMO = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-bpc_cwd+bpc_old_space); -// GeoXF::TRANSFUNCTION TXXPO = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+bpc_cwd); - GeoXF::TRANSFUNCTION TXXMO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-2.*bpc_cwd+bpc_old_space) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); - GeoXF::TRANSFUNCTION TXXPO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+2.*bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); -// GeoXF::TRANSFUNCTION TXXM = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); -// GeoXF::TRANSFUNCTION TXXP = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); - GeoXF::TRANSFUNCTION TXXM = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); - GeoXF::TRANSFUNCTION TXXP = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); +// GeoXF::TRANSFUNCTION TXXMO = GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-bpc_cwd+bpc_old_space); +// GeoXF::TRANSFUNCTION TXXPO = GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+bpc_cwd); + GeoXF::TRANSFUNCTION TXXMO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-2.*bpc_cwd+bpc_old_space) * GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ); + GeoXF::TRANSFUNCTION TXXPO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+2.*bpc_cwd) * GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ); +// GeoXF::TRANSFUNCTION TXXM = GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); +// GeoXF::TRANSFUNCTION TXXP = GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); + GeoXF::TRANSFUNCTION TXXM = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ); + GeoXF::TRANSFUNCTION TXXP = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ); phys_bpc_xplane->add( new GeoSerialIdentifier(0) ); if(m_oldType) phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXMO, Ndiv) ); else phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXM, Ndiv) ); @@ -347,10 +348,10 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(m_oldType) phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXPO, Ndiv) ); else phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXP, Ndiv) ); if(!m_oldType) { -// GeoXF::TRANSFUNCTION TYYM = GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); -// GeoXF::TRANSFUNCTION TYYP = GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); - GeoXF::TRANSFUNCTION TYYM = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ); - GeoXF::TRANSFUNCTION TYYP = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ); +// GeoXF::TRANSFUNCTION TYYM = GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); +// GeoXF::TRANSFUNCTION TYYP = GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); + GeoXF::TRANSFUNCTION TYYM = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ); + GeoXF::TRANSFUNCTION TYYP = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ); phys_bpc_yplane->add( new GeoSerialIdentifier(0) ); phys_bpc_yplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TYYM, Ndiv) ); phys_bpc_yplane->add( new GeoSerialIdentifier(Ndiv) ); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx index a43ee7e780c3..c24e85b1d8e4 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -41,6 +40,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -100,23 +100,23 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() // First attempt at creating the H6 cryostat: // (values taken from HECCommonDetectorParamDef) // - // A cylinder of half-height: zcryo = 2000.0 *GeoModelKernelUnits::mm - // outer radius of warm-wall: rwarm = 1295.5 *GeoModelKernelUnits::mm - // outer radius of vacuum: rvac = 1293.0 *GeoModelKernelUnits::mm - // outer radius of cold wall: rcold = 1258.0 *GeoModelKernelUnits::mm - // outer radius of LAr: rlar = 1255.0 *GeoModelKernelUnits::mm + // A cylinder of half-height: zcryo = 2000.0 *Gaudi::Units::mm + // outer radius of warm-wall: rwarm = 1295.5 *Gaudi::Units::mm + // outer radius of vacuum: rvac = 1293.0 *Gaudi::Units::mm + // outer radius of cold wall: rcold = 1258.0 *Gaudi::Units::mm + // outer radius of LAr: rlar = 1255.0 *Gaudi::Units::mm // needs to go into database: --- 4databa - double zcryo = 2000.0 *GeoModelKernelUnits::mm; - double rwarm = 1295.5 *GeoModelKernelUnits::mm; - double rvac = 1293.0 *GeoModelKernelUnits::mm; - double rcold = 1258.0 *GeoModelKernelUnits::mm; - double rlar = 1255.0 *GeoModelKernelUnits::mm; + double zcryo = 2000.0 *Gaudi::Units::mm; + double rwarm = 1295.5 *Gaudi::Units::mm; + double rvac = 1293.0 *Gaudi::Units::mm; + double rcold = 1258.0 *Gaudi::Units::mm; + double rlar = 1255.0 *Gaudi::Units::mm; std::string cryoMotherName = "LAr::H6::Cryostat::MotherVolume"; // mother volume; cylinder of radius rwarm = outside of the cryostat warm wall - GeoTube* cryoMotherShape = new GeoTube(0.0 , rwarm+10.0, zcryo+10.0*GeoModelKernelUnits::mm); // mother is a little bigger than warm wall + GeoTube* cryoMotherShape = new GeoTube(0.0 , rwarm+10.0, zcryo+10.0*Gaudi::Units::mm); // mother is a little bigger than warm wall const GeoLogVol* cryoMotherLogical = new GeoLogVol(cryoMotherName, cryoMotherShape, Air); m_cryoMotherPhysical = new GeoFullPhysVol(cryoMotherLogical); @@ -142,13 +142,13 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(cryoWarmWallPhys); // "Vacuum" gap (filled with air...) - GeoTube* cryoVacuumGapShape = new GeoTube(0. , rvac, zcryo-2.0*GeoModelKernelUnits::mm); // an arbitrary 2mm shorter to avoid confilct + GeoTube* cryoVacuumGapShape = new GeoTube(0. , rvac, zcryo-2.0*Gaudi::Units::mm); // an arbitrary 2mm shorter to avoid confilct const GeoLogVol* cryoVacuumGapLog = new GeoLogVol(cryoVacuumGapName, cryoVacuumGapShape, Air); GeoPhysVol* cryoVacuumGapPhys = new GeoPhysVol(cryoVacuumGapLog); cryoWarmWallPhys->add(cryoVacuumGapPhys); // Cold Wall - GeoTube* cryoColdWallShape = new GeoTube(0. , rcold, zcryo-4.0*GeoModelKernelUnits::mm); // an arbitrary 4mm shorter to avoid confilct + GeoTube* cryoColdWallShape = new GeoTube(0. , rcold, zcryo-4.0*Gaudi::Units::mm); // an arbitrary 4mm shorter to avoid confilct const GeoLogVol* cryoColdWallLog = new GeoLogVol(cryoColdWallName, cryoColdWallShape, Iron); GeoPhysVol* cryoColdWallPhys = new GeoPhysVol(cryoColdWallLog); cryoVacuumGapPhys->add(cryoColdWallPhys); @@ -160,7 +160,7 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() // And the FCal the embedded in the LAr instead of the cryoMother! // Liquid Argon - GeoTube* cryoLArShape = new GeoTube(0. , rlar, zcryo-6.0*GeoModelKernelUnits::mm); // an arbitrary 2mm shorter to avoid confilct + GeoTube* cryoLArShape = new GeoTube(0. , rlar, zcryo-6.0*Gaudi::Units::mm); // an arbitrary 2mm shorter to avoid confilct const GeoLogVol* cryoLArLog = new GeoLogVol(cryoLArName, cryoLArShape, LAr); m_cryoMotherPhysical->add(new GeoNameTag(std::string("Cryostat LAr Physical"))); // m_cryoLArPhys is a class member so that we can place Detectors inside. diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx index 2506edd52578..e829fd0b8eec 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx @@ -46,6 +46,7 @@ #include "CxxUtils/make_unique.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -106,7 +107,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() std::string name; double density; const GeoElement* W=materialManager->getElement("Wolfram"); - GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/Gaudi::Units::cm3); Tungsten->add(W,1.); Tungsten->lock(); @@ -114,11 +115,11 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() const GeoElement* Ar=materialManager->getElement("Argon"); const GeoElement* C=materialManager->getElement("Carbon"); const GeoElement* H=materialManager->getElement("Hydrogen"); - GeoMaterial* Isobutane = new GeoMaterial(name="Isobutane", density=2.67*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Isobutane = new GeoMaterial(name="Isobutane", density=2.67*GeoModelKernelUnits::g/Gaudi::Units::cm3); Isobutane->add(C,0.8266); Isobutane->add(H,0.1734); Isobutane->lock(); - GeoMaterial* ArIso = new GeoMaterial(name="ArIso", density=0.0025*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* ArIso = new GeoMaterial(name="ArIso", density=0.0025*GeoModelKernelUnits::g/Gaudi::Units::cm3); ArIso->add(Ar,0.61); ArIso->add(Isobutane,0.39); ArIso->lock(); @@ -169,8 +170,8 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() std::string MWPCName = baseName + "::MWPC"; // This creates a square wire-chamber: - const double MWPCDxy = 64.0*GeoModelKernelUnits::mm; - const double MWPCDz = 16.586*GeoModelKernelUnits::mm; + const double MWPCDxy = 64.0*Gaudi::Units::mm; + const double MWPCDz = 16.586*Gaudi::Units::mm; GeoBox* MWPCShape = new GeoBox(MWPCDxy, MWPCDxy, MWPCDz); // A generic WWPC @@ -180,7 +181,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() //..... Add Mylar to MWPC: - const double MylarDz = 0.015*GeoModelKernelUnits::mm; + const double MylarDz = 0.015*Gaudi::Units::mm; GeoBox* MylarShape = new GeoBox(MWPCDxy, MWPCDxy, MylarDz); // Mylar fits across the MWPC in x,y @@ -193,7 +194,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoLogVol* MylarLogical = new GeoLogVol( MylarName, MylarShape, Mylar ); GeoPhysVol* MylarPhysical = new GeoPhysVol( MylarLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( side ) ); - m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MylarPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (MylarPos) ) ) ); m_MWPCPhysical->add( MylarPhysical ); } // Done with the Mylar Foils @@ -201,10 +202,10 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() //..... Add Al walls to MWPC5: - const double Aluz = 0.014*GeoModelKernelUnits::mm; + const double Aluz = 0.014*Gaudi::Units::mm; const double AluDz = Aluz; - const double Alu_f = 7.*GeoModelKernelUnits::mm; - const double Alu_s = 15.*GeoModelKernelUnits::mm; + const double Alu_f = 7.*Gaudi::Units::mm; + const double Alu_s = 15.*Gaudi::Units::mm; GeoBox* AluShape = new GeoBox(MWPCDxy, MWPCDxy, AluDz); // Al foil fits across the MWPC in x,y for ( int pos = 0; pos<4 ; pos++) @@ -222,17 +223,17 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoLogVol* AluLogical = new GeoLogVol( AluName, AluShape, Aluminium ); GeoPhysVol* AluPhysical = new GeoPhysVol( AluLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( pos ) ); - m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (AluPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (AluPos) ) ) ); m_MWPCPhysical->add( AluPhysical ); } //..... Add a sensitive X and Y plane to MWPC5: - const double Senz = 4.0*GeoModelKernelUnits::mm; + const double Senz = 4.0*Gaudi::Units::mm; const double SenDz = Senz; // z-Thickness of sensitive volume - const double SenPos = 11.*GeoModelKernelUnits::mm; // z-Position of sensitive volume - //const double Step = 2.*GeoModelKernelUnits::mm; // wire-step size for MWPC5 + const double SenPos = 11.*Gaudi::Units::mm; // z-Position of sensitive volume + //const double Step = 2.*Gaudi::Units::mm; // wire-step size for MWPC5 GeoBox* SenPlaneShape = new GeoBox(MWPCDxy, MWPCDxy, SenDz); // Sensitive Volume fits across the MWPC in x,y @@ -243,10 +244,10 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoPhysVol* XPlanePhysical = new GeoPhysVol( XPlaneLogical ); GeoPhysVol* YPlanePhysical = new GeoPhysVol( YPlaneLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( 0 ) ); - m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (-SenPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (-SenPos) ) ) ); m_MWPCPhysical->add( XPlanePhysical ); m_MWPCPhysical->add( new GeoIdentifierTag( 0 ) ); - m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (SenPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, (SenPos) ) ) ); m_MWPCPhysical->add( YPlanePhysical ); @@ -276,15 +277,15 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() YPlanePhysical->add(sTSY); //.... Put wires into the X/Y "divisions" - const double WireDiam = 0.006*GeoModelKernelUnits::mm; + const double WireDiam = 0.006*Gaudi::Units::mm; const double WireLen = MWPCDxy; - GeoTubs* WireShape = new GeoTubs(0.*GeoModelKernelUnits::cm, WireDiam/2., WireLen , 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + GeoTubs* WireShape = new GeoTubs(0.*Gaudi::Units::cm, WireDiam/2., WireLen , 0.*Gaudi::Units::deg,360.*Gaudi::Units::deg); std::string WireName = MWPCName + "::Wire"; GeoLogVol* WireLogical = new GeoLogVol(WireName, WireShape, Tungsten); GeoPhysVol* WirePhysical = new GeoPhysVol( WireLogical ); - XDivPhysical->add(new GeoTransform(GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ))); + XDivPhysical->add(new GeoTransform(GeoTrf::RotateX3D( 90.*Gaudi::Units::deg ))); XDivPhysical->add(WirePhysical); - YDivPhysical->add(new GeoTransform(GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ))); + YDivPhysical->add(new GeoTransform(GeoTrf::RotateY3D( 90.*Gaudi::Units::deg ))); YDivPhysical->add(WirePhysical); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx index a8f7cb567bef..2a27e03f97aa 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -42,6 +41,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -117,7 +117,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() // Is this ok for the Scintillator? // I don't really know for sure what kind of a scintillator we have. - // Lots of Scintillators are PMMA (Plexiglas), which has a composition of C5 H8 O2 and density 1.18 GeoModelKernelUnits::g/GeoModelKernelUnits::cm3 + // Lots of Scintillators are PMMA (Plexiglas), which has a composition of C5 H8 O2 and density 1.18 g/cm3 // The Tile uses a composition of C H (density 1.032) // The old Walls testbeam code uses a composition of C9 H10 (density 1.032) // ... because it's easiest at the moment and not all that different from the fractional @@ -157,9 +157,9 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() std::string baseName = "LAr::TBH6"; std::string WallsName = baseName + "::Walls"; - const double WallsX = 1500.*GeoModelKernelUnits::mm; - const double WallsY = 2000.*GeoModelKernelUnits::mm; - const double WallsZ = 560.5*GeoModelKernelUnits::mm; + const double WallsX = 1500.*Gaudi::Units::mm; + const double WallsY = 2000.*Gaudi::Units::mm; + const double WallsZ = 560.5*Gaudi::Units::mm; GeoBox* WallsShape = new GeoBox( WallsX, WallsY, WallsZ ); @@ -176,13 +176,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Iron Wall " << endmsg; - const double IronX = 1499.*GeoModelKernelUnits::mm; - const double IronY = 1999.*GeoModelKernelUnits::mm; - const double IronZ = 200.0*GeoModelKernelUnits::mm; - const double IronHoleX = 51.5*GeoModelKernelUnits::mm; - const double IronHoleY = 1999.*GeoModelKernelUnits::mm; - const double IronHoleZ = 200.*GeoModelKernelUnits::mm; - const double IronPosZ = 270.*GeoModelKernelUnits::mm; + const double IronX = 1499.*Gaudi::Units::mm; + const double IronY = 1999.*Gaudi::Units::mm; + const double IronZ = 200.0*Gaudi::Units::mm; + const double IronHoleX = 51.5*Gaudi::Units::mm; + const double IronHoleY = 1999.*Gaudi::Units::mm; + const double IronHoleZ = 200.*Gaudi::Units::mm; + const double IronPosZ = 270.*Gaudi::Units::mm; // The wall itself: GeoBox* IronWallShape = new GeoBox(IronX, IronY, IronZ); @@ -198,7 +198,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() IronWallPhysical->add(IronHolePhysical); // Add the iron wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-IronPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::mm, 0.*Gaudi::Units::mm, (WallsZ-IronPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(IronWallName) ); m_WallsPhysical->add( IronWallPhysical ); @@ -210,13 +210,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Lead Wall " << endmsg; - const double LeadX = 1499.*GeoModelKernelUnits::mm; - const double LeadY = 1999.*GeoModelKernelUnits::mm; - const double LeadZ = 6.*GeoModelKernelUnits::mm; - const double LeadHoleX = 23.5*GeoModelKernelUnits::mm; - const double LeadHoleY = 1999.*GeoModelKernelUnits::mm; - const double LeadHoleZ = 6.*GeoModelKernelUnits::mm; - const double LeadPosZ = 1045.*GeoModelKernelUnits::mm; + const double LeadX = 1499.*Gaudi::Units::mm; + const double LeadY = 1999.*Gaudi::Units::mm; + const double LeadZ = 6.*Gaudi::Units::mm; + const double LeadHoleX = 23.5*Gaudi::Units::mm; + const double LeadHoleY = 1999.*Gaudi::Units::mm; + const double LeadHoleZ = 6.*Gaudi::Units::mm; + const double LeadPosZ = 1045.*Gaudi::Units::mm; // The wall itself: GeoBox* LeadWallShape = new GeoBox(LeadX, LeadY, LeadZ); @@ -232,7 +232,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() LeadWallPhysical->add(LeadHolePhysical); // Add the lead wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-LeadPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::mm, 0.*Gaudi::Units::mm, (WallsZ-LeadPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(LeadWallName) ); m_WallsPhysical->add( LeadWallPhysical ); @@ -243,13 +243,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Scint Wall " << endmsg; - const double ScintX = 1499.*GeoModelKernelUnits::mm; - const double ScintY = 1999.*GeoModelKernelUnits::mm; - const double ScintZ = 6.5*GeoModelKernelUnits::mm; - const double ScintHoleX = 92.5*GeoModelKernelUnits::mm; - const double ScintHoleY = 1999.*GeoModelKernelUnits::mm; - const double ScintHoleZ = 6.5*GeoModelKernelUnits::mm; - const double ScintPosZ = 625.*GeoModelKernelUnits::mm; + const double ScintX = 1499.*Gaudi::Units::mm; + const double ScintY = 1999.*Gaudi::Units::mm; + const double ScintZ = 6.5*Gaudi::Units::mm; + const double ScintHoleX = 92.5*Gaudi::Units::mm; + const double ScintHoleY = 1999.*Gaudi::Units::mm; + const double ScintHoleZ = 6.5*Gaudi::Units::mm; + const double ScintPosZ = 625.*Gaudi::Units::mm; // The wall itself: GeoBox* ScintWallShape = new GeoBox(ScintX, ScintY, ScintZ); @@ -265,7 +265,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() ScintWallPhysical->add(ScintHolePhysical); // Add the scintillator wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-ScintPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::mm, 0.*Gaudi::Units::mm, (WallsZ-ScintPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(ScintWallName) ); m_WallsPhysical->add( ScintWallPhysical ); @@ -277,10 +277,10 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() //(*m_msg) << "Create Iron Plate " << endmsg; - const double IronPlateX = 50.*GeoModelKernelUnits::mm; - const double IronPlateY = 150.*GeoModelKernelUnits::mm; - const double IronPlateZ = 4.*GeoModelKernelUnits::mm; - const double IronPlatePosZ = 493.*GeoModelKernelUnits::mm; + const double IronPlateX = 50.*Gaudi::Units::mm; + const double IronPlateY = 150.*Gaudi::Units::mm; + const double IronPlateZ = 4.*Gaudi::Units::mm; + const double IronPlatePosZ = 493.*Gaudi::Units::mm; const int nPlate = 0 ; const int PlatePlace = 1 ; // There were two locations used for these plates - unclear which one when and exactly // where they were....! For the moment, sort of copy the standalone code @@ -309,7 +309,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() // Add the iron plate to the Plate mother: for (int iz=0; iz<(nPlate); iz++) { m_WallsPhysical->add( new GeoIdentifierTag(iz) ); - m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, double(PlatePlace)*(v_PlateZ[iz]) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::mm, 0.*Gaudi::Units::mm, double(PlatePlace)*(v_PlateZ[iz]) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(IronPlateName) ); m_WallsPhysical->add( IronPlatePhysical ); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx index 38752f5b5b5c..3e9aa5ea9bf2 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx @@ -27,6 +27,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/PhysicalConstants.h" #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelUtilities/StoredAlignX.h" @@ -124,14 +125,14 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() throw std::runtime_error("Error in TBBarrelCryostatConstruction, oxygen not found."); } - GeoMaterial *Vacuum = new GeoMaterial("Vacuum",GeoModelKernelUnits::universe_mean_density ); + GeoMaterial *Vacuum = new GeoMaterial("Vacuum",Gaudi::Units::universe_mean_density ); Vacuum->add(Hydrogen,1.); Vacuum->lock(); // define material for FOAM (C5H8O2) // latest density value from P.Puzo (october 2003) // - double density = 0.058*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + double density = 0.058*GeoModelKernelUnits::g/Gaudi::Units::cm3; GeoMaterial* Foam = new GeoMaterial("Foam", density); double fraction=8*1.01/(5*12.01+8*1.01+2.*16.0); Foam->add(Hydrogen,fraction); @@ -164,7 +165,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " Plane zp/ri/ro " << zp[i] << " " << ri[i] << " " << ro[i] << std::endl; } #endif - GeoPcon* Em_pcone = new GeoPcon(-25.*GeoModelKernelUnits::deg,50.*GeoModelKernelUnits::deg); + GeoPcon* Em_pcone = new GeoPcon(-25.*Gaudi::Units::deg,50.*Gaudi::Units::deg); for (int i=0; i < 3; i++) Em_pcone->addPlane(zp[i],ri[i],ro[i]); const GeoLogVol* cryoMotherLogical = @@ -175,20 +176,20 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Cryostat geometry - double Cryo_Distz = 483.5*GeoModelKernelUnits::cm; // total size in z - double Cryo_z0 = 103.0*GeoModelKernelUnits::cm; // eta=0 position wrt cryosta edge at z<0 + double Cryo_Distz = 483.5*Gaudi::Units::cm; // total size in z + double Cryo_z0 = 103.0*Gaudi::Units::cm; // eta=0 position wrt cryosta edge at z<0 - double DeltaR_cold = 4.1*GeoModelKernelUnits::cm; // thickness cold vessel before calo - double DeltaRout_cold = 5.0*GeoModelKernelUnits::cm; // thickness cold vessel after calo + double DeltaR_cold = 4.1*Gaudi::Units::cm; // thickness cold vessel before calo + double DeltaRout_cold = 5.0*Gaudi::Units::cm; // thickness cold vessel after calo - double DeltaR_warm= 3.86*GeoModelKernelUnits::cm; // thickness warm vessel before calo - double DeltaRout_warm = 4.0*GeoModelKernelUnits::cm; // thickness warm vessel after calo + double DeltaR_warm= 3.86*Gaudi::Units::cm; // thickness warm vessel before calo + double DeltaRout_warm = 4.0*Gaudi::Units::cm; // thickness warm vessel after calo - double DeltaRout_vac = 3.0*GeoModelKernelUnits::cm; // vacuum space cryo after calo + double DeltaRout_vac = 3.0*Gaudi::Units::cm; // vacuum space cryo after calo - double Dz_end_warm = 7.0*GeoModelKernelUnits::cm; // thickness of end plate at high z - double Dz_end_vac = 8.0*GeoModelKernelUnits::cm; - double Dz_end_cold = 7.0*GeoModelKernelUnits::cm; + double Dz_end_warm = 7.0*Gaudi::Units::cm; // thickness of end plate at high z + double Dz_end_vac = 8.0*Gaudi::Units::cm; + double Dz_end_cold = 7.0*Gaudi::Units::cm; double Dz_end_tot = Dz_end_warm + Dz_end_vac + Dz_end_cold; @@ -207,13 +208,13 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() double Rmin_mother = Cryo_Xcent-Cryo_Rmax_W; double Rmax_mother = 2270.; - double Phi_Min = -5.0 * GeoModelKernelUnits::deg; - double Phi_Span = 32.5 * GeoModelKernelUnits::deg; + double Phi_Min = -5.0 * Gaudi::Units::deg; + double Phi_Span = 32.5 * Gaudi::Units::deg; // GU 10/09/2004 // For cryostat mother volume, sligthly larger phi range // to avoid clash with front cryostat - double Phi_Min_Moth=-9.0*GeoModelKernelUnits::deg; - double Phi_Span_Moth=38.5*GeoModelKernelUnits::deg; + double Phi_Min_Moth=-9.0*Gaudi::Units::deg; + double Phi_Span_Moth=38.5*Gaudi::Units::deg; // ----------------------------------------------------------------- // Mother volume for Cryostat, filled with foam @@ -225,8 +226,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " (matter = foam) " << std::endl; std::cout << " Rmin/Rmax " << Rmin_mother << " " << Rmax_mother << std::endl; std::cout << " Dz/2 " << Cryo_Distz/2. << std::endl; - std::cout << " PhiMin, Span " << Phi_Min_Moth*(1./GeoModelKernelUnits::deg) << " " - << Phi_Span_Moth*(1./GeoModelKernelUnits::deg) << std::endl; + std::cout << " PhiMin, Span " << Phi_Min_Moth*(1./Gaudi::Units::deg) << " " + << Phi_Span_Moth*(1./Gaudi::Units::deg) << std::endl; #endif GeoTubs* Cent_tube = new GeoTubs(Rmin_mother, @@ -237,7 +238,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() GeoLogVol* Cent_log = new GeoLogVol(baseName+"Mother",Cent_tube,Foam); // position in Pcon mother envelope (which has Atlas reference frame) double zpos = Cryo_Distz/2.-Cryo_z0; - double phi = -1.*360.*GeoModelKernelUnits::deg/16/2.; // to have x axis in middle of volume + double phi = -1.*360.*Gaudi::Units::deg/16/2.; // to have x axis in middle of volume GeoPhysVol* Cent_phys = new GeoPhysVol(Cent_log); cryoMotherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(phi))); @@ -255,7 +256,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " " << std::endl; std::cout << " ** Cryostat before LAr (shape=Tubs)" << std::endl; std::cout << " center in x = " << Cryo_Xcent << std::endl; - std::cout << " angle 180-11 GeoModelKernelUnits::deg, span = 14 GeoModelKernelUnits::deg" << std::endl; + std::cout << " angle 180-11 deg, span = 14 deg" << std::endl; std::cout << " R warm vessel " << Cryo_Rmin_W << " " << Cryo_Rmax_W << std::endl; std::cout << " R vacuum " << Cryo_Rmax_C << " " @@ -270,8 +271,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmin_W, Cryo_Rmax_W, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*GeoModelKernelUnits::deg, - 14.*GeoModelKernelUnits::deg); + (180.-11.)*Gaudi::Units::deg, + 14.*Gaudi::Units::deg); GeoLogVol* CryoW_log = new GeoLogVol(baseName+"WarmTube", CryoW_tube, @@ -287,8 +288,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmax_C, Cryo_Rmin_W, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*GeoModelKernelUnits::deg, - 14.*GeoModelKernelUnits::deg); + (180.-11.)*Gaudi::Units::deg, + 14.*Gaudi::Units::deg); GeoLogVol *CryoV_log = new GeoLogVol(baseName+"VacTube", CryoV_tube, @@ -304,8 +305,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmin_C, Cryo_Rmax_C, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*GeoModelKernelUnits::deg, - 14.*GeoModelKernelUnits::deg); + (180.-11.)*Gaudi::Units::deg, + 14.*Gaudi::Units::deg); GeoLogVol *CryoC_log = new GeoLogVol(baseName+"ColdTube", CryoC_tube, @@ -324,7 +325,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // cold vessel of the cryostat after calo //----------------------------------------------------------------------- - double LAr_inner_radius=141.00*GeoModelKernelUnits::cm; // min radius of PS + double LAr_inner_radius=141.00*Gaudi::Units::cm; // min radius of PS double LAr_outer_radius=Rmax_mother-DeltaRout_warm-DeltaRout_cold -DeltaRout_vac; @@ -335,8 +336,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " *** LAr volume (tubs put in foam)" << std::endl; std::cout << "Rmin/Rmax " << LAr_inner_radius << " " << LAr_outer_radius << std::endl; - std::cout << "PhiMin,Span " << Phi_Min*(1./GeoModelKernelUnits::deg) << " " - << Phi_Span*(1./GeoModelKernelUnits::deg) << std::endl; + std::cout << "PhiMin,Span " << Phi_Min*(1./Gaudi::Units::deg) << " " + << Phi_Span*(1./Gaudi::Units::deg) << std::endl; std::cout << "DeltaZ/2 " << LAr_z_max/2. << std::endl; std::cout << "Position in z in mother " << (LAr_z_max-Cryo_Distz)/2. << std::endl; #endif @@ -369,27 +370,27 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // 5.5mm at mid bottom and 0.5 mm at bottom // modified 17-Aug-05 -// the measured thickness are at 0, 22.5/4, 22.5/2, 3*22.5/4 and 22.5 GeoModelKernelUnits::deg +// the measured thickness are at 0, 22.5/4, 22.5/2, 3*22.5/4 and 22.5 deg // so define the regions in phi to be better centered on the measurements // and to cover: // - 0 to 22.5/8 deg = bottom thickness => need 9.5 - 9mm = 0.5mm Ar // - 22.5/8 to 3*22.5/8 deg = mid bottom => need 7.5-2mm = 5.5mm Ar -// - 3*22.5/8 to 5*22.5/8 GeoModelKernelUnits::deg = mid => need 14.5-9 = 5.5 GeoModelKernelUnits::mm Ar +// - 3*22.5/8 to 5*22.5/8 deg = mid => need 14.5-9 = 5.5 mm Ar // - 5*22.5/8 to 7*22.5/8 deg = mid top => need 12.5-2mm = 10.5mm Ar -// - 7*22.5/8 to 22.5/8 GeoModelKernelUnits::deg = top => need 18.5-9 = 9.5 GeoModelKernelUnits::mm Ar +// - 7*22.5/8 to 22.5/8 deg = top => need 18.5-9 = 9.5 mm Ar #ifdef BUILD_LARFOAM - double delta_LAr[5]={0.5*GeoModelKernelUnits::mm,5.5*GeoModelKernelUnits::mm,5.5*GeoModelKernelUnits::mm,10.5*GeoModelKernelUnits::mm,9.5*GeoModelKernelUnits::mm}; - double Phi1[5]={0.*GeoModelKernelUnits::deg,22.5/8.*GeoModelKernelUnits::deg,3.*22.5/8*GeoModelKernelUnits::deg,5.*22.5/8*GeoModelKernelUnits::deg,7.*22.5/8*GeoModelKernelUnits::deg}; - double Delta_phi[5]={22.5/8*GeoModelKernelUnits::deg, 2.*22.5/8.*GeoModelKernelUnits::deg,2.*22.5/8.*GeoModelKernelUnits::deg,2.*22.5/8.*GeoModelKernelUnits::deg,22.5/8.*GeoModelKernelUnits::deg}; + double delta_LAr[5]={0.5*Gaudi::Units::mm,5.5*Gaudi::Units::mm,5.5*Gaudi::Units::mm,10.5*Gaudi::Units::mm,9.5*Gaudi::Units::mm}; + double Phi1[5]={0.*Gaudi::Units::deg,22.5/8.*Gaudi::Units::deg,3.*22.5/8*Gaudi::Units::deg,5.*22.5/8*Gaudi::Units::deg,7.*22.5/8*Gaudi::Units::deg}; + double Delta_phi[5]={22.5/8*Gaudi::Units::deg, 2.*22.5/8.*Gaudi::Units::deg,2.*22.5/8.*Gaudi::Units::deg,2.*22.5/8.*Gaudi::Units::deg,22.5/8.*Gaudi::Units::deg}; // GU 08-dec-2005 // additionnal LAr fudged before presampler to get better agreement // waiting for Rhoacell measurement to know if this is reasonnable or not // this should be now considered as a systematics // 25mm LAr ~ 0.18 X0 -// double fudge_lar_gap = 25.*GeoModelKernelUnits::mm; +// double fudge_lar_gap = 25.*mm; // GU 28--feb-2006 removed this fudge 25mm, not supported by measurements of Rohacell for (int ilar=0;ilar<5;ilar++) { @@ -398,7 +399,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #ifdef DEBUG_GEO std::cout << " Ar additionnal volume before PS " << r1 << " " - << r2 << " " << Phi1[ilar]*(1./GeoModelKernelUnits::deg) << " " << Delta_phi[ilar]*(1./GeoModelKernelUnits::deg) << std::endl; + << r2 << " " << Phi1[ilar]*(1./Gaudi::Units::deg) << " " << Delta_phi[ilar]*(1./Gaudi::Units::deg) << std::endl; #endif GeoTubs* lar_tube = new GeoTubs(r1, @@ -419,7 +420,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Outer support rings: 6 steel rings, starting just // after Barrel volume (G10 bars) (r=2003.6) // DZ=80mm for DR=12mm, then DZ=10mm for DR=757mm then DZ=80mm for DR=12mm -// at locations z=397,805,1255,1750,2316,2868 GeoModelKernelUnits::mm +// at locations z=397,805,1255,1750,2316,2868 mm #ifdef BUILD_SUPPORTRING double R_ring = 2003.6; @@ -653,10 +654,10 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Zcd = 1582.5-LAr_z_max/2.+Cryo_z0; // new value of PS mother lenght -// Zcd = 1550.0*GeoModelKernelUnits::mm-LAr_z_max/2.+Cryo_z0; +// Zcd = 1550.0*mm-LAr_z_max/2.+Cryo_z0; // also the PS is shifted by 3mm to start at z=3mm in Atlas equivalent frame - double PresamplerMother_length=1549.*GeoModelKernelUnits::mm; - double presamplerShift = 3.*GeoModelKernelUnits::mm; + double PresamplerMother_length=1549.*Gaudi::Units::mm; + double presamplerShift = 3.*Gaudi::Units::mm; Zcd = presamplerShift+PresamplerMother_length-LAr_z_max/2.+Cryo_z0; #ifdef DEBUG_GEO diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx index 693d4358da90..71b88f6326cd 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx @@ -23,7 +23,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -33,6 +32,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -115,7 +115,7 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() // accordingly. std::string cryoMotherName = baseName + "::MotherVolume"; - GeoBox* cryoMotherShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 60.09*GeoModelKernelUnits::cm ); + GeoBox* cryoMotherShape = new GeoBox( 152.*Gaudi::Units::cm, 195.*Gaudi::Units::cm, 60.09*Gaudi::Units::cm ); const GeoLogVol* cryoMotherLogical = new GeoLogVol( cryoMotherName, cryoMotherShape, Air ); //GeoFullPhysVol* m_cryoEnvelopePhysical = new GeoFullPhysVol( cryoMotherLogical ); m_cryoEnvelopePhysical = new GeoFullPhysVol( cryoMotherLogical ); @@ -123,126 +123,126 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() // Cryostat walls std::string ExtWallName = baseName + "::ExternalWarmWall"; - GeoBox* ExtWallShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 60.09*GeoModelKernelUnits::cm ); + GeoBox* ExtWallShape = new GeoBox( 152.*Gaudi::Units::cm, 195.*Gaudi::Units::cm, 60.09*Gaudi::Units::cm ); const GeoLogVol* ExtWallLogical = new GeoLogVol( ExtWallName, ExtWallShape, Al ); GeoPhysVol* ExtWallPhysical = new GeoPhysVol( ExtWallLogical ); std::string WallName = baseName + "::WarmWallInterval"; - GeoBox* WallShape = new GeoBox( ( 152. - 0.8 )*GeoModelKernelUnits::cm, ( 195. - 0.8 )*GeoModelKernelUnits::cm, ( 60.09 - 0.8 )*GeoModelKernelUnits::cm ); + GeoBox* WallShape = new GeoBox( ( 152. - 0.8 )*Gaudi::Units::cm, ( 195. - 0.8 )*Gaudi::Units::cm, ( 60.09 - 0.8 )*Gaudi::Units::cm ); const GeoLogVol* WallLogical = new GeoLogVol( WallName, WallShape, Vacuum ); GeoPhysVol* WallPhysical = new GeoPhysVol( WallLogical ); std::string IntWallName = baseName + "::InternalWarmWall"; - GeoBox* IntWallShape = new GeoBox( 148.4*GeoModelKernelUnits::cm, 191.6*GeoModelKernelUnits::cm, 46.8*GeoModelKernelUnits::cm ); + GeoBox* IntWallShape = new GeoBox( 148.4*Gaudi::Units::cm, 191.6*Gaudi::Units::cm, 46.8*Gaudi::Units::cm ); const GeoLogVol* IntWallLogical = new GeoLogVol( IntWallName, IntWallShape, Al ); GeoPhysVol* IntWallPhysical = new GeoPhysVol( IntWallLogical ); std::string VacuumName = baseName + "::Vacuum"; - GeoBox* VacuumShape = new GeoBox( ( 148.4 - 0.8 )*GeoModelKernelUnits::cm, ( 191.6 - 0.8 )*GeoModelKernelUnits::cm, ( 46.8 - 0.8 )*GeoModelKernelUnits::cm ); + GeoBox* VacuumShape = new GeoBox( ( 148.4 - 0.8 )*Gaudi::Units::cm, ( 191.6 - 0.8 )*Gaudi::Units::cm, ( 46.8 - 0.8 )*Gaudi::Units::cm ); const GeoLogVol* VacuumLogical = new GeoLogVol( VacuumName, VacuumShape, Vacuum ); GeoPhysVol* VacuumPhysical = new GeoPhysVol( VacuumLogical ); std::string ColdWallName = baseName + "::ColdWall"; - GeoBox* ColdWallShape = new GeoBox( 142.5*GeoModelKernelUnits::cm, 184.85*GeoModelKernelUnits::cm, 38.*GeoModelKernelUnits::cm ); + GeoBox* ColdWallShape = new GeoBox( 142.5*Gaudi::Units::cm, 184.85*Gaudi::Units::cm, 38.*Gaudi::Units::cm ); const GeoLogVol* ColdWallLogical = new GeoLogVol( ColdWallName, ColdWallShape, Iron ); GeoPhysVol* ColdWallPhysical = new GeoPhysVol( ColdWallLogical ); std::string LArName = baseName + "::LiquidArgon"; - GeoBox* LArShape = new GeoBox( ( 142.5 - .5 )*GeoModelKernelUnits::cm, ( 184.85 - .5 )*GeoModelKernelUnits::cm, ( 38. - .5 )*GeoModelKernelUnits::cm ); + GeoBox* LArShape = new GeoBox( ( 142.5 - .5 )*Gaudi::Units::cm, ( 184.85 - .5 )*Gaudi::Units::cm, ( 38. - .5 )*Gaudi::Units::cm ); const GeoLogVol* LArLogical = new GeoLogVol( LArName, LArShape, LAr ); // GeoPhysVol* m_LArPhysical = new GeoPhysVol( LArLogical ); m_LArPhysical = new GeoPhysVol( LArLogical ); ColdWallPhysical->add( new GeoIdentifierTag( 1 ) ); - ColdWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + ColdWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); ColdWallPhysical->add( m_LArPhysical ); VacuumPhysical->add( new GeoIdentifierTag( 1 ) ); - VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); VacuumPhysical->add( ColdWallPhysical ); IntWallPhysical->add( new GeoIdentifierTag( 1 ) ); - IntWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + IntWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); IntWallPhysical->add( VacuumPhysical ); WallPhysical->add( new GeoIdentifierTag( 1 ) ); - WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); WallPhysical->add( IntWallPhysical ); ExtWallPhysical->add( new GeoIdentifierTag( 1 ) ); - ExtWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + ExtWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); ExtWallPhysical->add( WallPhysical ); m_cryoEnvelopePhysical->add( new GeoIdentifierTag( 1 ) ); - m_cryoEnvelopePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + m_cryoEnvelopePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); m_cryoEnvelopePhysical->add( ExtWallPhysical ); // Pressure cone std::string PConeName = baseName + "::PressureCone::Mother"; - GeoTubs* PConeShape = new GeoTubs( 0.*GeoModelKernelUnits::cm, 6.5*GeoModelKernelUnits::cm, 4.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); + GeoTubs* PConeShape = new GeoTubs( 0.*Gaudi::Units::cm, 6.5*Gaudi::Units::cm, 4.*Gaudi::Units::cm, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg ); const GeoLogVol* PConeLogical = new GeoLogVol( PConeName, PConeShape, Vacuum ); GeoPhysVol* PConePhysical = new GeoPhysVol( PConeLogical ); std::string IntFlangeName = baseName + "::PressureCone::InternalFlange"; - GeoTubs* IntFlangeShape = new GeoTubs( 0.*GeoModelKernelUnits::cm, 4.9*GeoModelKernelUnits::cm, 0.4*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); + GeoTubs* IntFlangeShape = new GeoTubs( 0.*Gaudi::Units::cm, 4.9*Gaudi::Units::cm, 0.4*Gaudi::Units::cm, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg ); const GeoLogVol* IntFlangeLogical = new GeoLogVol( IntFlangeName, IntFlangeShape, Gten ); GeoPhysVol* IntFlangePhysical = new GeoPhysVol( IntFlangeLogical ); std::string ExtFlangeName = baseName + "::PressureCone::ExternalFlange"; - GeoTubs* ExtFlangeShape = new GeoTubs( 5.*GeoModelKernelUnits::cm, 6.5*GeoModelKernelUnits::cm, 0.4*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); + GeoTubs* ExtFlangeShape = new GeoTubs( 5.*Gaudi::Units::cm, 6.5*Gaudi::Units::cm, 0.4*Gaudi::Units::cm, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg ); const GeoLogVol* ExtFlangeLogical = new GeoLogVol( ExtFlangeName, ExtFlangeShape, Gten ); GeoPhysVol* ExtFlangePhysical = new GeoPhysVol( ExtFlangeLogical ); std::string ConeName = baseName + "::PressureCone::Cone"; - GeoCons* ConeShape = new GeoCons( 5.4*GeoModelKernelUnits::cm, 4.5*GeoModelKernelUnits::cm, 5.5*GeoModelKernelUnits::cm, 4.6*GeoModelKernelUnits::cm, 3.2*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); + GeoCons* ConeShape = new GeoCons( 5.4*Gaudi::Units::cm, 4.5*Gaudi::Units::cm, 5.5*Gaudi::Units::cm, 4.6*Gaudi::Units::cm, 3.2*Gaudi::Units::cm, 0.*Gaudi::Units::deg, 360.*Gaudi::Units::deg ); const GeoLogVol* ConeLogical = new GeoLogVol( ConeName, ConeShape, Gten ); GeoPhysVol* ConePhysical = new GeoPhysVol( ConeLogical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 3.6*GeoModelKernelUnits::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 3.6*Gaudi::Units::cm ) ) ); PConePhysical->add( IntFlangePhysical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -3.6*GeoModelKernelUnits::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, -3.6*Gaudi::Units::cm ) ) ); PConePhysical->add( ExtFlangePhysical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm ) ) ); PConePhysical->add( ConePhysical ); for ( int i = 0; i < 3; i++ ) for ( int j = 0; j < 13; j++ ) { - double x = 135.1*GeoModelKernelUnits::cm - 19.3*( j + 1 )*GeoModelKernelUnits::cm; - double y = 19.3*( i - 1 )*GeoModelKernelUnits::cm; + double x = 135.1*Gaudi::Units::cm - 19.3*( j + 1 )*Gaudi::Units::cm; + double y = 19.3*( i - 1 )*Gaudi::Units::cm; VacuumPhysical->add( new GeoIdentifierTag( 1 + i*13 + j ) ); - VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( x, y, -42.*GeoModelKernelUnits::cm ) ) ); + VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( x, y, -42.*Gaudi::Units::cm ) ) ); VacuumPhysical->add( PConePhysical ); } // Zig-zag structure std::string ZigZagMotherName = baseName + "::ZigZag::Mother"; - GeoBox* ZigZagMotherShape = new GeoBox( 130.*GeoModelKernelUnits::cm, 15.*GeoModelKernelUnits::cm, 6.45*GeoModelKernelUnits::cm ); + GeoBox* ZigZagMotherShape = new GeoBox( 130.*Gaudi::Units::cm, 15.*Gaudi::Units::cm, 6.45*Gaudi::Units::cm ); const GeoLogVol* ZigZagMotherLogical = new GeoLogVol( ZigZagMotherName, ZigZagMotherShape, Vacuum ); GeoPhysVol* ZigZagMotherPhysical = new GeoPhysVol( ZigZagMotherLogical ); std::string ZigZagStrAName = baseName + "::ZigZag::StrA"; - GeoBox* ZigZagStrAShape = new GeoBox( 2.45*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .4*GeoModelKernelUnits::cm ); + GeoBox* ZigZagStrAShape = new GeoBox( 2.45*Gaudi::Units::cm, 5.*Gaudi::Units::cm, .4*Gaudi::Units::cm ); const GeoLogVol* ZigZagStrALogical = new GeoLogVol( ZigZagStrAName, ZigZagStrAShape, Al ); GeoPhysVol* ZigZagStrAPhysical = new GeoPhysVol( ZigZagStrALogical ); std::string ZigZagStrBName = baseName + "::ZigZag::StrB"; - GeoBox* ZigZagStrBShape = new GeoBox( 8.53*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .4*GeoModelKernelUnits::cm ); + GeoBox* ZigZagStrBShape = new GeoBox( 8.53*Gaudi::Units::cm, 5.*Gaudi::Units::cm, .4*Gaudi::Units::cm ); const GeoLogVol* ZigZagStrBLogical = new GeoLogVol( ZigZagStrBName, ZigZagStrBShape, Al ); GeoPhysVol* ZigZagStrBPhysical = new GeoPhysVol( ZigZagStrBLogical ); std::string ZigZagStrCName = baseName + "::ZigZag::StrC"; - GeoTrd* ZigZagStrCShape = new GeoTrd( 1.03*GeoModelKernelUnits::cm, .453*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .283*GeoModelKernelUnits::cm ); + GeoTrd* ZigZagStrCShape = new GeoTrd( 1.03*Gaudi::Units::cm, .453*Gaudi::Units::cm, 5.*Gaudi::Units::cm, 5.*Gaudi::Units::cm, .283*Gaudi::Units::cm ); const GeoLogVol* ZigZagStrCLogical = new GeoLogVol( ZigZagStrCName, ZigZagStrCShape, Al ); GeoPhysVol* ZigZagStrCPhysical = new GeoPhysVol( ZigZagStrCLogical ); std::string ZigZagStrDName = baseName + "::ZigZag::StrD"; - GeoTrd* ZigZagStrDShape = new GeoTrd( .005*GeoModelKernelUnits::cm, .31*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .365*GeoModelKernelUnits::cm ); + GeoTrd* ZigZagStrDShape = new GeoTrd( .005*Gaudi::Units::cm, .31*Gaudi::Units::cm, 5.*Gaudi::Units::cm, 5.*Gaudi::Units::cm, .365*Gaudi::Units::cm ); const GeoLogVol* ZigZagStrDLogical = new GeoLogVol( ZigZagStrDName, ZigZagStrDShape, Al ); GeoPhysVol* ZigZagStrDPhysical = new GeoPhysVol( ZigZagStrDLogical ); @@ -250,31 +250,31 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() for ( int i = 0; i < 9; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrAIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 6.05*GeoModelKernelUnits::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 6.05*Gaudi::Units::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrAPhysical ); StrAIdTag++; } for ( int j = 0; j < 2; j++ ) for ( int i = 0; i < 8; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrAIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*GeoModelKernelUnits::cm, ( 2*j - 1 )*10.*GeoModelKernelUnits::cm, 6.05*GeoModelKernelUnits::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*Gaudi::Units::cm, ( 2*j - 1 )*10.*Gaudi::Units::cm, 6.05*Gaudi::Units::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrAPhysical ); StrAIdTag++; } int StrBIdTag = 1; - const double xB1[ 2 ] = { ( -6.77 + 108.85 )*GeoModelKernelUnits::cm, ( 6.77 + 108.85 )*GeoModelKernelUnits::cm }; - const double xB2[ 2 ] = { ( -6.77 + 124.4 )*GeoModelKernelUnits::cm, ( 6.77 + 93.3 )*GeoModelKernelUnits::cm }; - const double alpha[ 2 ] = { 45.*GeoModelKernelUnits::deg, -45.*GeoModelKernelUnits::deg }; + const double xB1[ 2 ] = { ( -6.77 + 108.85 )*Gaudi::Units::cm, ( 6.77 + 108.85 )*Gaudi::Units::cm }; + const double xB2[ 2 ] = { ( -6.77 + 124.4 )*Gaudi::Units::cm, ( 6.77 + 93.3 )*Gaudi::Units::cm }; + const double alpha[ 2 ] = { 45.*Gaudi::Units::deg, -45.*Gaudi::Units::deg }; for ( int k = 0; k < 2; k++ ) for ( int i = 0; i < 8; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrBIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D(GeoTrf::Translate3D( xB1[ k ] - 31.1*i*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -.1*GeoModelKernelUnits::cm )*GeoTrf::RotateY3D( alpha[ k ] ) ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D(GeoTrf::Translate3D( xB1[ k ] - 31.1*i*Gaudi::Units::cm, 0.*Gaudi::Units::cm, -.1*Gaudi::Units::cm )*GeoTrf::RotateY3D( alpha[ k ] ) ) ) ); ZigZagMotherPhysical->add( ZigZagStrBPhysical ); StrBIdTag++; for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrBIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xB2[ k ] - 31.1*i*GeoModelKernelUnits::cm, ( -10. + 20.*j )*GeoModelKernelUnits::cm, -.1*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( alpha[ k ] )) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xB2[ k ] - 31.1*i*Gaudi::Units::cm, ( -10. + 20.*j )*Gaudi::Units::cm, -.1*Gaudi::Units::cm ) *GeoTrf::RotateY3D( alpha[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrBPhysical ); StrBIdTag++; } @@ -285,39 +285,39 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() for ( int i = 0; i < 9; i++ ) { if ( i < 8 ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrCIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -6.15*GeoModelKernelUnits::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*Gaudi::Units::cm, 0.*Gaudi::Units::cm, -6.15*Gaudi::Units::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrCPhysical ); StrCIdTag++; } for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrCIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*GeoModelKernelUnits::cm, ( -10. + 20.*j )*GeoModelKernelUnits::cm, -6.15*GeoModelKernelUnits::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*Gaudi::Units::cm, ( -10. + 20.*j )*Gaudi::Units::cm, -6.15*Gaudi::Units::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrCPhysical ); StrCIdTag++; } } int StrDIdTag = 1; - const double xD1[ 2 ] = { ( -2.598 + 124.4 )*GeoModelKernelUnits::cm, ( 2.598 + 124.4 )*GeoModelKernelUnits::cm }; - const double xD2[ 2 ] = { ( -2.598 + 108.85 )*GeoModelKernelUnits::cm, ( 2.598 + 108.85 )*GeoModelKernelUnits::cm }; - const double beta[ 2 ] = { -22.5*GeoModelKernelUnits::deg, 22.5*GeoModelKernelUnits::deg }; + const double xD1[ 2 ] = { ( -2.598 + 124.4 )*Gaudi::Units::cm, ( 2.598 + 124.4 )*Gaudi::Units::cm }; + const double xD2[ 2 ] = { ( -2.598 + 108.85 )*Gaudi::Units::cm, ( 2.598 + 108.85 )*Gaudi::Units::cm }; + const double beta[ 2 ] = { -22.5*Gaudi::Units::deg, 22.5*Gaudi::Units::deg }; for ( int k = 0; k < 2; k++ ) for ( int i = 0; i < 9; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrDIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD1[ k ] - 31.1*i*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 5.995*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD1[ k ] - 31.1*i*Gaudi::Units::cm, 0.*Gaudi::Units::cm, 5.995*Gaudi::Units::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrDPhysical ); StrDIdTag++; if ( i < 8 ) for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrDIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD2[ k ] - 31.1*i*GeoModelKernelUnits::cm, ( -10. +20.*j )*GeoModelKernelUnits::cm, 5.995*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD2[ k ] - 31.1*i*Gaudi::Units::cm, ( -10. +20.*j )*Gaudi::Units::cm, 5.995*Gaudi::Units::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrDPhysical ); StrDIdTag++; } } WallPhysical->add( new GeoIdentifierTag( 1 ) ); - WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -53.2*GeoModelKernelUnits::cm ) ) ); + WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, -53.2*Gaudi::Units::cm ) ) ); WallPhysical->add( ZigZagMotherPhysical ); return m_cryoEnvelopePhysical; diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx index 8027190c6edf..1dbfa6e3e745 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx @@ -49,6 +49,7 @@ #include "GaudiKernel/Bootstrap.h" #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" +#include "GaudiKernel/SystemOfUnits.h" #include <string> #include <cmath> @@ -112,37 +113,37 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //LAr - GeoMaterial* LAr = new GeoMaterial(name="LiquidArgon", density=1.396*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* LAr = new GeoMaterial(name="LiquidArgon", density=1.396*GeoModelKernelUnits::g/Gaudi::Units::cm3); LAr->add(Ar,1.); LAr->lock(); //Alu - GeoMaterial* Alu = new GeoMaterial(name="Alu", density=2.7*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Alu = new GeoMaterial(name="Alu", density=2.7*GeoModelKernelUnits::g/Gaudi::Units::cm3); Alu->add(Al,1.); Alu->lock(); //Iron - GeoMaterial* Iron = new GeoMaterial(name="Iron", density=7.87*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Iron = new GeoMaterial(name="Iron", density=7.87*GeoModelKernelUnits::g/Gaudi::Units::cm3); Iron->add(Fe,1.); Iron->lock(); //Copper - GeoMaterial* Copper = new GeoMaterial(name="Copper", density=8.96*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Copper = new GeoMaterial(name="Copper", density=8.96*GeoModelKernelUnits::g/Gaudi::Units::cm3); Copper->add(Cu,1.); Copper->lock(); //Lead - GeoMaterial* Lead = new GeoMaterial(name="Lead", density=11.35*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Lead = new GeoMaterial(name="Lead", density=11.35*GeoModelKernelUnits::g/Gaudi::Units::cm3); Lead->add(Pb,1.); Lead->lock(); // Air , at 20 deg C, 1 atm density=1.2931*mg/cm3 - GeoMaterial* Air=new GeoMaterial(name="Air", density=1.290*GeoModelKernelUnits::mg/GeoModelKernelUnits::cm3); + GeoMaterial* Air=new GeoMaterial(name="Air", density=1.290*Gaudi::Units::mg/Gaudi::Units::cm3); Air->add(N, .8); Air->add(O, .2); Air->lock(); @@ -150,7 +151,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //Prepreg glue for absorbers, composition to be checked! //ref:STR.CAL.01.CRB.6,(23-Jan-2003,J.T.) - GeoMaterial* Glue=new GeoMaterial(name="Glue", density=1.8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Glue=new GeoMaterial(name="Glue", density=1.8*GeoModelKernelUnits::g/Gaudi::Units::cm3); aH=8.*H->getA(); aO=2.*O->getA(); aC=5.*C->getA(); @@ -169,7 +170,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //PermaliE730 for Front middle ring, composition to be checked! // ref.: STR.CAL.01.CRB.6,(23-Jan-2003,J.T.) - GeoMaterial* PermaliE730=new GeoMaterial(name="PermaliE730",density=1.83*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* PermaliE730=new GeoMaterial(name="PermaliE730",density=1.83*GeoModelKernelUnits::g/Gaudi::Units::cm3); aH=8.*H->getA(); aO=2.*O->getA(); aC=5.*C->getA(); @@ -187,7 +188,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Gten ( C8 H14 O4 ), alias glass epoxy for long.&transv.bars - GeoMaterial* Gten = new GeoMaterial(name="Gten", density=1.8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Gten = new GeoMaterial(name="Gten", density=1.8*GeoModelKernelUnits::g/Gaudi::Units::cm3); aH=14.*H->getA(); aO= 4.*O->getA(); aC= 8.*C->getA(); @@ -206,7 +207,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Kapton 11-Jan-2002 ML from accbgeo.age: the Kapton_E density is 1.46g/cm3 // one assumes it is the same as for the Kapton_H -> C22 H10 O5 N2 - GeoMaterial* Kapton= new GeoMaterial(name="Kapton",density=1.46*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Kapton= new GeoMaterial(name="Kapton",density=1.46*GeoModelKernelUnits::g/Gaudi::Units::cm3); aH=10.*H->getA(); aO= 5.*O->getA(); aC=22.*C->getA(); @@ -227,9 +228,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // THIN absorber: outer wheel // 11-Jan-2002 ML source: endegeo.age and Fig.7-3 of TDR - Tggl = 0.3*GeoModelKernelUnits::mm; - Tgfe = 0.4*GeoModelKernelUnits::mm; - Tgpb = 1.7*GeoModelKernelUnits::mm; + Tggl = 0.3*Gaudi::Units::mm; + Tgfe = 0.4*Gaudi::Units::mm; + Tgpb = 1.7*Gaudi::Units::mm; Totalthick=Tggl+Tgfe+Tgpb; m1=Tggl*Glue->getDensity(); m2=Tgfe*Iron->getDensity(); @@ -250,9 +251,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // THICK absorber: inner wheel // 11-Jan-2002 ML source: endegeo.age and Fig.7-3 of TDR - Thgl = 0.3*GeoModelKernelUnits::mm; - Thfe = 0.4*GeoModelKernelUnits::mm; - Thpb = 2.2*GeoModelKernelUnits::mm; + Thgl = 0.3*Gaudi::Units::mm; + Thfe = 0.4*Gaudi::Units::mm; + Thpb = 2.2*Gaudi::Units::mm; Totalthick=Thgl+Thfe+Thpb; m1=Thgl*Glue->getDensity(); m2=Thfe*Iron->getDensity(); @@ -273,8 +274,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Electrode, as a mixture Kapton+Cu, 11-Jan-2002 ML - Thcu = 0.105*GeoModelKernelUnits::mm; - Thka = 0.170*GeoModelKernelUnits::mm; //together with glue J.T. + Thcu = 0.105*Gaudi::Units::mm; + Thka = 0.170*Gaudi::Units::mm; //together with glue J.T. Totalthicke = Thcu+Thka; m1=Thcu*Copper->getDensity(); m2=Thka*Kapton->getDensity(); @@ -303,7 +304,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() FracC =aC*inv_Atot; FracAr=aAr*inv_Atot; } - GeoMaterial* Elect_LAr= new GeoMaterial(name="Elnics",density=1.28*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Elect_LAr= new GeoMaterial(name="Elnics",density=1.28*GeoModelKernelUnits::g/Gaudi::Units::cm3); Elect_LAr->add(H ,FracH); Elect_LAr->add(C ,FracC); Elect_LAr->add(Ar,FracAr); @@ -316,9 +317,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // G10FeInner for barrette in the inner wheel(J.T.08.01.2003) - Thfe =0.4*GeoModelKernelUnits::mm; - Thgl =0.3*GeoModelKernelUnits::mm; - Thpb =2.2*GeoModelKernelUnits::mm; + Thfe =0.4*Gaudi::Units::mm; + Thgl =0.3*Gaudi::Units::mm; + Thpb =2.2*Gaudi::Units::mm; ThGten=Thpb; Totalthick =Thfe+Thgl+ThGten; //Totalthicki=Totalthick; @@ -343,9 +344,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // G10FeOuter for barrette in the outer wheel(J.T.08.01.2003) - Thfe =0.4*GeoModelKernelUnits::mm; - Thgl =0.3*GeoModelKernelUnits::mm; - Thpb =1.7*GeoModelKernelUnits::mm; + Thfe =0.4*Gaudi::Units::mm; + Thgl =0.3*Gaudi::Units::mm; + Thpb =1.7*Gaudi::Units::mm; ThGten=Thpb; Totalthick =Thfe+Thgl+ThGten; //Totalthicko=Totalthick; @@ -381,13 +382,13 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // V.N: From LarWheelSolid, to get bounding polycone. Previoulsy G4 routine. No GeoModel equivalent so far ... // - double zWheelFrontFace = 3689.5*GeoModelKernelUnits::mm; + double zWheelFrontFace = 3689.5*Gaudi::Units::mm; - double dWRPtoFrontFace = 11.*GeoModelKernelUnits::mm; + double dWRPtoFrontFace = 11.*Gaudi::Units::mm; - double dMechFocaltoWRP = 3691. *GeoModelKernelUnits::mm; //=endg_z1*GeoModelKernelUnits::cm + double dMechFocaltoWRP = 3691. *Gaudi::Units::mm; //=endg_z1*Gaudi::Units::cm //"LArEMECNomLarOrig" - double rOuterCutoff = 2034. *GeoModelKernelUnits::mm; //=endg_rlimit*GeoModelKernelUnits::cm + double rOuterCutoff = 2034. *Gaudi::Units::mm; //=endg_rlimit*Gaudi::Units::cm //"LArEMECMaxRadiusActivePart //***************** @@ -399,32 +400,32 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() double Rin1, Rin2, Rout1, Rout2; if ( m_isInnerWheel ) { - Rin1 = 279.*GeoModelKernelUnits::mm; - Rin2 = 324.*GeoModelKernelUnits::mm; + Rin1 = 279.*Gaudi::Units::mm; + Rin2 = 324.*Gaudi::Units::mm; } else { - Rin1 = 590.*GeoModelKernelUnits::mm; - Rin2 = 678.*GeoModelKernelUnits::mm; + Rin1 = 590.*Gaudi::Units::mm; + Rin2 = 678.*Gaudi::Units::mm; } if ( m_isOuterWheel ) { - Rout1 = 2070.*GeoModelKernelUnits::mm; - Rout2 = 2070.*GeoModelKernelUnits::mm; + Rout1 = 2070.*Gaudi::Units::mm; + Rout2 = 2070.*Gaudi::Units::mm; } else { - Rout1 = 647.*GeoModelKernelUnits::mm; - Rout2 = 732.*GeoModelKernelUnits::mm; + Rout1 = 647.*Gaudi::Units::mm; + Rout2 = 732.*Gaudi::Units::mm; } // --> EndOfRadiiSelection <-- - double emecMotherZplan[] = { 3639.5*GeoModelKernelUnits::mm, 3639.5*GeoModelKernelUnits::mm + 630.*GeoModelKernelUnits::mm }; //cold (J.T) + double emecMotherZplan[] = { 3639.5*Gaudi::Units::mm, 3639.5*Gaudi::Units::mm + 630.*Gaudi::Units::mm }; //cold (J.T) double emecMotherRin[] = { Rin1, Rin2 }; double emecMotherRout[] = { Rout1, Rout2 }; int lastPlaneEmec = ( sizeof( emecMotherZplan )/sizeof( double ) ); if ( m_isTB ) { for ( int i = 0; i < lastPlaneEmec; i++ ) emecMotherZplan[ i ] -= zWheelFrontFace; - zWheelFrontFace = 0.*GeoModelKernelUnits::mm; + zWheelFrontFace = 0.*Gaudi::Units::mm; } double phiPosition = M_PI/2; @@ -449,8 +450,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() double tanThetaMid = 2. * exp(-eta_mid) / (1. - exp(2.*-eta_mid)); double tanThetaOuter = 2. * exp(-eta_low) / (1. - exp(2.*-eta_low)); - double zWheelThickness = 514.*GeoModelKernelUnits::mm; // endg_etot-2.*(endg_sabl*GeoModelKernelUnits::cm-2.*GeoModelKernelUnits::mm) - double gapBetweenWheels= 1.5*GeoModelKernelUnits::mm*2.; // "LArEMECHalfCrack"*2. + double zWheelThickness = 514.*Gaudi::Units::mm; // endg_etot-2.*(endg_sabl*Gaudi::Units::cm-2.*Gaudi::Units::mm) + double gapBetweenWheels= 1.5*Gaudi::Units::mm*2.; // "LArEMECHalfCrack"*2. //J.T************ // zWheelFrontFace for mechanical design @@ -654,14 +655,14 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // V.N. --> Support selected - z0 = zWheelFrontFace - 61.*GeoModelKernelUnits::mm; + z0 = zWheelFrontFace - 61.*Gaudi::Units::mm; EMECSupportConstruction *fsc = new EMECSupportConstruction( FrontIndx, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol* physicalFSM = fsc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); emecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( z0 ) ) ); emecMotherPhysical->add( physicalFSM ); - z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm + 55.*GeoModelKernelUnits::mm; + z0 = zWheelFrontFace + 514.*Gaudi::Units::mm + 55.*Gaudi::Units::mm; EMECSupportConstruction *bsc = new EMECSupportConstruction( BackIndx, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalBSM = bsc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); @@ -670,7 +671,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() emecMotherPhysical->add( physicalBSM ); if ( m_isOuterWheel ) { - z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; + z0 = zWheelFrontFace + 514.*Gaudi::Units::mm/2; EMECSupportConstruction *osc = new EMECSupportConstruction( 2, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalOSM = osc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); @@ -679,7 +680,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() } if ( m_isInnerWheel ) { - z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; + z0 = zWheelFrontFace + 514.*Gaudi::Units::mm/2; EMECSupportConstruction *isc = new EMECSupportConstruction( 3, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalISM = isc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); @@ -687,7 +688,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() emecMotherPhysical->add( physicalISM ); } - z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; + z0 = zWheelFrontFace + 514.*Gaudi::Units::mm/2; EMECSupportConstruction *msc = new EMECSupportConstruction( 4, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalMSM = msc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx index f0b5264d749c..820254ad36aa 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx @@ -22,7 +22,6 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -39,6 +38,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" // For run options : #include "LArG4RunControl/LArGeoTBGeometricOptions.h" @@ -110,21 +110,9 @@ StoreGate interface"); else if ( m_eta_cell > 43.5 ) m_eta_pos = 0.1*( m_eta_cell - 43.5 ) + 2.5; // Inner Wheel else m_eta_pos = 0.025*( m_eta_cell - 0.5 ) + 1.425; // Outer Wheel - if ( m_eta_cell <= 43.5 ) m_phi_pos = -( ( m_phi_cell - 16. )*1.40625 + 0.46875 )*GeoModelKernelUnits::deg; // Outer Wheel - else m_phi_pos = -( 4*( m_phi_cell - 4. )*1.40625 + 0.46875 )*GeoModelKernelUnits::deg; // Inner Wheel + if ( m_eta_cell <= 43.5 ) m_phi_pos = -( ( m_phi_cell - 16. )*1.40625 + 0.46875 )*Gaudi::Units::deg; // Outer Wheel + else m_phi_pos = -( 4*( m_phi_cell - 4. )*1.40625 + 0.46875 )*Gaudi::Units::deg; // Inner Wheel - -/* - printf( "LArDetectorConstructionTBEC\teta_cell = %6.2lf ( eta = %6.2lf )\n", m_eta_cell, -m_eta_pos ); - printf( "LArDetectorConstructionTBEC\tphi_cell = %6.2lf ( phi = %6.2lf GeoModelKernelUnits::deg )\n", m_phi_cell, -m_phi_pos/GeoModelKernelUnits::deg ); -*/ - -/* - printf( "LArDetectorConstructionTBEC\tModuleRotation = %6.2lf GeoModelKernelUnits::deg\n", m_ModuleRotation/GeoModelKernelUnits::deg ); - printf( "LArDetectorConstructionTBEC\tYShift = %6.1lf GeoModelKernelUnits::mm\n", m_YShift/GeoModelKernelUnits::mm ); -*/ } LArGeo::LArDetectorConstructionTBEC::~LArDetectorConstructionTBEC() {} @@ -166,8 +154,8 @@ GeoVPhysVol* LArGeo::LArDetectorConstructionTBEC::GetEnvelope() // Default values.... m_hasLeadCompensator = false; m_hasPresampler = false; - m_ModuleRotation = 0.*GeoModelKernelUnits::deg; - m_YShift = 0.*GeoModelKernelUnits::mm; + m_ModuleRotation = 0.*Gaudi::Units::deg; + m_YShift = 0.*Gaudi::Units::mm; IRDBRecordset_ptr tbecGeometry = m_pAccessSvc->getRecordsetPtr("TBECGeometry",detectorKey, detectorNode); if ((*tbecGeometry).size()!=0) { @@ -192,7 +180,7 @@ GeoVPhysVol* LArGeo::LArDetectorConstructionTBEC::GetEnvelope() std::string baseName = "LAr::TBEC::MotherVolume"; - GeoBox* tbecMotherShape = new GeoBox( 5.*GeoModelKernelUnits::m, 5.*GeoModelKernelUnits::m, 15.*GeoModelKernelUnits::m ); + GeoBox* tbecMotherShape = new GeoBox( 5.*Gaudi::Units::m, 5.*Gaudi::Units::m, 15.*Gaudi::Units::m ); const GeoLogVol* tbecMotherLogical = new GeoLogVol(baseName, tbecMotherShape, Air); @@ -259,25 +247,25 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() // accordingly. std::string tbecMotherName = baseName + "::MotherVolume"; - GeoBox* tbecMotherShape = new GeoBox( 5.*GeoModelKernelUnits::m, 5.*GeoModelKernelUnits::m, 15.*GeoModelKernelUnits::m ); + GeoBox* tbecMotherShape = new GeoBox( 5.*Gaudi::Units::m, 5.*Gaudi::Units::m, 15.*Gaudi::Units::m ); const GeoLogVol* tbecMotherLogical = new GeoLogVol( tbecMotherName, tbecMotherShape, Air ); GeoFullPhysVol* tbecMotherPhysical = new GeoFullPhysVol( tbecMotherLogical ); - double xcent = -120.*GeoModelKernelUnits::cm, zcent = 395.7*GeoModelKernelUnits::cm; - double zfface = zcent - 60.09*GeoModelKernelUnits::cm; + double xcent = -120.*Gaudi::Units::cm, zcent = 395.7*Gaudi::Units::cm; + double zfface = zcent - 60.09*Gaudi::Units::cm; log << MSG::DEBUG << "eta = " << m_eta_pos; if ( m_eta_pos > 5. ) m_eta_pos = 0.; else m_eta_pos = 2*atan( exp( -m_eta_pos ) ); - log << ", positioning cryostat with angle " << m_eta_pos*(1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg"; + log << ", positioning cryostat with angle " << m_eta_pos*(1./Gaudi::Units::deg) << " Gaudi::Units::deg"; log << endmsg; // Tubular axis, dummy if ( AXIS_ON ) { - double axisZHalfLength = 5*GeoModelKernelUnits::m; + double axisZHalfLength = 5*Gaudi::Units::m; - GeoTube* axisShape = new GeoTube( 0.*GeoModelKernelUnits::cm, 1.*GeoModelKernelUnits::cm, axisZHalfLength ); + GeoTube* axisShape = new GeoTube( 0.*Gaudi::Units::cm, 1.*Gaudi::Units::cm, axisZHalfLength ); // x-axis std::string XAxisName = baseName + "::XAxis"; @@ -285,7 +273,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* XAxisPhysVol = new GeoPhysVol( XAxisLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( axisZHalfLength, 0.*GeoModelKernelUnits::m, 0.*GeoModelKernelUnits::m ) *GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg )) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( axisZHalfLength, 0.*Gaudi::Units::m, 0.*Gaudi::Units::m ) *GeoTrf::RotateY3D( 90.*Gaudi::Units::deg )) ) ); tbecMotherPhysical->add( XAxisPhysVol ); // y-axis @@ -294,7 +282,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* YAxisPhysVol = new GeoPhysVol( YAxisLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( 0.*GeoModelKernelUnits::m, axisZHalfLength, 0.*GeoModelKernelUnits::m )*GeoTrf::RotateX3D( -90.*GeoModelKernelUnits::deg ) ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( 0.*Gaudi::Units::m, axisZHalfLength, 0.*Gaudi::Units::m )*GeoTrf::RotateX3D( -90.*Gaudi::Units::deg ) ) ) ); tbecMotherPhysical->add( YAxisPhysVol ); //z-axis @@ -311,13 +299,13 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() if ( m_hasLeadCompensator ) { std::string CompensatorName = baseName + "::LeadCompensator"; - GeoBox* CompensatorShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 0.56*GeoModelKernelUnits::cm ); + GeoBox* CompensatorShape = new GeoBox( 152.*Gaudi::Units::cm, 195.*Gaudi::Units::cm, 0.56*Gaudi::Units::cm ); const GeoLogVol* CompensatorLogical = new GeoLogVol( CompensatorName, CompensatorShape, Lead ); GeoPhysVol* CompensatorPhysical = new GeoPhysVol( CompensatorLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - GeoTrf::Vector3D tmpvec1(xcent, 0., 300.*GeoModelKernelUnits::cm); + GeoTrf::Vector3D tmpvec1(xcent, 0., 300.*Gaudi::Units::cm); GeoTrf::Vector3D tmpvec1Rotated = GeoTrf::RotateY3D(m_eta_pos)*tmpvec1; GeoTrf::Translate3D tmpxf1(tmpvec1Rotated.x(),tmpvec1Rotated.y(),tmpvec1Rotated.z()); tbecMotherPhysical->add(new GeoTransform( tmpxf1 * GeoTrf::RotateY3D(m_eta_pos))); @@ -341,8 +329,8 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() log << MSG::VERBOSE << "Creating beam chambers ..." << std::endl; - const double beamCZ[ 4 ] = { 17.9*GeoModelKernelUnits::m, 7.673*GeoModelKernelUnits::m, 1.352*GeoModelKernelUnits::m, .256*GeoModelKernelUnits::m }; - const double beamCSize = 11.*GeoModelKernelUnits::cm, beamCTh = 28*GeoModelKernelUnits::mm; // divided by 2, for half-length + const double beamCZ[ 4 ] = { 17.9*Gaudi::Units::m, 7.673*Gaudi::Units::m, 1.352*Gaudi::Units::m, .256*Gaudi::Units::m }; + const double beamCSize = 11.*Gaudi::Units::cm, beamCTh = 28*Gaudi::Units::mm; // divided by 2, for half-length GeoBox* BeamCShape = new GeoBox( beamCSize, beamCSize, beamCTh ); for ( int i = 0; i < 4; i++ ) { @@ -352,15 +340,15 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* BeamCPhysical = new GeoPhysVol( BeamCLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, zfface - beamCZ[ i ] ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*Gaudi::Units::cm, 0.*Gaudi::Units::cm, zfface - beamCZ[ i ] ) ) ); tbecMotherPhysical->add( BeamCPhysical ); } // End cap module log << MSG::DEBUG << std::endl - << "Module deviation: " << m_ModuleRotation * (1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg" << std::endl - << "Phi position: " << m_phi_pos * (1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg" << std::endl - << "Y shift: " << m_YShift * (1./GeoModelKernelUnits::mm) << " GeoModelKernelUnits::mm" + << "Module deviation: " << m_ModuleRotation * (1./Gaudi::Units::deg) << " Gaudi::Units::deg" << std::endl + << "Phi position: " << m_phi_pos * (1./Gaudi::Units::deg) << " Gaudi::Units::deg" << std::endl + << "Y shift: " << m_YShift * (1./Gaudi::Units::mm) << " Gaudi::Units::mm" << endmsg; // z = 0 in emecMother is at active region's front face @@ -371,8 +359,8 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() StatusCode status=detStore->record(sPhysVol,"EMEC_POS"); if(!status.isSuccess()) throw std::runtime_error ("Cannot store EMEC_POS"); - GeoTrf::Transform3D Mrot(GeoTrf::RotateZ3D( m_phi_pos + 90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(m_ModuleRotation)); - GeoTrf::Vector3D pos( -xcent, m_YShift, -51.4/2*GeoModelKernelUnits::cm ); + GeoTrf::Transform3D Mrot(GeoTrf::RotateZ3D( m_phi_pos + 90*Gaudi::Units::deg)*GeoTrf::RotateY3D(m_ModuleRotation)); + GeoTrf::Vector3D pos( -xcent, m_YShift, -51.4/2*Gaudi::Units::cm ); if ( LArPhysical != 0 ) { @@ -381,7 +369,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() LArPhysical->add( emecEnvelope ); } - pos-= GeoTrf::Vector3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, 61.*GeoModelKernelUnits::mm +2.*GeoModelKernelUnits::mm +13.5*GeoModelKernelUnits::mm ); + pos-= GeoTrf::Vector3D( 0.*Gaudi::Units::mm, 0.*Gaudi::Units::mm, 61.*Gaudi::Units::mm +2.*Gaudi::Units::mm +13.5*Gaudi::Units::mm ); if ( m_hasPresampler ) { -- GitLab From b484121afc3c6ad82fffd70ab0a23ba37e179cd9 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Fri, 25 Jan 2019 02:20:18 +0100 Subject: [PATCH 100/192] Migrated Tile packages from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../TileDetDescr/src/CellVolumes.h | 84 +- .../TileDetDescr/src/TileDetDescrManager.cxx | 17 +- .../TileGeoModel/src/TileAtlasFactory.cxx | 773 +++++++++--------- .../TileGeoModel/src/TileDetectorFactory.cxx | 276 +++---- .../src/TileGeoSectionBuilder.cxx | 661 +++++++-------- .../TileGeoModel/src/TileTBFactory.cxx | 278 +++---- .../src/TileVolumeBuilder.cxx | 3 +- 7 files changed, 1046 insertions(+), 1046 deletions(-) diff --git a/TileCalorimeter/TileDetDescr/src/CellVolumes.h b/TileCalorimeter/TileDetDescr/src/CellVolumes.h index e8f75d433ef4..e52942ffde9d 100755 --- a/TileCalorimeter/TileDetDescr/src/CellVolumes.h +++ b/TileCalorimeter/TileDetDescr/src/CellVolumes.h @@ -1,48 +1,48 @@ /* Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" -const double TileDetDescrManager::vBarrelCells[23] = {17799.76*GeoModelKernelUnits::cm3, //A1 - 17799.76*GeoModelKernelUnits::cm3, //A2 - 18459.01*GeoModelKernelUnits::cm3, //A3 - 18459.01*GeoModelKernelUnits::cm3, //A4 - 19777.51*GeoModelKernelUnits::cm3, //A5 - 20436.76*GeoModelKernelUnits::cm3, //A6 - 21096.01*GeoModelKernelUnits::cm3, //A7 - 23073.76*GeoModelKernelUnits::cm3, //A8 - 24392.26*GeoModelKernelUnits::cm3, //A9 - 21096.01*GeoModelKernelUnits::cm3, //A10 - 75726.60*GeoModelKernelUnits::cm3, //BC1 - 77024.24*GeoModelKernelUnits::cm3, //BC2 - 77024.24*GeoModelKernelUnits::cm3, //BC3 - 81574.95*GeoModelKernelUnits::cm3, //BC4 - 81574.95*GeoModelKernelUnits::cm3, //BC5 - 88401.02*GeoModelKernelUnits::cm3, //BC6 - 91974.02*GeoModelKernelUnits::cm3, //BC7 - 91014.21*GeoModelKernelUnits::cm3, //BC8 - 34219.80*GeoModelKernelUnits::cm3, //B9 - 110000.61*GeoModelKernelUnits::cm3, //D0 - 111375.62*GeoModelKernelUnits::cm3, //D1 - 118250.66*GeoModelKernelUnits::cm3, //D2 - 137500.77*GeoModelKernelUnits::cm3}; //D3 +const double TileDetDescrManager::vBarrelCells[23] = {17799.76*Gaudi::Units::cm3, //A1 + 17799.76*Gaudi::Units::cm3, //A2 + 18459.01*Gaudi::Units::cm3, //A3 + 18459.01*Gaudi::Units::cm3, //A4 + 19777.51*Gaudi::Units::cm3, //A5 + 20436.76*Gaudi::Units::cm3, //A6 + 21096.01*Gaudi::Units::cm3, //A7 + 23073.76*Gaudi::Units::cm3, //A8 + 24392.26*Gaudi::Units::cm3, //A9 + 21096.01*Gaudi::Units::cm3, //A10 + 75726.60*Gaudi::Units::cm3, //BC1 + 77024.24*Gaudi::Units::cm3, //BC2 + 77024.24*Gaudi::Units::cm3, //BC3 + 81574.95*Gaudi::Units::cm3, //BC4 + 81574.95*Gaudi::Units::cm3, //BC5 + 88401.02*Gaudi::Units::cm3, //BC6 + 91974.02*Gaudi::Units::cm3, //BC7 + 91014.21*Gaudi::Units::cm3, //BC8 + 34219.80*Gaudi::Units::cm3, //B9 + 110000.61*Gaudi::Units::cm3, //D0 + 111375.62*Gaudi::Units::cm3, //D1 + 118250.66*Gaudi::Units::cm3, //D2 + 137500.77*Gaudi::Units::cm3}; //D3 -const double TileDetDescrManager::vExtendedCells[12] = {11863.88*GeoModelKernelUnits::cm3, //A12 - 32955.21*GeoModelKernelUnits::cm3, //A13 - 36909.84*GeoModelKernelUnits::cm3, //A14 - 39546.25*GeoModelKernelUnits::cm3, //A15 - 63274.01*GeoModelKernelUnits::cm3, //A16 - 44472.59*GeoModelKernelUnits::cm3, //B11 - 75047.49*GeoModelKernelUnits::cm3, //B12 - 83386.10*GeoModelKernelUnits::cm3, //B13 - 88945.18*GeoModelKernelUnits::cm3, //B14 - 97283.79*GeoModelKernelUnits::cm3, //B15 - 293772.18*GeoModelKernelUnits::cm3, //D5 - 338967.89*GeoModelKernelUnits::cm3}; //D6 +const double TileDetDescrManager::vExtendedCells[12] = {11863.88*Gaudi::Units::cm3, //A12 + 32955.21*Gaudi::Units::cm3, //A13 + 36909.84*Gaudi::Units::cm3, //A14 + 39546.25*Gaudi::Units::cm3, //A15 + 63274.01*Gaudi::Units::cm3, //A16 + 44472.59*Gaudi::Units::cm3, //B11 + 75047.49*Gaudi::Units::cm3, //B12 + 83386.10*Gaudi::Units::cm3, //B13 + 88945.18*Gaudi::Units::cm3, //B14 + 97283.79*Gaudi::Units::cm3, //B15 + 293772.18*Gaudi::Units::cm3, //D5 + 338967.89*Gaudi::Units::cm3}; //D6 -const double TileDetDescrManager::vItcGapCells[6] = {13461.47*GeoModelKernelUnits::cm3, //C10 - 46542.48*GeoModelKernelUnits::cm3, //D4 - 1292.80*GeoModelKernelUnits::cm3, //E1 - 1244.11*GeoModelKernelUnits::cm3, //E2 - 776.24*GeoModelKernelUnits::cm3, //E3 - 468.36*GeoModelKernelUnits::cm3}; //E4 +const double TileDetDescrManager::vItcGapCells[6] = {13461.47*Gaudi::Units::cm3, //C10 + 46542.48*Gaudi::Units::cm3, //D4 + 1292.80*Gaudi::Units::cm3, //E1 + 1244.11*Gaudi::Units::cm3, //E2 + 776.24*Gaudi::Units::cm3, //E3 + 468.36*Gaudi::Units::cm3}; //E4 diff --git a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx index b16acb26272a..b9aa52c52284 100755 --- a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx +++ b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx @@ -13,6 +13,7 @@ #include "TileIdentifier/TileHWID.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include "boost/io/ios_state.hpp" @@ -489,7 +490,7 @@ void TileDetDescrManager::create_elements() // come out to ~ 1e-14, the exact value varying depending // on platform. For reproducibility, force very small // numbers to 0. - if (std::abs(z) < 1e-8 * GeoModelKernelUnits::mm) z = 0; + if (std::abs(z) < 1e-8 * Gaudi::Units::mm) z = 0; double dz = 0.5 * fabs(cell_dim->getZMax(0) // special -cell_dim->getZMin(0) // calculations @@ -570,7 +571,7 @@ void TileDetDescrManager::create_elements() m_dbManager->SetCurrentSection(TileID::EXTBAR); double epThickness = 0.0; // only used for tower == 15 double epVolume = 0.0; // only used for tower == 15 - if ( tower == 15 ) epThickness = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; + if ( tower == 15 ) epThickness = m_dbManager->TILBdzend2() * Gaudi::Units::cm; double volumeInRow[5]; // book large array for (int iRow = 0; iRow < 5; iRow++) volumeInRow[iRow] = 0.; @@ -648,12 +649,12 @@ void TileDetDescrManager::create_elements() { rowVolume = radMax + radMin; rowVolume *= (radMax - radMin); - rowVolume -= 0.5*radMin*(27*GeoModelKernelUnits::mm); + rowVolume -= 0.5*radMin*(27*Gaudi::Units::mm); rowVolume *= Radius2HL * ( deltaZ + epThickness ); // adding volume of cutted endplate } else { - rowVolume = radMax - radMin - 35*GeoModelKernelUnits::mm; + rowVolume = radMax - radMin - 35*Gaudi::Units::mm; rowVolume *= (radMax + radMin); rowVolume *= Radius2HL * deltaZ; } @@ -666,8 +667,8 @@ void TileDetDescrManager::create_elements() if ( (ModuleNcp == 60) || (ModuleNcp == 37) ) { - double deltax = 38.7*std::cos(25.3125*GeoModelKernelUnits::deg); - double pstan = std::tan(25.3125*GeoModelKernelUnits::deg); + double deltax = 38.7*std::cos(25.3125*Gaudi::Units::deg); + double pstan = std::tan(25.3125*Gaudi::Units::deg); double inv_pstan = 1. / pstan; if ( ( 15 == tower ) ) { @@ -734,7 +735,7 @@ void TileDetDescrManager::create_elements() m_dbManager->SetCurrentSection(Id4); double standardD4dz = elt->dz(); - double specialD4dz = m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm; + double specialD4dz = m_dbManager->TILBdzmodul()*Gaudi::Units::cm; if ( Id4 == 8 ) specialD4dz = 0.; elt->set_dz(specialD4dz); @@ -812,7 +813,7 @@ void TileDetDescrManager::create_elements() if ( Id4 == 8 ) { double standardD5dz = elt->dz(); - double specialD4dz = m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm; + double specialD4dz = m_dbManager->TILBdzmodul()*Gaudi::Units::cm; elt->set_dz(specialD4dz + standardD5dz); elt->set_volume(elt->volume()* (1. + specialD4dz/standardD5dz)); diff --git a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx index 474e46831704..8731032d12d2 100755 --- a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx @@ -26,10 +26,6 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" - -//#include "GeoModelKernel/GeoCutVolAction.h" -//#include "GeoModelKernel/GeoSimplePolygonBrep.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" @@ -40,6 +36,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include <stdexcept> #include <iostream> @@ -87,13 +84,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) //int NcpFrom = 34, NcpPlus = 29; // ext.barrel, special double deltaPhi = 360./64; // we know apriory that 64 modules makes full cylinder - double AnglMin = (NcpFrom-1)*deltaPhi*GeoModelKernelUnits::deg, AnglMax = (NcpPlus+1)*deltaPhi*GeoModelKernelUnits::deg; + double AnglMin = (NcpFrom-1)*deltaPhi*Gaudi::Units::deg, AnglMax = (NcpPlus+1)*deltaPhi*Gaudi::Units::deg; // phi range of modules with special C10 - // double AnglMin1 = 38. * deltaPhi*GeoModelKernelUnits::deg; - // double AnglMax1 = 42. * deltaPhi*GeoModelKernelUnits::deg; - // double AnglMin2 = 54. * deltaPhi*GeoModelKernelUnits::deg; - // double AnglMax2 = 58. * deltaPhi*GeoModelKernelUnits::deg; + // double AnglMin1 = 38. * deltaPhi*Gaudi::Units::deg; + // double AnglMax1 = 42. * deltaPhi*Gaudi::Units::deg; + // double AnglMin2 = 54. * deltaPhi*Gaudi::Units::deg; + // double AnglMax2 = 58. * deltaPhi*Gaudi::Units::deg; (*m_log) << MSG::INFO <<" Entering TileAtlasFactory::create()" << endmsg; @@ -118,8 +115,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSaddle(0); - DzSaddleSupport = dbManager->DzSaddleSupport()*GeoModelKernelUnits::cm; - RadiusSaddle = dbManager->RadiusSaddle()*GeoModelKernelUnits::cm; + DzSaddleSupport = dbManager->DzSaddleSupport()*Gaudi::Units::cm; + RadiusSaddle = dbManager->RadiusSaddle()*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " DzSaddleSupport()= "<<DzSaddleSupport<<" RadiusSaddle= "<<RadiusSaddle << endmsg; @@ -168,7 +165,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Barrel finger dbManager->SetCurrentTifg(1); - BFingerLength = BFingerLengthNeg = BFingerLengthPos = dbManager->TIFGdz()*GeoModelKernelUnits::cm; + BFingerLength = BFingerLengthNeg = BFingerLengthPos = dbManager->TIFGdz()*Gaudi::Units::cm; double EBFingerLength =0; double EBFingerLengthNeg =0; @@ -176,7 +173,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // EBarrel finger dbManager->SetCurrentTifg(2); - EBFingerLength = EBFingerLengthNeg = EBFingerLengthPos = dbManager->TIFGdz()*GeoModelKernelUnits::cm; + EBFingerLength = EBFingerLengthNeg = EBFingerLengthPos = dbManager->TIFGdz()*Gaudi::Units::cm; int n_env = dbManager->GetNumberOfEnv(); @@ -196,13 +193,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (Type == 3) EBA = true; */ - ZLength [Type] = dbManager->GetEnvZLength()*GeoModelKernelUnits::cm; - EnvDZPos [Type] = dbManager->GetEnvDZ()*GeoModelKernelUnits::cm; + ZLength [Type] = dbManager->GetEnvZLength()*Gaudi::Units::cm; + EnvDZPos [Type] = dbManager->GetEnvDZ()*Gaudi::Units::cm; PhiMin [Type] = std::min(PhiMin[Type], dbManager->GetEnvDPhi()); PhiMax [Type] = std::max(PhiMax[Type], dbManager->GetEnvNModules()*deltaPhi + dbManager->GetEnvDPhi()); - RInMin [Type] = std::min(RInMin[Type], dbManager->GetEnvRin()*GeoModelKernelUnits::cm); - ROutMax [Type] = std::max(ROutMax[Type],dbManager->GetEnvRout()*GeoModelKernelUnits::cm); - FingerRmax = std::max(FingerRmax,dbManager->GetEnvRout()*GeoModelKernelUnits::cm); + RInMin [Type] = std::min(RInMin[Type], dbManager->GetEnvRin()*Gaudi::Units::cm); + ROutMax [Type] = std::max(ROutMax[Type],dbManager->GetEnvRout()*Gaudi::Units::cm); + FingerRmax = std::max(FingerRmax,dbManager->GetEnvRout()*Gaudi::Units::cm); //std::cout << "# Type " <<Type<< " ZLength " <<ZLength [Type]<< " EnvDZPos "<<EnvDZPos [Type]<< "\n"; } @@ -273,9 +270,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) /** setfinger length */ double BFingerRmin=0, EFingerRmin=0; dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - BFingerRmin = dbManager->TILBrmax()*GeoModelKernelUnits::cm; + BFingerRmin = dbManager->TILBrmax()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - EFingerRmin = dbManager->TILBrmax()*GeoModelKernelUnits::cm; + EFingerRmin = dbManager->TILBrmax()*Gaudi::Units::cm; /** calculation PosEnvThickness enlarge mother volume by extra distance between barrel and positive ext.barrel */ dbManager->SetCurrentEnvByType(3); @@ -301,7 +298,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R maximal double rmaxTotal = ROutMax[1]; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(PhiMin[1]*GeoModelKernelUnits::deg, PhiMax[1]*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(PhiMin[1]*Gaudi::Units::deg, PhiMax[1]*Gaudi::Units::deg); tileEnvPconeBarrel->addPlane(-endEnvelopeNeg, BFingerRmin, rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin, rmaxTotal); @@ -344,7 +341,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double PosEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; double corr = PosEndITC - PosEndITC1; if (fabs(corr)>0.01) { (*m_log) << MSG::WARNING @@ -353,19 +350,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) <<endmsg; } - //double beginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + //double beginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double PosBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - double PosBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - double PosEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + double PosEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double PosBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - double PosEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + double PosEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; if (!spC10) { // recovering old (wrong) positioning of gap scintillators double GapWidth = PosEndGap - PosBeginGap; - PosBeginGap = PosBeginCrack + 0.9 * GeoModelKernelUnits::cm; + PosBeginGap = PosBeginCrack + 0.9 * Gaudi::Units::cm; PosEndGap = PosBeginGap + GapWidth; } @@ -379,11 +376,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double PosRminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double PosRminITC1 = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double PosRminITC = rMinC10 /* dbManager->TILBrminimal() */ *GeoModelKernelUnits::cm; + double PosRminITC = rMinC10 /* dbManager->TILBrminimal() */ *Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double PosRminCrack = rMinE4pos*GeoModelKernelUnits::cm; + double PosRminCrack = rMinE4pos*Gaudi::Units::cm; double PosRminExt = RInMin[3]; @@ -399,7 +396,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) << " PosRmaxTotal = " << PosRmaxTotal << endmsg; - GeoPcon* tileEnvPconePosEndcap = new GeoPcon(PhiMin[3]*GeoModelKernelUnits::deg, PhiMax[3]*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconePosEndcap = new GeoPcon(PhiMin[3]*Gaudi::Units::deg, PhiMax[3]*Gaudi::Units::deg); // Positive Endcap tileEnvPconePosEndcap->addPlane(PosEndBarrelFinger, PosRminITC1, PosRmaxTotal); @@ -444,7 +441,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double NegEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; corr = NegEndITC - NegEndITC1; if (fabs(corr)>0.01) { (*m_log) << MSG::WARNING @@ -452,19 +449,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) << NegEndITC << " != " << NegEndITC1 << "; take this into account" << endmsg; } - //double NegBeginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + //double NegBeginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double NegBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - double NegBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - double NegEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + double NegEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double NegBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - double NegEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + double NegEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; if (!spC10) { // recovering old (wrong) positioning of gap scintillators double GapWidth = NegEndGap - NegBeginGap; - NegBeginGap = NegBeginCrack + 0.9 * GeoModelKernelUnits::cm; + NegBeginGap = NegBeginCrack + 0.9 * Gaudi::Units::cm; NegEndGap = NegBeginGap + GapWidth; } @@ -478,11 +475,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double NegRminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double NegRminITC1 = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double NegRminITC = rMinC10 /* dbManager->TILBrminimal() */ *GeoModelKernelUnits::cm; + double NegRminITC = rMinC10 /* dbManager->TILBrminimal() */ *Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double NegRminCrack = rMinE4neg*GeoModelKernelUnits::cm; + double NegRminCrack = rMinE4neg*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); double NegRminExt = RInMin[2]; @@ -499,7 +496,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) << " NegRmaxTotal = " << NegRmaxTotal << endmsg; - GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(PhiMin[2]*GeoModelKernelUnits::deg, PhiMax[2]*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(PhiMin[2]*Gaudi::Units::deg, PhiMax[2]*Gaudi::Units::deg); // Negative Endcap tileEnvPconeNegEndcap->addPlane(-NegEndExtBarrelFinger, EFingerRmin, NegRmaxTotal); @@ -529,8 +526,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); - sectionBuilder->setBarrelPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*GeoModelKernelUnits::cm); - sectionBuilder->setBarrelGlue(dzGlue*GeoModelKernelUnits::cm); + sectionBuilder->setBarrelPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*Gaudi::Units::cm); + sectionBuilder->setBarrelGlue(dzGlue*Gaudi::Units::cm); // Ext barrel part dbManager->SetCurrentSectionByNumber(2); @@ -538,7 +535,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); - sectionBuilder->setExtendedPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*GeoModelKernelUnits::cm); + sectionBuilder->setExtendedPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*Gaudi::Units::cm); } GeoPhysVol *pvBarrelMother{nullptr}, *pvFingerMotherNeg{nullptr}, *pvFingerMotherPos{nullptr}, @@ -774,8 +771,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) // nominal position of end plate zEndSection = ZLength[1]/2 - BFingerLength; - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, zEndSection, AnglMin, AnglMax); @@ -786,13 +783,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Barrel envelope parameters: " << " Length=" << zEndSection - << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm - << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm + << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm + << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm << endmsg; // Envelopes for two barrel fingers, positive finger GeoTubs* fingerMotherPos = new GeoTubs(BFingerRmin, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, BFingerLengthPos/2, AnglMin, AnglMax); @@ -812,7 +809,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Negative finger GeoTubs* fingerMotherNeg = new GeoTubs(BFingerRmin, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, BFingerLengthNeg/2, AnglMin, AnglMax); @@ -822,7 +819,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: " << " length Pos/Neg=" << BFingerLengthPos << "/" << BFingerLengthNeg - << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm + << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm << endmsg; // Envelopes for two barrel saddle supports, positive @@ -840,15 +837,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 3) { if(m_log->level()<=MSG::DEBUG) - (*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2<< endmsg; + (*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2<< endmsg; checking("EBarrel (+)", false, 0, - dbManager->GetEnvRin()*GeoModelKernelUnits::cm,dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - AnglMin,AnglMax,(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2); + dbManager->GetEnvRin()*Gaudi::Units::cm,dbManager->GetEnvRout()*Gaudi::Units::cm, + AnglMin,AnglMax,(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2); - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, + (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2, AnglMin, AnglMax); GeoTubs* ebarrelMotherPos = GeneralMother; @@ -857,18 +854,18 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: " - << " length=" << (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLength) - << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm - << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm + << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength) + << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm + << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm << endmsg; // Envelope for finger separately checking("EBarrel (+)", false, 0, - EFingerRmin,dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + EFingerRmin,dbManager->GetEnvRout()*Gaudi::Units::cm, AnglMin,AnglMax, EBFingerLength/2); GeoTubs* fingerMother = new GeoTubs(EFingerRmin, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, EBFingerLength/2, AnglMin, AnglMax); @@ -879,7 +876,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: " << " length=" << EBFingerLength << " Rmin=" << EFingerRmin - << " Rmax=" << (dbManager->GetEnvRout())*GeoModelKernelUnits::cm + << " Rmax=" << (dbManager->GetEnvRout())*Gaudi::Units::cm << endmsg; if (dbManager->BoolSaddle()) @@ -900,11 +897,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Negative Ext.Barrel if(EnvType == 2) { if(m_log->level()<=MSG::DEBUG) - (*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2<< endmsg; + (*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2<< endmsg; - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, + (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2, AnglMin, AnglMax); GeoTubs* ebarrelMotherNeg = GeneralMother; @@ -913,14 +910,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Nevative ext.barrel envelope parameters: " - << " length=" << (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLength) - << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm - << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm + << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength) + << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm + << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm << endmsg; // Envelope for finger separately GeoTubs* fingerMother = new GeoTubs(EFingerRmin, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, EBFingerLengthNeg/2, AnglMin, AnglMax); @@ -931,7 +928,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG <<"Negative ext.barrel finger envelope parameters: " << " length=" << EBFingerLengthNeg << " Rmin=" << EFingerRmin - << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm + << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm << endmsg; if (dbManager->BoolSaddle()) @@ -965,27 +962,27 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC1 = dbManager->TILBdzmodul(); (*m_log) << MSG::INFO << " Positive ITC envelope parameters: PLUG1 " - <<" Rmin= "<<rMinITC1*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC1*GeoModelKernelUnits::cm<<" dzITC1= "<<dzITC1/2*GeoModelKernelUnits::cm<< endmsg; + <<" Rmin= "<<rMinITC1*Gaudi::Units::cm<<" Rmax= "<<rMaxITC1*Gaudi::Units::cm<<" dzITC1= "<<dzITC1/2*Gaudi::Units::cm<< endmsg; (*m_log) << MSG::INFO << " PLUG2 " - <<" Rmin= "<<rMinITC2*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC2*GeoModelKernelUnits::cm<<" dzITC2= "<<dzITC2/2*GeoModelKernelUnits::cm<< endmsg; + <<" Rmin= "<<rMinITC2*Gaudi::Units::cm<<" Rmax= "<<rMaxITC2*Gaudi::Units::cm<<" dzITC2= "<<dzITC2/2*Gaudi::Units::cm<< endmsg; checking("ITC itcWheel1 (+)", false, 0, - rMinITC1*GeoModelKernelUnits::cm,rMaxITC1*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC1/2*GeoModelKernelUnits::cm); + rMinITC1*Gaudi::Units::cm,rMaxITC1*Gaudi::Units::cm, AnglMin,AnglMax, dzITC1/2*Gaudi::Units::cm); - GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*GeoModelKernelUnits::cm, - rMaxITC1*GeoModelKernelUnits::cm, - dzITC1/2*GeoModelKernelUnits::cm, + GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*Gaudi::Units::cm, + rMaxITC1*Gaudi::Units::cm, + dzITC1/2*Gaudi::Units::cm, AnglMin, AnglMax); checking("ITC itcWheel2 (+)", false, 0, - rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC2/2*GeoModelKernelUnits::cm); + rMinITC2*Gaudi::Units::cm,rMaxITC2*Gaudi::Units::cm, AnglMin,AnglMax, dzITC2/2*Gaudi::Units::cm); - GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*GeoModelKernelUnits::cm, - rMaxITC2*GeoModelKernelUnits::cm, - dzITC2/2*GeoModelKernelUnits::cm, + GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*Gaudi::Units::cm, + rMaxITC2*Gaudi::Units::cm, + dzITC2/2*Gaudi::Units::cm, AnglMin, AnglMax); - Z = ( dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + Z = ( dzITC1 - dzITC2)/2*Gaudi::Units::cm; GeoTrf::Translate3D itcWheel2OffsetPos(0.,0., Z); zITCStandard = Z; @@ -999,13 +996,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); checking("Gap (+)", false, 0, - dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); + dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm); - GeoTubs* GapMotherPos = new GeoTubs(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, + GeoTubs* GapMotherPos = new GeoTubs(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2*Gaudi::Units::cm, AnglMin, AnglMax); GeoLogVol* lvGapMotherPos = new GeoLogVol("Gap",GapMotherPos,matAir); @@ -1015,13 +1012,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); checking("Crack (+)", spE4, 0, - rMinE4pos*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); + rMinE4pos*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm); - GeoTubs* crackMotherPos = new GeoTubs(rMinE4pos*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, + GeoTubs* crackMotherPos = new GeoTubs(rMinE4pos*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2*Gaudi::Units::cm, AnglMin, AnglMax); GeoLogVol* lvCrackMotherPos = new GeoLogVol("Crack",crackMotherPos,matAir); @@ -1044,27 +1041,27 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC1 = dbManager->TILBdzmodul(); (*m_log) << MSG::INFO << " Negative ITC envelope parameters: PLUG1 " - <<" Rmin= "<<rMinITC1*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC1*GeoModelKernelUnits::cm<<" dzITC1= "<<dzITC1/2*GeoModelKernelUnits::cm<<endmsg; + <<" Rmin= "<<rMinITC1*Gaudi::Units::cm<<" Rmax= "<<rMaxITC1*Gaudi::Units::cm<<" dzITC1= "<<dzITC1/2*Gaudi::Units::cm<<endmsg; (*m_log) << MSG::INFO << " PLUG2 " - <<" Rmin= "<<rMinITC2*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC2*GeoModelKernelUnits::cm<<" dzITC2= "<<dzITC2/2*GeoModelKernelUnits::cm<<endmsg; + <<" Rmin= "<<rMinITC2*Gaudi::Units::cm<<" Rmax= "<<rMaxITC2*Gaudi::Units::cm<<" dzITC2= "<<dzITC2/2*Gaudi::Units::cm<<endmsg; checking("ITC itcWheel1 (-)", false, 0, - rMinITC1*GeoModelKernelUnits::cm,rMaxITC1*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC1/2*GeoModelKernelUnits::cm); + rMinITC1*Gaudi::Units::cm,rMaxITC1*Gaudi::Units::cm, AnglMin,AnglMax, dzITC1/2*Gaudi::Units::cm); - GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*GeoModelKernelUnits::cm, - rMaxITC1*GeoModelKernelUnits::cm, - dzITC1/2*GeoModelKernelUnits::cm, + GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*Gaudi::Units::cm, + rMaxITC1*Gaudi::Units::cm, + dzITC1/2*Gaudi::Units::cm, AnglMin, AnglMax); checking("ITC itcWheel2 (-)", false, 0, - rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC2/2*GeoModelKernelUnits::cm); + rMinITC2*Gaudi::Units::cm,rMaxITC2*Gaudi::Units::cm, AnglMin,AnglMax, dzITC2/2*Gaudi::Units::cm); - GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*GeoModelKernelUnits::cm, - rMaxITC2*GeoModelKernelUnits::cm, - dzITC2/2*GeoModelKernelUnits::cm, + GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*Gaudi::Units::cm, + rMaxITC2*Gaudi::Units::cm, + dzITC2/2*Gaudi::Units::cm, AnglMin, AnglMax); - Z = (-dzITC1 + dzITC2)/2*GeoModelKernelUnits::cm; + Z = (-dzITC1 + dzITC2)/2*Gaudi::Units::cm; GeoTrf::Translate3D itcWheel2OffsetNeg(0.,0., Z); zITCStandard = Z; @@ -1078,13 +1075,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); checking("Gap (-)", false, 1, - dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); + dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm); - GeoTubs* GapMotherNeg = new GeoTubs(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, + GeoTubs* GapMotherNeg = new GeoTubs(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2*Gaudi::Units::cm, AnglMin, AnglMax); GeoLogVol* lvGapMotherNeg = new GeoLogVol("Gap",GapMotherNeg,matAir); @@ -1094,13 +1091,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); checking("Crack (-)", spE4, 0, - rMinE4neg*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); + rMinE4neg*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm); - GeoTubs* crackMotherNeg = new GeoTubs(rMinE4neg*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, + GeoTubs* crackMotherNeg = new GeoTubs(rMinE4neg*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2*Gaudi::Units::cm, AnglMin, AnglMax); GeoLogVol* lvCrackMotherNeg = new GeoLogVol("Crack",crackMotherNeg,matAir); @@ -1119,9 +1116,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) // the main loop around all phi modules position int ModuleNcp =0; - GeoTransform* yrotMod = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); + GeoTransform* yrotMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg)); yrotMod->ref(); - GeoTransform* XYrtMod = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); + GeoTransform* XYrtMod = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg) * GeoTrf::RotateY3D(90*Gaudi::Units::deg)); XYrtMod->ref(); for(int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++){ @@ -1132,9 +1129,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) double phi = (double(ModuleNcp-1) + 0.5)*deltaPhi; double ph1 = (double(ModuleNcp-1))*deltaPhi; - GeoTransform* zrotMod = new GeoTransform(GeoTrf::RotateZ3D(phi*GeoModelKernelUnits::deg)); + GeoTransform* zrotMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg)); zrotMod->ref(); - GeoTransform* zrotSaddle = new GeoTransform(GeoTrf::RotateZ3D(ph1*GeoModelKernelUnits::deg)); + GeoTransform* zrotSaddle = new GeoTransform(GeoTrf::RotateZ3D(ph1*Gaudi::Units::deg)); zrotSaddle->ref(); dbManager->SetCurrentModuleByIndex(ModuleNcp-1); @@ -1161,10 +1158,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) @@ -1189,7 +1186,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } GeoTransform* xtraMod = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm)); pvBarrelMother->add(zrotMod); pvBarrelMother->add(xtraMod); @@ -1203,9 +1200,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(1); // Barrel finger zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg)*GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg)*GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm; // Finger Positive, positioning (only Left ModFingpattern == 10) if ( ModFingpattern != 10 ) { @@ -1225,9 +1222,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - BFingerLengthPos*(1./GeoModelKernelUnits::cm)); + BFingerLengthPos*(1./Gaudi::Units::cm)); - GeoTransform* xtraModFingerPos = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); + GeoTransform* xtraModFingerPos = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm)); //(*m_log) << MSG::DEBUG << "R Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg; @@ -1258,9 +1255,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp*100, - BFingerLengthNeg*(1./GeoModelKernelUnits::cm)); + BFingerLengthNeg*(1./Gaudi::Units::cm)); - GeoTransform* xtraModFingerNeg = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); + GeoTransform* xtraModFingerNeg = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm)); // (*m_log) << MSG::DEBUG << "L Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg; @@ -1279,7 +1276,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*GeoModelKernelUnits::deg); + 0.,deltaPhi*Gaudi::Units::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1302,16 +1299,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); // Mother module - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.* dbManager->TILBnperiod()); - double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; + double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm; checking("EBarrelModule (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1336,18 +1333,18 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; - double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*Gaudi::Units::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2; PoZ2 = PoZ1 + modl_length/4; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::Translate3D(-PoZ2,0.,-PosY); if (ModuleNcp>=60 && ModuleNcp<=62) { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut); // Cuting of module (Left) @@ -1358,8 +1355,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } else if (ModuleNcp>=35 && ModuleNcp<=37) { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg); // Cuting of module (Right) const GeoShape& TmR_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2). @@ -1405,13 +1402,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; double PoZ2 =0, PoZ1 =0; - double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2; PoZ2 = modl_length/4 + PoZ1; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::Translate3D(-PoZ2,0.,-PosY); // Cuting of pvEBarrelModuleMotherPos (-) @@ -1422,7 +1419,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (ModuleNcp>=60 && ModuleNcp<=62) { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut); // Cuting of pvEBarrelModuleMotherPos (Left) @@ -1435,8 +1432,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } else if (ModuleNcp>=35 && ModuleNcp<=37) { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg); // Cuting of pvEBarrelModuleMotherPos (Right) GeoCutVolAction action3(*CutB, TransCutR); @@ -1459,10 +1456,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(2); //barrel efinger (small) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("EFingerModule (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1486,7 +1483,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) ModuleNcp); } GeoTransform* xtraModFingerPos = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); + (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm)); pvEFingerMotherPos->add(zrotMod); pvEFingerMotherPos->add(xtraModFingerPos); pvEFingerMotherPos->add(XYrtMod); @@ -1501,7 +1498,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*GeoModelKernelUnits::deg); + 0.,deltaPhi*Gaudi::Units::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1521,16 +1518,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); // Mother module - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); - double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; + double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm; checking("EBarrelModule (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1555,19 +1552,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; - double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2; PoZ2 = PoZ1 + modl_length/4; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateX3D((phi-90)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::Translate3D(-PoZ2,0,-PosY); if (ModuleNcp>=60 && ModuleNcp<=62) { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg) * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut); // Cuting of module (Left) @@ -1578,8 +1575,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } else if (ModuleNcp>=35 && ModuleNcp<=37) { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg); // Cuting of module (Right) const GeoShape& TmR_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2). @@ -1625,14 +1622,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; double PoZ2 =0, PoZ1 =0; - double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2; PoZ2 = modl_length/4 + PoZ1; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateX3D((phi-90)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::Translate3D(-PoZ2,0.,-PosY); // Cuting of pvEBarrelModuleMotherNeg (-) @@ -1643,7 +1640,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (ModuleNcp>=60 && ModuleNcp<=62) { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg) * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut); // Cuting of pvEBarrelModuleMotherNeg (Left) @@ -1656,8 +1653,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } else if (ModuleNcp>=35 && ModuleNcp<=37) { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg); // Cuting of pvEBarrelModuleMotherNeg (Right) GeoCutVolAction action3(*CutB, TransCutR); @@ -1681,10 +1678,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) //zEndSection = extOffset + dbManager->TILBdzmodul()/2 + dbManager->TILEzshift(); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("EFingerModule (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1708,7 +1705,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) ModuleNcp*100); } GeoTransform* xtraModFingerNeg = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); + (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm)); pvEFingerMotherNeg->add(zrotMod); pvEFingerMotherNeg->add(xtraModFingerNeg); pvEFingerMotherNeg->add(yrotMod); @@ -1723,7 +1720,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*GeoModelKernelUnits::deg); + 0.,deltaPhi*Gaudi::Units::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1779,7 +1776,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } } else { (*m_log) << MSG::INFO <<" D4 unavailable "<<endmsg; - dzITC1 = 9.485; //sb [GeoModelKernelUnits::cm] + dzITC1 = 9.485; //sb [Gaudi::Units::cm] } bool specialC10 = (Ifd4 && Ifc10 && rMaxITC2 < rMinITC1); @@ -1794,10 +1791,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (Ifd4 || Ifc10) { // The first sub shape - thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC1 - rMinITC1) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC1 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("ITCModule tcModuleSub1Neg (-) ", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1808,10 +1805,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2); // The second sub shape - thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC2 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("ITCModule itcModuleSub2Neg (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1822,8 +1819,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2 ); - X = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; - Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*GeoModelKernelUnits::cm; + X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; + Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Negative, position X= "<<X<<" Z= "<<Z<< endmsg; @@ -1843,10 +1840,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // The D4, PLUG1 dbManager->SetCurrentSectionByNumber(Id4); - thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC1 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; // ps changes dzITC1 -> dzmodul Glue = dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2(); NbPeriod = dbManager->TILBnperiod(); @@ -1883,7 +1880,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) heightWedgeMother/2); //Second submother for frontplate double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * GeoModelKernelUnits::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) if (specialC10) (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg; @@ -1891,9 +1888,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoLogVol *lvPlug1ModuleMotherNeg=0; if (thicknessWedgeMother > rless) { - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("Plug1Module plug2SubMotherNeg (-)", false, 2, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1904,8 +1901,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2); - GeoTrf::Translate3D plug1SubOffsetNeg(-dzITC2Bis*GeoModelKernelUnits::cm/2, 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2); + GeoTrf::Translate3D plug1SubOffsetNeg(-dzITC2Bis*Gaudi::Units::cm/2, 0., + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2); const GeoShapeUnion& plug1ModuleMotherNeg = plug1SubMotherNeg->add(*plug2SubMotherNeg<<plug1SubOffsetNeg); @@ -1928,7 +1925,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC2Bis); } - Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2; + Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2; GeoTransform* tfPlug1ModuleMotherNeg = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z)); pvITCModuleMotherNeg->add(tfPlug1ModuleMotherNeg); @@ -1940,10 +1937,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // TILE_PLUG2 dbManager->SetCurrentSectionByNumber(Ic10); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; if (dbManager->TILBnperiod() > 1) { dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() @@ -1986,12 +1983,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) double zShift = 0; NbPeriod = dbManager->TILBnperiod(); - // Z = (dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm; + // Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm; // ps Zshift calculated from length of volumes rather than modules (account for special modules) // - Z = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; - if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./GeoModelKernelUnits::cm); + if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Negative, position X= "<<X<<" Z= "<<Z @@ -1999,8 +1996,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) <<endmsg; GeoTransform* xtraITCNeg = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); - GeoTransform* ztraITCNeg = new GeoTransform(GeoTrf::TranslateZ3D(zShift*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); + GeoTransform* ztraITCNeg = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm)); pvITCMotherNeg->add(zrotMod); pvITCMotherNeg->add(xtraITCNeg); @@ -2019,10 +2016,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Igap); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0.; @@ -2049,7 +2046,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Module position inside mother GeoTransform* xtraGapNeg = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); pvGapMotherNeg->add(zrotMod); pvGapMotherNeg->add(xtraGapNeg); pvGapMotherNeg->add(yrotMod); @@ -2065,10 +2062,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Icrack); // mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0.; @@ -2094,7 +2091,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } // Module position inside mother GeoTransform* xtraCrackNeg = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); pvCrackMotherNeg->add(zrotMod); pvCrackMotherNeg->add(xtraCrackNeg); pvCrackMotherNeg->add(yrotMod); @@ -2112,10 +2109,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(Ifd4 || Ifc10) { // The first sub shape - thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC1 - rMinITC1) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC1 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("ITCModule itcModuleSub2Pos (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2126,10 +2123,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); // The second sub shape - thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC2 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("ITCModule itcModuleSub2Pos (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2140,8 +2137,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); - X = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; - Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*GeoModelKernelUnits::cm; + X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; + Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Positive, position X= "<<X<<" Z= "<<Z<< endmsg; @@ -2161,10 +2158,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // The D4, PLUG1 dbManager->SetCurrentSectionByNumber(Id4); - thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC1 * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm; // ps changes dzITC1 -> dzmodul Glue = dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2(); @@ -2204,7 +2201,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) //Second submother C10, PLUG2 double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * GeoModelKernelUnits::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) if (specialC10) (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg; @@ -2212,9 +2209,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoLogVol *lvPlug1ModuleMotherPos=0; if (thicknessWedgeMother > rless) { - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; checking("Plug1Module plug2SubMotherPos (+)", false, 2, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2225,8 +2222,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); - GeoTrf::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*GeoModelKernelUnits::cm, 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*GeoModelKernelUnits::cm); + GeoTrf::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*Gaudi::Units::cm, 0., + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*Gaudi::Units::cm); const GeoShapeUnion& plug1ModuleMotherPos = plug1SubMotherPos->add(*plug2SubMotherPos<<plug1SubOffsetPos); @@ -2248,7 +2245,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC2Bis); } - Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2; + Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2; GeoTransform* tfPlug1ModuleMotherPos = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z)); pvITCModuleMotherPos->add(tfPlug1ModuleMotherPos); @@ -2260,10 +2257,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // TILE_PLUG2, C10 dbManager->SetCurrentSectionByNumber(Ic10); - thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC2 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; if (dbManager->TILBnperiod() > 1) { dzGlue = (dzITC2 - dbManager->TILBdzend1() - dbManager->TILBdzend2() @@ -2306,10 +2303,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) double zShift = 0; NbPeriod = dbManager->TILBnperiod(); - //ps Z = (dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm; - Z = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + //ps Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm; + Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; - if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./GeoModelKernelUnits::cm); + if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Positive, position X= "<<X<<" Z= "<<Z @@ -2317,8 +2314,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) <<endmsg; GeoTransform* xtraITCPos = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); - GeoTransform* ztraITCPos = new GeoTransform(GeoTrf::TranslateZ3D(zShift*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); + GeoTransform* ztraITCPos = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm)); pvITCMotherPos->add(zrotMod); pvITCMotherPos->add(xtraITCPos); @@ -2338,10 +2335,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Igap); // Mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0; @@ -2368,7 +2365,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Module position inside mother GeoTransform* xtraGapPos = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); pvGapMotherPos->add(zrotMod); pvGapMotherPos->add(xtraGapPos); pvGapMotherPos->add(XYrtMod); @@ -2384,10 +2381,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Icrack); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0.; @@ -2414,7 +2411,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Module position inside mother GeoTransform* xtraCrackPos = new GeoTransform(GeoTrf::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm)); pvCrackMotherPos->add(zrotMod); pvCrackMotherPos->add(xtraCrackPos); pvCrackMotherPos->add(XYrtMod); @@ -2456,9 +2453,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) // consider 3 options - with/without ext.barrels and take into account DZ correction ztrans = 0; - tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning barrel with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning barrel with translation "<<ztrans*Gaudi::Units::cm<< endmsg; GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); @@ -2468,11 +2465,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTransform* tfFingerMotherPos; - ztrans = (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 - BFingerLengthPos/2 + PosDelta)*(1./GeoModelKernelUnits::cm); + ztrans = (dbManager->GetEnvZLength()*Gaudi::Units::cm/2 - BFingerLengthPos/2 + PosDelta)*(1./Gaudi::Units::cm); - tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning positive barrel finger with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning positive barrel finger with translation "<<ztrans*Gaudi::Units::cm<< endmsg; GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); @@ -2483,9 +2480,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (dbManager->BoolSaddle()) { GeoTransform* tfSaddleMotherPos; - ztrans = (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 - BFingerLengthPos + DzSaddleSupport/2 + PosDelta)*(1./GeoModelKernelUnits::cm); + ztrans = (dbManager->GetEnvZLength()*Gaudi::Units::cm/2 - BFingerLengthPos + DzSaddleSupport/2 + PosDelta)*(1./Gaudi::Units::cm); - tfSaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfSaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); GeoNameTag* ntSaddleMotherPos = new GeoNameTag("TileSaddlePos"); @@ -2498,11 +2495,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTransform* tfFingerMotherNeg; - ztrans = (-dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 + BFingerLengthNeg/2 - NegDelta)*(1./GeoModelKernelUnits::cm); + ztrans = (-dbManager->GetEnvZLength()*Gaudi::Units::cm/2 + BFingerLengthNeg/2 - NegDelta)*(1./Gaudi::Units::cm); - tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning negative barrel finger with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning negative barrel finger with translation "<<ztrans*Gaudi::Units::cm<< endmsg; GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); pvTileEnvelopeBarrel->add(tfFingerMotherNeg); @@ -2512,9 +2509,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (dbManager->BoolSaddle()) { GeoTransform* tfSaddleMotherNeg; - ztrans = (-dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 + BFingerLengthNeg - DzSaddleSupport/2 - NegDelta)*(1./GeoModelKernelUnits::cm); + ztrans = (-dbManager->GetEnvZLength()*Gaudi::Units::cm/2 + BFingerLengthNeg - DzSaddleSupport/2 - NegDelta)*(1./Gaudi::Units::cm); - tfSaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfSaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); GeoNameTag* ntSaddleMotherNeg = new GeoNameTag("TileSaddleNeg"); @@ -2530,9 +2527,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm; - double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; + double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2; double PoZ2 = modl_length/4 + PoZ1; //-------------------------------------------------------------------------------------------------------------- @@ -2547,14 +2544,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron1: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIron1); pvEBarrelMotherPos->add(new GeoIdentifierTag(1)); pvEBarrelMotherPos->add(pvIron1); - tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherPos->add(tfIron1); pvEBarrelMotherPos->add(pvIron1); @@ -2565,14 +2562,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron2: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) - * GeoTrf::RotateZ3D(-84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIron2); pvEBarrelMotherPos->add(new GeoIdentifierTag(2)); pvEBarrelMotherPos->add(pvIron2); - tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) - * GeoTrf::RotateZ3D(84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIron2); pvEBarrelMotherPos->add(pvIron2); @@ -2583,14 +2580,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron3: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIron3); pvEBarrelMotherPos->add(new GeoIdentifierTag(3)); pvEBarrelMotherPos->add(pvIron3); - tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherPos->add(tfIron3); pvEBarrelMotherPos->add(pvIron3); @@ -2599,14 +2596,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIrBoxL); pvEBarrelMotherPos->add(new GeoIdentifierTag(4)); pvEBarrelMotherPos->add(pvIrBox); - GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherPos->add(tfIrBoxR); pvEBarrelMotherPos->add(pvIrBox); @@ -2617,16 +2614,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " IrUp: " <<dxIr<< " " <<dyIr<< endmsg; - GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIrUp); pvEBarrelMotherPos->add(new GeoIdentifierTag(5)); pvEBarrelMotherPos->add(pvIrUp); - tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,-PoZ1) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherPos->add(tfIrUp); pvEBarrelMotherPos->add(pvIrUp); @@ -2637,16 +2634,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " IrDw: " <<dxIr<< " " <<dyIr<< endmsg; - GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * GeoTrf::RotateZ3D(70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIrDw); pvEBarrelMotherPos->add(new GeoIdentifierTag(6)); pvEBarrelMotherPos->add(pvIrDw); - tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * GeoTrf::RotateZ3D(-70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherPos->add(tfIrDw); pvEBarrelMotherPos->add(pvIrDw); @@ -2654,12 +2651,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) } //-------------------------------------------------------------------------------------------------------------- // Ext.Barrel - ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm - EBFingerLengthPos)/2 + 19.5)*(1./GeoModelKernelUnits::cm); + ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*Gaudi::Units::cm - EBFingerLengthPos)/2 + 19.5)*(1./Gaudi::Units::cm); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*GeoModelKernelUnits::cm << endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*Gaudi::Units::cm << endmsg; // GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("EBarrelPos"); @@ -2671,12 +2668,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //-------------------------------------------------------------------------------------------------------------- // Finger - ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./GeoModelKernelUnits::cm); + ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./Gaudi::Units::cm); - GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel finger with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel finger with translation ztrans= "<<ztrans*Gaudi::Units::cm<<endmsg; GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos"); @@ -2687,12 +2684,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //-------------------------------------------------------------------------------------------------------------- // Ext. Saddle Support if (dbManager->BoolSaddle()) - { ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./GeoModelKernelUnits::cm); + { ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./Gaudi::Units::cm); - GeoTransform* tfESaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfESaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel saddle with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel saddle with translation ztrans= "<<ztrans*Gaudi::Units::cm << endmsg; GeoNameTag* ntESaddleMotherPos = new GeoNameTag("TileESaddlePos"); @@ -2710,9 +2707,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm; - double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2; + double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2; double PoZ2 = modl_length/4 + PoZ1; //*>------------------------------------------------------------------------------------------------------ @@ -2724,14 +2721,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIron1); pvEBarrelMotherNeg->add(new GeoIdentifierTag(1)); pvEBarrelMotherNeg->add(pvIron1); - tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherNeg->add(tfIron1); pvEBarrelMotherNeg->add(new GeoIdentifierTag(2)); pvEBarrelMotherNeg->add(pvIron1); @@ -2741,14 +2738,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) - * GeoTrf::RotateZ3D(-84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIron2); pvEBarrelMotherNeg->add(new GeoIdentifierTag(2)); pvEBarrelMotherNeg->add(pvIron2); - tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) - * GeoTrf::RotateZ3D(84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIron2); pvEBarrelMotherNeg->add(pvIron2); @@ -2757,14 +2754,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIron3); pvEBarrelMotherNeg->add(new GeoIdentifierTag(3)); pvEBarrelMotherNeg->add(pvIron3); - tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherNeg->add(tfIron3); pvEBarrelMotherNeg->add(pvIron3); @@ -2772,14 +2769,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>> dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIrBoxL); pvEBarrelMotherNeg->add(new GeoIdentifierTag(4)); pvEBarrelMotherNeg->add(pvIrBox); - GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) *GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) - * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherNeg->add(tfIrBoxR); pvEBarrelMotherNeg->add(pvIrBox); @@ -2788,16 +2785,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIr = dbManager->CutsXpos(); dyIr = dbManager->CutsYpos(); - GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIrUp); pvEBarrelMotherNeg->add(new GeoIdentifierTag(5)); pvEBarrelMotherNeg->add(pvIrUp); - tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,PoZ1) - * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right + * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right pvEBarrelMotherNeg->add(tfIrUp); pvEBarrelMotherNeg->add(pvIrUp); @@ -2806,16 +2803,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIr = dbManager->CutsXpos(); dyIr = dbManager->CutsYpos(); - GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * GeoTrf::RotateZ3D(70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIrDw); pvEBarrelMotherNeg->add(new GeoIdentifierTag(6)); pvEBarrelMotherNeg->add(pvIrDw); - tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * GeoTrf::RotateZ3D(-70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left + * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left pvEBarrelMotherNeg->add(tfIrDw); pvEBarrelMotherNeg->add(pvIrDw); @@ -2824,12 +2821,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // //*>------------------------------------------------------------------------------------------------------ // Ext.Barrel - ztrans = (-NegEndCrack - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm - EBFingerLengthNeg)/2 - 19.5)*(1./GeoModelKernelUnits::cm); + ztrans = (-NegEndCrack - (dbManager->GetEnvZLength()*Gaudi::Units::cm - EBFingerLengthNeg)/2 - 19.5)*(1./Gaudi::Units::cm); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel with translation ztrans "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel with translation ztrans "<<ztrans*Gaudi::Units::cm<<endmsg; GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("EBarrelNeg"); @@ -2840,12 +2837,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //*>------------------------------------------------------------------------------------------------------ // Finger - ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./GeoModelKernelUnits::cm); + ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./Gaudi::Units::cm); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel finger with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel finger with translation ztrans= "<<ztrans*Gaudi::Units::cm<< endmsg; GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg"); @@ -2856,12 +2853,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //*>------------------------------------------------------------------------------------------------------ // Ext. Saddle Support if (dbManager->BoolSaddle()) - { ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./GeoModelKernelUnits::cm); + { ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./Gaudi::Units::cm); - GeoTransform* tfESaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfESaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel saddle with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel saddle with translation ztrans= "<<ztrans*Gaudi::Units::cm << endmsg; GeoNameTag* ntESaddleMotherNeg = new GeoNameTag("TileESaddleNeg"); @@ -2880,15 +2877,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - ztrans = PosEndBarrelFinger*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosEndBarrelFinger*(1./Gaudi::Units::cm) + dbManager->TILBdzmodul()/2; - //std::cout <<" ztrans "<<ztrans<<" PosEndBarrelFinger/GeoModelKernelUnits::cm "<<PosEndBarrelFinger/GeoModelKernelUnits::cm - // <<" dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm"<<dbManager->TILBdzmodul()/2<<"\n"; + //std::cout <<" ztrans "<<ztrans<<" PosEndBarrelFinger/Gaudi::Units::cm "<<PosEndBarrelFinger/Gaudi::Units::cm + // <<" dbManager->TILBdzmodul()/2*Gaudi::Units::cm"<<dbManager->TILBdzmodul()/2<<"\n"; - (*m_log) << MSG::INFO <<" Positioning positive ITC with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ITC with translation "<<ztrans*Gaudi::Units::cm<< endmsg; - GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); GeoNameTag* ntITCMotherPos = new GeoNameTag("ITCPos"); @@ -2897,12 +2894,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvTileEnvelopePosEndcap->add(pvITCMotherPos); dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - ztrans = PosBeginGap*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosBeginGap*(1./Gaudi::Units::cm) + dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning positive Gap with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive Gap with translation "<<ztrans*Gaudi::Units::cm<<endmsg; - GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); GeoNameTag* ntGapMotherPos = new GeoNameTag("GapPos"); @@ -2912,12 +2909,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Crack dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - ztrans = PosBeginCrack*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosBeginCrack*(1./Gaudi::Units::cm) + dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning positive Crack with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive Crack with translation "<<ztrans*Gaudi::Units::cm<<endmsg; - GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); GeoNameTag* ntCrackMotherPos = new GeoNameTag("CrackPos"); @@ -2934,12 +2931,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 4) { dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - ztrans = -NegEndBarrelFinger*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegEndBarrelFinger*(1./Gaudi::Units::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative ITC with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ITC with translation "<<ztrans*Gaudi::Units::cm<<endmsg; - GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); GeoNameTag* ntITCMotherNeg = new GeoNameTag("ITCNeg"); @@ -2948,12 +2945,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvTileEnvelopeNegEndcap->add(pvITCMotherNeg); dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - ztrans = -NegBeginGap*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegBeginGap*(1./Gaudi::Units::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative Gap with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative Gap with translation "<<ztrans*Gaudi::Units::cm<<endmsg; - GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); GeoNameTag* ntGapMotherNeg = new GeoNameTag("GapNeg"); @@ -2963,12 +2960,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Crack dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - ztrans = -NegBeginCrack*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegBeginCrack*(1./Gaudi::Units::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative Crack with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative Crack with translation "<<ztrans*Gaudi::Units::cm<<endmsg; - GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* - GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); + GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg)); GeoNameTag* ntCrackMotherNeg = new GeoNameTag("CrackNeg"); @@ -2994,13 +2991,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentEnvByIndex(EnvCounter); int EnvType = dbManager->GetEnvType(); int NumberOfMod = dbManager->GetEnvNModules(); - double Zshift = dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + double Zshift = dbManager->GetEnvZShift()*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " EnvCounter is " << EnvCounter << " EnvType is " << EnvType - << " Zshift is " << Zshift*(1./GeoModelKernelUnits::cm) << " cm" + << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm" << endmsg; // Central barrel @@ -3052,13 +3049,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* barrelTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") GeoModelKernelUnits::cm" << endmsg; + << ") Gaudi::Units::cm" << endmsg; world->add(barrelTT); world->add(pvTileEnvelopeBarrel); @@ -3074,13 +3071,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* posEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of positive ext.barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") GeoModelKernelUnits::cm" << endmsg; + << ") Gaudi::Units::cm" << endmsg; world->add(posEcTT); world->add(pvTileEnvelopePosEndcap); @@ -3096,13 +3093,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* negEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of negative ext.barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") GeoModelKernelUnits::cm" << endmsg; + << ") Gaudi::Units::cm" << endmsg; world->add(negEcTT); world->add(pvTileEnvelopeNegEndcap); diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx index 4764c9b6e233..9cda8c646078 100755 --- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx @@ -22,7 +22,6 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" @@ -33,6 +32,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include <stdexcept> #include <iostream> @@ -107,20 +107,20 @@ void TileDetectorFactory::create(GeoPhysVol *world) { // Z planes dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - double endCentralBarrel = dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm; + double endCentralBarrel = dbManager->TILBdzmodul()/2.*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - //sb double beginITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; + //sb double beginITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double beginITC2 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; + double beginITC2 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double beginCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; - double endCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; + double beginCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*Gaudi::Units::cm; + double endCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double endExtendedBarrel = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; - double endTile = dbManager->TILEzmam()*GeoModelKernelUnits::cm; + double endExtendedBarrel = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*Gaudi::Units::cm; + double endTile = dbManager->TILEzmam()*Gaudi::Units::cm; dbManager->SetCurrentTifg(1); - double endBarrelFinger = endCentralBarrel + dbManager->TIFGdz()*GeoModelKernelUnits::cm; + double endBarrelFinger = endCentralBarrel + dbManager->TIFGdz()*Gaudi::Units::cm; // Offsets /* sb @@ -132,23 +132,23 @@ void TileDetectorFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - double rminBarrel = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminBarrel = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double rminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminITC1 = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double rminITC = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminITC = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double rminCrack = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminCrack = dbManager->TILBrminimal()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double rminExtended = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; - double rminFinger = dbManager->TILBrmax()*GeoModelKernelUnits::cm; + double rminExtended = dbManager->TILBrminimal()*Gaudi::Units::cm; + double rminFinger = dbManager->TILBrmax()*Gaudi::Units::cm; // R maximal - double rmaxTotal = dbManager->TILErmam()*GeoModelKernelUnits::cm; + double rmaxTotal = dbManager->TILErmam()*Gaudi::Units::cm; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*GeoModelKernelUnits::deg); - GeoPcon* tileEnvPconePosEndcap = new GeoPcon(0, 360*GeoModelKernelUnits::deg); - GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*Gaudi::Units::deg); + GeoPcon* tileEnvPconePosEndcap = new GeoPcon(0, 360*Gaudi::Units::deg); + GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(0, 360*Gaudi::Units::deg); // Negative Endcap tileEnvPconeNegEndcap->addPlane(-endTile,rminFinger,rmaxTotal); @@ -209,17 +209,17 @@ void TileDetectorFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(1); // Z planes - double endCentralBarrel = dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm; - double endEnvelope = endCentralBarrel + dbManager->TIFGdz()*GeoModelKernelUnits::cm; + double endCentralBarrel = dbManager->TILBdzmodul()/2.*Gaudi::Units::cm; + double endEnvelope = endCentralBarrel + dbManager->TIFGdz()*Gaudi::Units::cm; // R minimals - double rminBarrel = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; - double rminFinger = dbManager->TILBrmax()*GeoModelKernelUnits::cm; + double rminBarrel = dbManager->TILBrminimal()*Gaudi::Units::cm; + double rminFinger = dbManager->TILBrmax()*Gaudi::Units::cm; // R maximal - double rmaxTotal = dbManager->TILErmam()*GeoModelKernelUnits::cm; + double rmaxTotal = dbManager->TILErmam()*Gaudi::Units::cm; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*Gaudi::Units::deg); tileEnvPconeBarrel->addPlane(-endEnvelope,rminFinger,rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminFinger,rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminBarrel,rmaxTotal); @@ -237,7 +237,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) double deltaPhi = 360./dbManager->TILEnmodul(); Variable varInd; - GENFUNCTION phiInd = deltaPhi*(varInd+0.5)*GeoModelKernelUnits::deg; + GENFUNCTION phiInd = deltaPhi*(varInd+0.5)*Gaudi::Units::deg; //------------------------------- B A R R E L -------------------------------------- // Tube - barrel mother @@ -245,18 +245,18 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL)) { - GeoTube* barrelMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILErmam()*GeoModelKernelUnits::cm, - dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); + GeoTube* barrelMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILErmam()*Gaudi::Units::cm, + dbManager->TILBdzmodul()/2.*Gaudi::Units::cm); GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir); GeoFullPhysVol* pvBarrelMother = new GeoFullPhysVol(lvBarrelMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); @@ -282,9 +282,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) { phi = j*deltaPhi; - GeoTransform* zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(phi*GeoModelKernelUnits::deg)); + GeoTransform* zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg)); GeoTransform* xtransMod = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2. * cm)); - GeoTransform* yrotateMod = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); + GeoTransform* yrotateMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg)); pvBarrelMother->add(zrotateMod); pvBarrelMother->add(xtransMod); @@ -294,7 +294,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) */ // --- Using the parameterization ----- - TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother, &xfBarrelModuleMother, dbManager->TILEnmodul()); @@ -314,7 +314,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(1); nModules=dbManager->GetEnvNModules(); - zShift=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + zShift=dbManager->GetEnvZShift()*Gaudi::Units::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_CENTRAL, @@ -369,19 +369,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL)) { - GeoTube* ebarrelMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILErmam()*GeoModelKernelUnits::cm, - dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); + GeoTube* ebarrelMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILErmam()*Gaudi::Units::cm, + dbManager->TILBdzmodul()/2.*Gaudi::Units::cm); GeoLogVol* lvEBarrelMother = new GeoLogVol("EBarrel",ebarrelMother,matAir); GeoFullPhysVol* pvEBarrelMotherPos = new GeoFullPhysVol(lvEBarrelMother); GeoFullPhysVol* pvEBarrelMotherNeg = new GeoFullPhysVol(lvEBarrelMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -403,8 +403,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMother, &xfEBarrelModuleMotherPos, @@ -422,14 +422,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvEBarrelMotherNeg->add(stEBarrelModuleMotherNeg); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("TileEBarrelPos"); pvTileEnvelopePosEndcap->add(tfEBarrelMotherPos); pvTileEnvelopePosEndcap->add(ntEBarrelMotherPos); pvTileEnvelopePosEndcap->add(pvEBarrelMotherPos); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("TileEBarrelNeg"); pvTileEnvelopeNegEndcap->add(tfEBarrelMotherNeg); pvTileEnvelopeNegEndcap->add(ntEBarrelMotherNeg); @@ -443,10 +443,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(2); nModulesNeg=dbManager->GetEnvNModules(); - zShiftNeg=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + zShiftNeg=dbManager->GetEnvZShift()*Gaudi::Units::cm; dbManager->SetCurrentEnvByType(3); nModulesPos=dbManager->GetEnvNModules(); - zShiftPos=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + zShiftPos=dbManager->GetEnvZShift()*Gaudi::Units::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_EXTENDED, @@ -456,7 +456,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) } else { nModulesPos=nModulesNeg=dbManager->TILEnmodul(); - zShiftPos=zShiftNeg=dbManager->TILEzshift()*GeoModelKernelUnits::cm; + zShiftPos=zShiftNeg=dbManager->TILEzshift()*Gaudi::Units::cm; // do not compute cell volumes for old setups (before DC3), // because cell-size table might be missing in DB } @@ -507,13 +507,13 @@ void TileDetectorFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTube* itcWheel1 = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILErmam()*GeoModelKernelUnits::cm, - dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); + GeoTube* itcWheel1 = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILErmam()*Gaudi::Units::cm, + dbManager->TILBdzmodul()/2.*Gaudi::Units::cm); - GeoTube* itcWheel2 = new GeoTube(rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm,dzITC2/2.*GeoModelKernelUnits::cm); - GeoTrf::Translate3D itcWheel2OffsetPos(0.,0.,(dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm); - GeoTrf::Translate3D itcWheel2OffsetNeg(0.,0.,(-dbManager->TILBdzmodul()+dzITC2)/2*GeoModelKernelUnits::cm); + GeoTube* itcWheel2 = new GeoTube(rMinITC2*Gaudi::Units::cm,rMaxITC2*Gaudi::Units::cm,dzITC2/2.*Gaudi::Units::cm); + GeoTrf::Translate3D itcWheel2OffsetPos(0.,0.,(dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm); + GeoTrf::Translate3D itcWheel2OffsetNeg(0.,0.,(-dbManager->TILBdzmodul()+dzITC2)/2*Gaudi::Units::cm); const GeoShapeUnion& itcMotherPos = itcWheel1->add(*itcWheel2<<itcWheel2OffsetPos); const GeoShapeUnion& itcMotherNeg = itcWheel1->add(*itcWheel2<<itcWheel2OffsetNeg); @@ -527,10 +527,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) // Common mother for ITC1/2 modules // -- first sub shape - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal()* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal()* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal()* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal()* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* itcModuleSub1 = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -539,10 +539,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) heightWedgeMother/2.); // -- second sub shape - thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC2* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = rMaxITC2* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dzITC2 * Gaudi::Units::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC2* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = rMaxITC2* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* itcModuleSub2 = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -550,9 +550,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2.); - GeoTrf::Translate3D itcModuleSubShift ((dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm, + GeoTrf::Translate3D itcModuleSubShift ((dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm, 0., - ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*GeoModelKernelUnits::cm); + ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*Gaudi::Units::cm); const GeoShapeUnion& itcModuleMother = itcModuleSub1->add(*itcModuleSub2<<itcModuleSubShift); @@ -565,10 +565,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -579,10 +579,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -590,9 +590,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2.); - GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -608,7 +608,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2.)); + (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2.)); pvITCModuleMother->add(tfPlug1ModuleMother); pvITCModuleMother->add(pvPlug1ModuleMother); @@ -616,10 +616,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); @@ -648,8 +648,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvITCModuleMother->add(pvPlug2ModuleMother); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMother, &xfITCModuleMotherPos, @@ -664,14 +664,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvITCMotherNeg->add(stITCModuleMotherNeg); - GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntITCMotherPos = new GeoNameTag("TileITCPos"); pvTileEnvelopePosEndcap->add(tfITCMotherPos); pvTileEnvelopePosEndcap->add(ntITCMotherPos); pvTileEnvelopePosEndcap->add(pvITCMotherPos); - GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntITCMotherNeg = new GeoNameTag("TileITCNeg"); pvTileEnvelopeNegEndcap->add(tfITCMotherNeg); pvTileEnvelopeNegEndcap->add(ntITCMotherNeg); @@ -682,19 +682,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3)) { - GeoTube* gapMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2.*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); + GeoTube* gapMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2.*Gaudi::Units::cm); GeoLogVol* lvGapMother = new GeoLogVol("Gap",gapMother,matAir); GeoFullPhysVol* pvGapMotherPos = new GeoFullPhysVol(lvGapMother); GeoFullPhysVol* pvGapMotherNeg = new GeoFullPhysVol(lvGapMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0.; @@ -716,8 +716,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfGapModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfGapModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfGapModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfGapModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stGapModuleMotherPos = new GeoSerialTransformer(pvGapModuleMother, &xfGapModuleMotherPos, @@ -732,14 +732,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvGapMotherNeg->add(stGapModuleMotherNeg); - GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntGapMotherPos = new GeoNameTag("TileGapPos"); pvTileEnvelopePosEndcap->add(tfGapMotherPos); pvTileEnvelopePosEndcap->add(ntGapMotherPos); pvTileEnvelopePosEndcap->add(pvGapMotherPos); - GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntGapMotherNeg = new GeoNameTag("TileGapNeg"); pvTileEnvelopeNegEndcap->add(tfGapMotherNeg); pvTileEnvelopeNegEndcap->add(ntGapMotherNeg); @@ -750,10 +750,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(4); nModulesNeg=dbManager->GetEnvNModules(); - zShiftNeg=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + zShiftNeg=dbManager->GetEnvZShift()*Gaudi::Units::cm; dbManager->SetCurrentEnvByType(5); nModulesPos=dbManager->GetEnvNModules(); - zShiftPos=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; + zShiftPos=dbManager->GetEnvZShift()*Gaudi::Units::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_GAP, @@ -763,7 +763,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) } else { nModulesPos=nModulesNeg=dbManager->TILEnmodul(); - zShiftPos=zShiftNeg=dbManager->TILEzshift()*GeoModelKernelUnits::cm; + zShiftPos=zShiftNeg=dbManager->TILEzshift()*Gaudi::Units::cm; // do not compute cell volumes for old setups (before DC3), // because cell-size table might be missing in DB } @@ -807,19 +807,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4)) { - GeoTube* crackMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, - dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2.*GeoModelKernelUnits::deg), - dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); + GeoTube* crackMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm, + dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg), + dbManager->TILBdzmodul()/2.*Gaudi::Units::cm); GeoLogVol* lvCrackMother = new GeoLogVol("Crack",crackMother,matAir); GeoFullPhysVol* pvCrackMotherPos = new GeoFullPhysVol(lvCrackMother); GeoFullPhysVol* pvCrackMotherNeg = new GeoFullPhysVol(lvCrackMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = 0.; @@ -841,8 +841,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfCrackModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfCrackModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfCrackModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfCrackModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stCrackModuleMotherPos = new GeoSerialTransformer(pvCrackModuleMother, &xfCrackModuleMotherPos, @@ -857,14 +857,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvCrackMotherNeg->add(stCrackModuleMotherNeg); - GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntCrackMotherPos = new GeoNameTag("TileCrackPos"); pvTileEnvelopePosEndcap->add(tfCrackMotherPos); pvTileEnvelopePosEndcap->add(ntCrackMotherPos); pvTileEnvelopePosEndcap->add(pvCrackMotherPos); - GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); + GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm)); GeoNameTag* ntCrackMotherNeg = new GeoNameTag("TileCrackNeg"); pvTileEnvelopeNegEndcap->add(tfCrackMotherNeg); pvTileEnvelopeNegEndcap->add(ntCrackMotherNeg); @@ -882,9 +882,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2.; - GeoTube* fingerMother = new GeoTube(dbManager->TILBrmax()*GeoModelKernelUnits::cm, - dbManager->TILErmam()*GeoModelKernelUnits::cm, - dbManager->TIFGdz()/2.*GeoModelKernelUnits::cm); + GeoTube* fingerMother = new GeoTube(dbManager->TILBrmax()*Gaudi::Units::cm, + dbManager->TILErmam()*Gaudi::Units::cm, + dbManager->TIFGdz()/2.*Gaudi::Units::cm); GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir); GeoFullPhysVol* pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother); @@ -892,14 +892,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) // Trd - one finger mother // if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1)) - // thicknessWedgeMother = (dbManager->TILBzoffset() - dbManager->TILBdzmodul()/2. + dbManager->TILEzshift() - zEndSection) * GeoModelKernelUnits::cm; + // thicknessWedgeMother = (dbManager->TILBzoffset() - dbManager->TILBdzmodul()/2. + dbManager->TILEzshift() - zEndSection) * Gaudi::Units::cm; // else - thicknessWedgeMother = dbManager->TIFGdz()*GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz()*Gaudi::Units::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -917,11 +917,11 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - thicknessWedgeMother*(1./GeoModelKernelUnits::cm)); + thicknessWedgeMother*(1./Gaudi::Units::cm)); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherPos, @@ -937,14 +937,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvFingerMotherNeg->add(stFingerModuleMotherNeg); - GeoTransform* tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); + GeoTransform* tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*Gaudi::Units::cm)); GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); pvTileEnvelopeBarrel->add(tfFingerMotherPos); pvTileEnvelopeBarrel->add(ntFingerMotherPos); pvTileEnvelopeBarrel->add(pvFingerMotherPos); - GeoTransform* tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); + GeoTransform* tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*Gaudi::Units::cm)); GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); pvTileEnvelopeBarrel->add(tfFingerMotherNeg); pvTileEnvelopeBarrel->add(ntFingerMotherNeg); @@ -960,19 +960,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift(); - GeoTube* efingerMother = new GeoTube(dbManager->TILBrmax()*GeoModelKernelUnits::cm, - dbManager->TILErmam()*GeoModelKernelUnits::cm, - dbManager->TIFGdz()/2.*GeoModelKernelUnits::cm); + GeoTube* efingerMother = new GeoTube(dbManager->TILBrmax()*Gaudi::Units::cm, + dbManager->TILErmam()*Gaudi::Units::cm, + dbManager->TIFGdz()/2.*Gaudi::Units::cm); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",efingerMother,matAir); GeoFullPhysVol* pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother); GeoFullPhysVol* pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -992,8 +992,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) m_testbeamGeometry); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); - TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); + TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherPos, @@ -1008,14 +1008,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvEFingerMotherNeg->add(stEFingerModuleMotherNeg); - GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*Gaudi::Units::cm)); GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos"); pvTileEnvelopePosEndcap->add(tfEFingerMotherPos); pvTileEnvelopePosEndcap->add(ntEFingerMotherPos); pvTileEnvelopePosEndcap->add(pvEFingerMotherPos); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*Gaudi::Units::cm)); GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg"); pvTileEnvelopeNegEndcap->add(tfEFingerMotherNeg); pvTileEnvelopeNegEndcap->add(ntEFingerMotherNeg); @@ -1036,7 +1036,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* barrelTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(barrelTT); } @@ -1056,7 +1056,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* posEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(posEcTT); } @@ -1076,7 +1076,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); - GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*Gaudi::Units::cm,dbManager->GetEnvDY()*Gaudi::Units::cm,dbManager->GetEnvDZ()*Gaudi::Units::cm); GeoTransform* negEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(negEcTT); } diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx index d88faeba510c..623f10df95c3 100755 --- a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx @@ -35,6 +35,7 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "boost/io/ios_state.hpp" #include <stdexcept> @@ -86,7 +87,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, { (*m_log) << MSG::VERBOSE <<" TileGeoSectionBuilder::fillSection ModuleNcp= "<<ModuleNcp<< endmsg; - double tan_delta_phi_2 = tan(delta_phi/2*GeoModelKernelUnits::deg); + double tan_delta_phi_2 = tan(delta_phi/2*Gaudi::Units::deg); // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // Obtain required materials - Air and Iron @@ -125,7 +126,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, volname = "CutB"; m_dbManager->SetCurrentCuts(volname); PosXcut = m_dbManager->CutsXpos(); PosYcut = m_dbManager->CutsYpos(); - Rmore = 0.8*GeoModelKernelUnits::cm; + Rmore = 0.8*Gaudi::Units::cm; // Inert materials, CutB1 dX1 = m_dbManager->CutsDX1()+Rmore; @@ -167,42 +168,42 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA); CutA = &CutA1; - Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; + Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * Gaudi::Units::cm; - if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*GeoModelKernelUnits::cm; YcorB = 5*GeoModelKernelUnits::cm; lenPla =0.8*GeoModelKernelUnits::cm, Blia = 17.4*GeoModelKernelUnits::cm;} - if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*GeoModelKernelUnits::cm; YcorB = 6*GeoModelKernelUnits::cm; lenPla =1.7*GeoModelKernelUnits::cm; Blia = 16.9*GeoModelKernelUnits::cm;} - if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*GeoModelKernelUnits::cm; YcorB = 9*GeoModelKernelUnits::cm; lenPla =2.8*GeoModelKernelUnits::cm; Blia = 16.4*GeoModelKernelUnits::cm;} + if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*Gaudi::Units::cm; YcorB = 5*Gaudi::Units::cm; lenPla =0.8*Gaudi::Units::cm, Blia = 17.4*Gaudi::Units::cm;} + if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*Gaudi::Units::cm; YcorB = 6*Gaudi::Units::cm; lenPla =1.7*Gaudi::Units::cm; Blia = 16.9*Gaudi::Units::cm;} + if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*Gaudi::Units::cm; YcorB = 9*Gaudi::Units::cm; lenPla =2.8*Gaudi::Units::cm; Blia = 16.4*Gaudi::Units::cm;} TransCut2 = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(0.1*GeoModelKernelUnits::cm,SideFl*17.5*GeoModelKernelUnits::cm,-PosY+YcorA); + * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) + * GeoTrf::Translate3D(0.1*Gaudi::Units::cm,SideFl*17.5*Gaudi::Units::cm,-PosY+YcorA); // For modules on the side C apply extra transformation // which implements ReflectZ(0) if(neg) { GeoTrf::Vector3D ptTmp = TransCut2*GeoTrf::Vector3D(0.,0.,0.); - TransCut2 = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCut2; + TransCut2 = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCut2; } if (ModuleNcp>=60 && ModuleNcp<=62) { TransCutL = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(-1.4*GeoModelKernelUnits::cm,PosYcut+YcorB,-PosXcut-Blia); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,-PosXcut-Blia); // ReflectZ for C side if(neg) { GeoTrf::Vector3D ptTmp = TransCutL*GeoTrf::Vector3D(0.,0.,0.); - TransCutL = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCutL; + TransCutL = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutL; } } else if (ModuleNcp>=35 && ModuleNcp<=37) { TransCutR = GeoTrf::TranslateZ3D(-Radius) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) - * GeoTrf::Translate3D(-1.4*GeoModelKernelUnits::cm,PosYcut+YcorB,PosXcut+Blia) - * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) + * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,PosXcut+Blia) + * GeoTrf::RotateY3D(180*Gaudi::Units::deg); // ReflectZ for C side if(neg) { GeoTrf::Vector3D ptTmp = TransCutR*GeoTrf::Vector3D(0.,0.,0.); - TransCutR = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCutR; + TransCutR = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutR; } } @@ -219,21 +220,21 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if (m_dbManager->TILBngirder() > 0) { // Mother volume for girder - thicknessGirderMother = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + thicknessGirderMother = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*Gaudi::Units::cm; // special module with special girder if ((Id4 == 7) && (sec_number == 3)) - thicknessGirderMother = (m_dbManager->TILBdzgir() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + thicknessGirderMother = (m_dbManager->TILBdzgir() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*Gaudi::Units::cm; - double heightGirderMother = (tile_rmax - m_dbManager->TILBrmax())*GeoModelKernelUnits::cm; - double dy1GirderMother = m_dbManager->TILBrmax() * tan_delta_phi_2 * GeoModelKernelUnits::cm; - double dy2GirderMother = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; + double heightGirderMother = (tile_rmax - m_dbManager->TILBrmax())*Gaudi::Units::cm; + double dy1GirderMother = m_dbManager->TILBrmax() * tan_delta_phi_2 * Gaudi::Units::cm; + double dy2GirderMother = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm; // ps test the TILB DZGIR // std::cout <<"\t\t PS Girder Module = "<<ModuleNcp<< std::endl; // std::cout <<"\t\t PS thicknessGirderMother = "<<thicknessGirderMother<< std::endl; //ps account for special ITC modules 14,15,18,19 if ((Id4 == 7) && (sec_number == 3)) { - specialModuleZShift = 0.5*GeoModelKernelUnits::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul()); + specialModuleZShift = 0.5*Gaudi::Units::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul()); } // checking("GirderMother", false, 3, @@ -252,16 +253,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, tile_rmax, m_dbManager->TILBrmax(), tan_delta_phi_2, - thicknessGirderMother*(1./GeoModelKernelUnits::cm)); + thicknessGirderMother*(1./Gaudi::Units::cm)); GeoTransform* tfGirderMother = 0; if(sec_number==3) - tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm/2, 0., - (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2)); + tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*Gaudi::Units::cm/2, 0., + (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*Gaudi::Units::cm/2)); else - tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm/2, 0., - (m_dbManager->TILBrmax()-rminb)*GeoModelKernelUnits::cm/2)); + tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*Gaudi::Units::cm/2, 0., + (m_dbManager->TILBrmax()-rminb)*Gaudi::Units::cm/2)); mother->add(tfGirderMother); mother->add(pvGirderMother); @@ -281,13 +282,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(sec_number==3) { //ITC coverplate - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - zlen_itc2)*GeoModelKernelUnits::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - zlen_itc2)*Gaudi::Units::cm; if (thicknessFrontPlate > rless) { - heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" FrontPlateSh dX1,dX2= "<<thicknessFrontPlate/2<<", "<<thicknessFrontPlate/2 @@ -303,8 +304,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlateSh = new GeoLogVol("FrontPlateSh",frontPlateSh,matIron); GeoPhysVol* pvFrontPlateSh = new GeoPhysVol(lvFrontPlateSh); GeoTransform* tfFrontPlateSh = new GeoTransform(GeoTrf::Translate3D( - -m_dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm+thicknessFrontPlate/2, 0., - (rminb - tile_rmax)/2*GeoModelKernelUnits::cm)); + -m_dbManager->TILBdzmodul()/2*Gaudi::Units::cm+thicknessFrontPlate/2, 0., + (rminb - tile_rmax)/2*Gaudi::Units::cm)); mother->add(tfFrontPlateSh); mother->add(pvFrontPlateSh); @@ -327,10 +328,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, volname = "CutB"; m_dbManager->SetCurrentCuts(volname); dXCutB = m_dbManager->CutsDX1(); - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; - heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*Gaudi::Units::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2 -(dXCutA+dXCutB), thicknessFrontPlate/2 -(dXCutA+dXCutB), @@ -340,7 +341,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // Cuting of Plate /* - GeoTrf::Transform3D TCu2 = GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + GeoTrf::Transform3D TCu2 = GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::Translate3D(thicknessFrontPlate/2-dXCutA,0,0); GeoTransform* TCu = new GeoTransform(TCu2); @@ -351,8 +352,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate); GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*GeoModelKernelUnits::cm+ dXCutB, 0., - (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm+ dXCutB, 0., + (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm)); mother->add(tfFrontPlate); mother->add(pvFrontPlate); @@ -364,10 +365,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, else { //Ordinary frontplate - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; - heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*Gaudi::Units::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2, thicknessFrontPlate/2, @@ -378,8 +379,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate); GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*GeoModelKernelUnits::cm, 0., - (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm, 0., + (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm)); mother->add(tfFrontPlate); mother->add(pvFrontPlate); @@ -390,8 +391,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, double dy1EndPlate, dy2EndPlate, thicknessEndPlate, heightEndPlate; //VARIABLES FOR END PLATE HOLE - double heightEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm; - double dyEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm/2; + double heightEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm; + double dyEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm/2; // ps . shifts for end plates in cutout regions GeoTrf::Transform3D cutOutTransformation(GeoTrf::Transform3D::Identity()); @@ -404,10 +405,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, { //Short endplate - dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; - dy2EndPlate = m_dbManager->TILBrmax() * tan_delta_phi_2 * GeoModelKernelUnits::cm; - thicknessEndPlate = m_dbManager->TILBdzend1() * GeoModelKernelUnits::cm; - heightEndPlate = (m_dbManager->TILBrmax() - rminb) * GeoModelKernelUnits::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm; + dy2EndPlate = m_dbManager->TILBrmax() * tan_delta_phi_2 * Gaudi::Units::cm; + thicknessEndPlate = m_dbManager->TILBdzend1() * Gaudi::Units::cm; + heightEndPlate = (m_dbManager->TILBrmax() - rminb) * Gaudi::Units::cm; // // creating standart endplate. It is the same for // both standard mosules and modules with cuts @@ -442,12 +443,12 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) { - rotationAngle = (180.0 - 25.3125 )* GeoModelKernelUnits::deg ; // ATLLEMS_0003 0004 - shiftCutPlate = 38.7 * GeoModelKernelUnits::mm; + rotationAngle = (180.0 - 25.3125 )* Gaudi::Units::deg ; // ATLLEMS_0003 0004 + shiftCutPlate = 38.7 * Gaudi::Units::mm; cutOutTransformation = GeoTrf::Translate3D(0,0, -heightEndPlate/2.) * - GeoTrf::RotateX3D( 90 * GeoModelKernelUnits::deg ) * + GeoTrf::RotateX3D( 90 * Gaudi::Units::deg ) * GeoTrf::Translate3D(0.,0., -rotationSign * (dy2EndPlate + shiftCutPlate ) ) * GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; @@ -456,12 +457,12 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) { - rotationAngle = - ( 116.4832 - 90. )* GeoModelKernelUnits::deg ; // ATLLEMS_0005 0006 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1448.4 * GeoModelKernelUnits::mm); + rotationAngle = - ( 116.4832 - 90. )* Gaudi::Units::deg ; // ATLLEMS_0005 0006 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1448.4 * Gaudi::Units::mm); cutOutTransformation = GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * - GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*GeoModelKernelUnits::rad))) ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*Gaudi::Units::rad))) ) * GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlateShCutted3661 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ; @@ -469,8 +470,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) { - rotationAngle = - ( 104.0625 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0007 0008 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1534.6 * GeoModelKernelUnits::mm); + rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ; // ATLLEMS_0007 0008 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1534.6 * Gaudi::Units::mm); cutOutTransformation = GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * @@ -503,8 +504,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, tfEndPlateSh = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., - (m_dbManager->TILBrmax() - tile_rmax)*GeoModelKernelUnits::cm/2)); + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., + (m_dbManager->TILBrmax() - tile_rmax)*Gaudi::Units::cm/2)); tfEndPlateSh->ref(); mother->add(tfEndPlateSh); @@ -517,10 +518,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, else { //Ordinary endplate - dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; - dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; - thicknessEndPlate = m_dbManager->TILBdzend1() * GeoModelKernelUnits::cm; - heightEndPlate = (tile_rmax-rminb)*GeoModelKernelUnits::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm; + dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm; + thicknessEndPlate = m_dbManager->TILBdzend1() * Gaudi::Units::cm; + heightEndPlate = (tile_rmax-rminb)*Gaudi::Units::cm; GeoTrd* endPlate1 = new GeoTrd(thicknessEndPlate/2, thicknessEndPlate/2, @@ -543,13 +544,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvEPHole1 = new GeoLogVol("EPHole1",epHole1,matAir); GeoPhysVol* pvEPHole1 = new GeoPhysVol(lvEPHole1); GeoTransform* tfEPHole1 = new GeoTransform(GeoTrf::Translate3D(0.,0., - (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); + (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*Gaudi::Units::cm)); pvEndPlate1->add(tfEPHole1); pvEndPlate1->add(pvEPHole1); } GeoTransform* tfEndPlate1 = new GeoTransform(GeoTrf::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., 0.)); + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.)); mother->add(tfEndPlate1); mother->add(pvEndPlate1); @@ -567,10 +568,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, double radShift =lenPla; double rminbT=rminb + radShift; - dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; - dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; - thicknessEndPlate = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; - heightEndPlate = (tile_rmax-rminb) * GeoModelKernelUnits::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm; + dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm; + thicknessEndPlate = m_dbManager->TILBdzend2() * Gaudi::Units::cm; + heightEndPlate = (tile_rmax-rminb) * Gaudi::Units::cm; GeoLogVol* lvEndPlate2 = 0; @@ -581,7 +582,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, heightEndPlate/2); tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D( - (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., 0.)); + (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.)); tfEndPlate2->ref(); if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) @@ -600,8 +601,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) { - rotationAngle = - ( 115.3125 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0011 0012 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1364.0 * GeoModelKernelUnits::mm); + rotationAngle = - ( 115.3125 - 90.0 )* Gaudi::Units::deg ; // ATLLEMS_0011 0012 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1364.0 * Gaudi::Units::mm); cutOutTransformation = GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * @@ -613,8 +614,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) { - rotationAngle = - ( 109.6875 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0009 0010 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1464.0 * GeoModelKernelUnits::mm); + rotationAngle = - ( 109.6875 - 90.0 )* Gaudi::Units::deg ; // ATLLEMS_0009 0010 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1464.0 * Gaudi::Units::mm); cutOutTransformation = GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * @@ -626,8 +627,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) { - rotationAngle = - ( 104.0625 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0009 0010 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - ( 1915.0 -385.0 )* GeoModelKernelUnits::mm); // girder is subtracted (no drawing) + rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ; // ATLLEMS_0009 0010 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - ( 1915.0 -385.0 )* Gaudi::Units::mm); // girder is subtracted (no drawing) cutOutTransformation = GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * @@ -638,13 +639,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3562) , matIron); } - // dy1EndPlate = rminbT * tan_delta_phi_2 * GeoModelKernelUnits::cm; - // dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; - // thicknessEndPlate = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; - // heightEndPlate = (tile_rmax - rminbT) * GeoModelKernelUnits::cm; + // dy1EndPlate = rminbT * tan_delta_phi_2 * Gaudi::Units::cm; + // dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm; + // thicknessEndPlate = m_dbManager->TILBdzend2() * Gaudi::Units::cm; + // heightEndPlate = (tile_rmax - rminbT) * Gaudi::Units::cm; // tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D( - // (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0, radShift/2*GeoModelKernelUnits::cm)); + // (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0, radShift/2*Gaudi::Units::cm)); } else @@ -657,7 +658,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //Position air hole if (m_dbManager->TILBflangex() > 0) { - dyEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm/2; + dyEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm/2; GeoTrd* epHole2 = new GeoTrd (thicknessEndPlate/2, thicknessEndPlate/2, @@ -668,7 +669,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvEPHole2 = new GeoLogVol("EPHole2",epHole2,matAir); GeoPhysVol* pvEPHole2 = new GeoPhysVol(lvEPHole2); GeoTransform* tfEPHole2 = new GeoTransform(GeoTrf::Translate3D(0.,0., - (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*GeoModelKernelUnits::cm)); + (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*Gaudi::Units::cm)); pvEndPlate2->add(tfEPHole2); pvEndPlate2->add(pvEPHole2); } @@ -683,10 +684,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } // End Plates //---------------------------------------------------Absorber-------------------------------------------------------- - double heightAbsorber = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm; - double thicknessAbsorber = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; - double dy1Absorber = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - double dy2Absorber = (m_dbManager->TILBrmax()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + double heightAbsorber = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*Gaudi::Units::cm; + double thicknessAbsorber = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*Gaudi::Units::cm; + double dy1Absorber = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + double dy2Absorber = (m_dbManager->TILBrmax()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; checking("Absorber", true, 3, thicknessAbsorber/2,thicknessAbsorber/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -707,7 +708,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, case 2: { //Extended barrel - consists of ordinary periods of type 1 only - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; // The period number for middle absorber nA2 = m_dbManager->TILBnperiod() - (nA1+nA3); @@ -807,10 +808,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period and second with one special period of type 2 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; m_barrelPeriodThickness = thicknessPeriod; - m_barrelGlue = dzglue*GeoModelKernelUnits::cm; + m_barrelGlue = dzglue*Gaudi::Units::cm; checking("Period 0", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -825,7 +826,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -859,7 +860,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvAbsorber->add(pvAbsorberChild); //Second division - thicknessPeriod = (m_dbManager->TILBdzmast() + 2.*m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = (m_dbManager->TILBdzmast() + 2.*m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; checking("Period 1", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -873,7 +874,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 2); // 2-period type @@ -908,7 +909,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, case 2: { //Extended barrel - consists of ordinary periods of type 1 only - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; checking("Period 2", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -924,7 +925,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, m_extendedPeriodThickness = thicknessPeriod; fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -1020,7 +1021,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; checking("Period 3 (ITC1 special)", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1034,7 +1035,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -1069,7 +1070,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // //Second division // - thicknessPeriod = m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + thicknessPeriod = m_dbManager->TILBdzspac()*Gaudi::Units::cm; checking("Period 5 (ITC1 special)", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1083,7 +1084,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 4); // 4-period type @@ -1116,7 +1117,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else { - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; checking("Period 3", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1130,7 +1131,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 3); // 3-period type @@ -1166,7 +1167,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm; checking("Period 4", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1180,7 +1181,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -1214,7 +1215,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvAbsorber->add(pvAbsorberChild); //Second division - thicknessPeriod = m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + thicknessPeriod = m_dbManager->TILBdzspac()*Gaudi::Units::cm; checking("Period 5", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1228,7 +1229,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 4); // 4-period type @@ -1280,8 +1281,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, checking("Period 6", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); - double dy1Period = m_dbManager->TILBflangex()/2.*GeoModelKernelUnits::cm; // correct size from the drawings - double dy2Period = m_dbManager->TILBflangey()/2.*GeoModelKernelUnits::cm; // correct size from the drawings + double dy1Period = m_dbManager->TILBflangex()/2.*Gaudi::Units::cm; // correct size from the drawings + double dy2Period = m_dbManager->TILBflangey()/2.*Gaudi::Units::cm; // correct size from the drawings if (dy1Period <= 0.0 || dy2Period <= 0.0 || dy1Period > dy1Absorber || dy2Period > dy2Absorber || dy1Period >= dy2Period ) { dy1Period = dy1Absorber; dy2Period = dy2Absorber; @@ -1297,7 +1298,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./GeoModelKernelUnits::cm), + thicknessPeriod*(1./Gaudi::Units::cm), dzglue, tan_delta_phi_2, 5, period); @@ -1325,7 +1326,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if (sec_number==3) { // ps specialModuleZShift - tfAbsorber = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + dXAbsorber*GeoModelKernelUnits::cm/2, 0., dZAbsorber*GeoModelKernelUnits::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + dXAbsorber*Gaudi::Units::cm/2, 0., dZAbsorber*Gaudi::Units::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); } @@ -1334,8 +1335,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection Ex.barrel in "<< endmsg; - tfAbsorber1 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor1, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); + tfAbsorber1 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor1, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2)); mother->add(tfAbsorber1); if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) { mother->add(pvTmp_Absorber1); @@ -1347,16 +1348,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection ext.barrel pvAbsorber1 Ok"<< endmsg; - tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor2, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor2, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection ext.barrel pvAbsorber Ok"<< endmsg; - tfAbsorber3 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor3, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); + tfAbsorber3 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor3, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2)); mother->add(tfAbsorber3); if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) { mother->add(pvTmp_Absorber3); @@ -1370,8 +1371,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else { - tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); if(m_log->level()<=MSG::DEBUG) @@ -1437,11 +1438,11 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*& mother, dy2GirderElement = (elementRC + elementSizeInR/2) * tan_delta_phi_2; } - girderElement = new GeoTrd(thickness/2*GeoModelKernelUnits::cm, - thickness/2*GeoModelKernelUnits::cm, - dy1GirderElement*GeoModelKernelUnits::cm, - dy2GirderElement*GeoModelKernelUnits::cm, - elementSizeInR/2*GeoModelKernelUnits::cm); + girderElement = new GeoTrd(thickness/2*Gaudi::Units::cm, + thickness/2*Gaudi::Units::cm, + dy1GirderElement*Gaudi::Units::cm, + dy2GirderElement*Gaudi::Units::cm, + elementSizeInR/2*Gaudi::Units::cm); switch(m_dbManager->TIGRmaterial()) { @@ -1470,8 +1471,8 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*& mother, pvGirderElement = new GeoPhysVol(lvGirderElement); tfGirderElement = new GeoTransform(GeoTrf::Translate3D(0., - elementOffsetInY*GeoModelKernelUnits::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); + elementOffsetInY*Gaudi::Units::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm)); mother->add(tfGirderElement); mother->add(pvGirderElement); } @@ -1513,7 +1514,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, // InDetServices if (m_matLArServices == 0) - { m_matLArServices = new GeoMaterial("LArServices", 2.5*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + { m_matLArServices = new GeoMaterial("LArServices", 2.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3); m_matLArServices->add(shieldSteel, 0.20); m_matLArServices->add(copper, 0.60); m_matLArServices->add(matRubber, 0.10); @@ -1523,7 +1524,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, // m_matIronHalfDens if (m_matIronHalfDens == 0) - { m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + { m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3); m_matIronHalfDens->add(shieldSteel, 0.80); m_matIronHalfDens->add(matRubber, 0.10); m_matIronHalfDens->add(copper, 0.10); @@ -1574,7 +1575,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeSize ="<< AirVolumeSize << endmsg; } } - if (elementZPozition*2-AirVolumeSize<-0.01) { // compare with zero with 0.1 GeoModelKernelUnits::mm precision + if (elementZPozition*2-AirVolumeSize<-0.01) { // compare with zero with 0.1 Gaudi::Units::mm precision elementZPozition += AirVolumeShift; // shift all volumes keeping size } else { // resize finger cover with shims attached to it if(m_log->level()<=MSG::DEBUG) @@ -1620,26 +1621,26 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, if(m_dbManager->TICGshape()==1) { - fingerElementTrd = new GeoTrd(elementDz/2*GeoModelKernelUnits::cm, - elementDz/2*GeoModelKernelUnits::cm, - elementDy1/2*GeoModelKernelUnits::cm, - elementDy2/2*GeoModelKernelUnits::cm, - elementHeight/2*GeoModelKernelUnits::cm); + fingerElementTrd = new GeoTrd(elementDz/2*Gaudi::Units::cm, + elementDz/2*Gaudi::Units::cm, + elementDy1/2*Gaudi::Units::cm, + elementDy2/2*Gaudi::Units::cm, + elementHeight/2*Gaudi::Units::cm); lvFingerElement = new GeoLogVol(currentName,fingerElementTrd,currentMaterial); } else if(m_dbManager->TICGshape()==2) { - fingerElementTrap = new GeoTrap(elementDz/2*GeoModelKernelUnits::cm, + fingerElementTrap = new GeoTrap(elementDz/2*Gaudi::Units::cm, 0., 0., - elementHeight/2*GeoModelKernelUnits::cm, - elementDy2/2*GeoModelKernelUnits::cm, - elementDy1/2*GeoModelKernelUnits::cm, + elementHeight/2*Gaudi::Units::cm, + elementDy2/2*Gaudi::Units::cm, + elementDy1/2*Gaudi::Units::cm, atan((elementDy1-elementDy2)/(2.*elementHeight)), - elementHeight/2*GeoModelKernelUnits::cm, - elementDy2/2*GeoModelKernelUnits::cm, - elementDy1/2*GeoModelKernelUnits::cm, + elementHeight/2*Gaudi::Units::cm, + elementDy2/2*Gaudi::Units::cm, + elementDy1/2*Gaudi::Units::cm, atan((elementDy1-elementDy2)/(2.*elementHeight))); lvFingerElement = new GeoLogVol(currentName,fingerElementTrap,currentMaterial); @@ -1653,21 +1654,21 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, pvFingerElement = new GeoPhysVol(lvFingerElement); - tfFingerElement = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm, - elementOffset*GeoModelKernelUnits::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); + tfFingerElement = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm, + elementOffset*Gaudi::Units::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm)); mother->add(tfFingerElement); if (m_dbManager->TICGshape()==2) { if(elementOffset<0) { - ZrotateMod = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); + ZrotateMod = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg)); mother->add(ZrotateMod); } - zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)); - yrotateMod = new GeoTransform(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)); + zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(90*Gaudi::Units::deg)); + yrotateMod = new GeoTransform(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)); mother->add(yrotateMod); mother->add(zrotateMod); } @@ -1737,17 +1738,17 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, << " LRflag= " << LRflag <<" Neg "<< boolNeg << endmsg; - GeoTransform *rotateY = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); - GeoTransform *rotateZ = new GeoTransform(GeoTrf::RotateZ3D(3*GeoModelKernelUnits::deg)); - GeoTransform *rotateZm = new GeoTransform(GeoTrf::RotateZ3D(-3*GeoModelKernelUnits::deg)); + GeoTransform *rotateY = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg)); + GeoTransform *rotateZ = new GeoTransform(GeoTrf::RotateZ3D(3*Gaudi::Units::deg)); + GeoTransform *rotateZm = new GeoTransform(GeoTrf::RotateZ3D(-3*Gaudi::Units::deg)); // Left (+phi) - fingerCablesL = new GeoBox(dXleft/2*GeoModelKernelUnits::cm, dY/2*GeoModelKernelUnits::cm, dZleft/2*GeoModelKernelUnits::cm); + fingerCablesL = new GeoBox(dXleft/2*Gaudi::Units::cm, dY/2*Gaudi::Units::cm, dZleft/2*Gaudi::Units::cm); lvFingerCablesL = new GeoLogVol(leftName,fingerCablesL,leftMaterial); pvFingerCablesL = new GeoPhysVol(lvFingerCablesL); // Right (-phi) - fingerCablesR = new GeoBox(dXright/2*GeoModelKernelUnits::cm, dY/2*GeoModelKernelUnits::cm, dZright/2*GeoModelKernelUnits::cm); + fingerCablesR = new GeoBox(dXright/2*Gaudi::Units::cm, dY/2*Gaudi::Units::cm, dZright/2*Gaudi::Units::cm); lvFingerCablesR = new GeoLogVol(rightName,fingerCablesR,rightMaterial); pvFingerCablesR = new GeoPhysVol(lvFingerCablesR); @@ -1759,9 +1760,9 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, { YpoFinger = elementOffset-5.4; } - tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm +0.5*GeoModelKernelUnits::cm -dZsaddleL*GeoModelKernelUnits::cm, - YpoFinger*GeoModelKernelUnits::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); + tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm +0.5*Gaudi::Units::cm -dZsaddleL*Gaudi::Units::cm, + YpoFinger*Gaudi::Units::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm)); mother->add(tfFingerCables); // inversion for negativ fingers, Left @@ -1782,9 +1783,9 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, { YpoFinger = -elementOffset+5.4; } - tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm +0.5*GeoModelKernelUnits::cm -dZsaddleR*GeoModelKernelUnits::cm, - YpoFinger*GeoModelKernelUnits::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); + tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm +0.5*Gaudi::Units::cm -dZsaddleR*Gaudi::Units::cm, + YpoFinger*Gaudi::Units::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm)); mother->add(tfFingerCables); // inversion for negativ fingers, Right @@ -1877,13 +1878,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, const GeoMaterial* matScin = m_theMaterialManager->getMaterial("tile::Scintillator"); //Cs hole parameters - double csHoleR = 0.45 * GeoModelKernelUnits::cm; - double csTubeOuterR = 0.4 * GeoModelKernelUnits::cm; - double csTubeInnerR = 0.3 * GeoModelKernelUnits::cm; - double csTubeOffCorr = 1.35 * GeoModelKernelUnits::cm; + double csHoleR = 0.45 * Gaudi::Units::cm; + double csTubeOuterR = 0.4 * Gaudi::Units::cm; + double csTubeInnerR = 0.3 * Gaudi::Units::cm; + double csTubeOffCorr = 1.35 * Gaudi::Units::cm; - double thicknessMother2 = thickness/2.*GeoModelKernelUnits::cm; - double heightMother2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2.; + double thicknessMother2 = thickness/2.*Gaudi::Units::cm; + double heightMother2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*Gaudi::Units::cm/2.; const bool removeGlue = (m_glue == 0 || m_glue == 2); @@ -1891,18 +1892,18 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (dzglue>0.0 && period_type<4 && !removeGlue) { const GeoMaterial* matGlue = m_theMaterialManager->getMaterial("tile::Glue"); - double dzglue2 = dzglue/2*GeoModelKernelUnits::cm; + double dzglue2 = dzglue/2*Gaudi::Units::cm; dzglue2 = floor(dzglue2*1.0e+10)*1.0e-10; if (m_verbose) { - printdouble(" period thickness/2 = ",thickness/2*GeoModelKernelUnits::cm); - printdouble(" glue thickness/2 = ",dzglue/2*GeoModelKernelUnits::cm); + printdouble(" period thickness/2 = ",thickness/2*Gaudi::Units::cm); + printdouble(" glue thickness/2 = ",dzglue/2*Gaudi::Units::cm); printdouble("rounded thickness/2 = ",dzglue2); } - double dy1Glue = (m_dbManager->TILBrmin() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - double dy2Glue = (m_dbManager->TILBrmax() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; - double heightGlue2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2.; + double dy1Glue = (m_dbManager->TILBrmin() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + double dy2Glue = (m_dbManager->TILBrmax() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; + double heightGlue2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*Gaudi::Units::cm/2.; checking("Glue 0", false, 4, dzglue2,dzglue2,dy1Glue,dy2Glue,heightGlue2); @@ -1916,16 +1917,16 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, idTag = new GeoIdentifierTag(j-CurrentScin); m_dbManager->SetCurrentScin(j); - double off0 = m_dbManager->SCNTrc()*GeoModelKernelUnits::cm - heightMother2; - double off = m_dbManager->SCNTdr()/2.*GeoModelKernelUnits::cm - csTubeOffCorr; + double off0 = m_dbManager->SCNTrc()*Gaudi::Units::cm - heightMother2; + double off = m_dbManager->SCNTdr()/2.*Gaudi::Units::cm - csTubeOffCorr; - GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg); + GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg); // air around iron rod, around Cs tube and inside Cs tube - GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); - GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); - GeoShape *air3 = new GeoTubs(0., csTubeInnerR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); + GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg); + GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg); + GeoShape *air3 = new GeoTubs(0., csTubeInnerR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg); GeoLogVol * lvAir1 = new GeoLogVol("CsTubeAir1",air1,matAir); GeoLogVol * lvAir2 = new GeoLogVol("CsTubeAir2",air2,matAir); @@ -1965,26 +1966,26 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",-dzglue/2*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D(-dzglue/2*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",-dzglue/2*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(-dzglue/2*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(thickness-dzglue)/2*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D((thickness-dzglue)/2*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",(thickness-dzglue)/2*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((thickness-dzglue)/2*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -2003,15 +2004,15 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; checking("Wrapper 0", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2023,28 +2024,28 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; checking("Scintillator 0", true, 6, - scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); + scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm); - scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, - scintiThickness/2*GeoModelKernelUnits::cm, + scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm, + scintiThickness/2*Gaudi::Units::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*GeoModelKernelUnits::cm); + scintiHeight/2*Gaudi::Units::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); @@ -2058,13 +2059,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm); + printdouble(" ==> ",(scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2079,14 +2080,14 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2); - tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2,0.,0.)); + printdouble(" glue position = ",(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",-(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2); - tfGlue = new GeoTransform(GeoTrf::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2,0.,0.)); + printdouble(" glue position = ",-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -2105,15 +2106,15 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; checking("Wrapper 1", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2125,28 +2126,28 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; checking("Scintillator 1", true, 6, - scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); + scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm); - scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, - scintiThickness/2*GeoModelKernelUnits::cm, + scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm, + scintiThickness/2*Gaudi::Units::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*GeoModelKernelUnits::cm); + scintiHeight/2*Gaudi::Units::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); @@ -2160,13 +2161,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm); + printdouble(" ==> ",(2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*Gaudi::Units::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(GeoTrf::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*Gaudi::Units::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2181,26 +2182,26 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(-thickness + dzglue)*GeoModelKernelUnits::cm/2); - tfGlue = new GeoTransform(GeoTrf::Translate3D((-thickness + dzglue)*GeoModelKernelUnits::cm/2,0.,0.)); + printdouble(" glue position = ",(-thickness + dzglue)*Gaudi::Units::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D((-thickness + dzglue)*Gaudi::Units::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",dzglue/2*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D(dzglue/2*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",dzglue/2*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(dzglue/2*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm); - tfGlue = new GeoTransform(GeoTrf::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm,0.,0.)); + printdouble(" glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -2219,16 +2220,16 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0. : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; checking("Wrapper 2", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2240,28 +2241,28 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; checking("Scintillator 2", true, 6, - scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); + scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm); - scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, - scintiThickness/2*GeoModelKernelUnits::cm, + scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm, + scintiThickness/2*Gaudi::Units::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*GeoModelKernelUnits::cm); + scintiHeight/2*Gaudi::Units::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); @@ -2275,13 +2276,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm); + printdouble(" ==> ",(scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2305,18 +2306,18 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; + (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); if(scintiZPos<0) { idTag = new GeoIdentifierTag(j-CurrentScin); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm; checking("Wrapper 3", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2328,28 +2329,28 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm; checking("Scintillator 3", true, 6, - scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); + scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm); - scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, - scintiThickness/2*GeoModelKernelUnits::cm, + scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm, + scintiThickness/2*Gaudi::Units::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*GeoModelKernelUnits::cm); + scintiHeight/2*Gaudi::Units::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); @@ -2368,7 +2369,7 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, tfWrapper = new GeoTransform(GeoTrf::Translate3D(0., 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2401,13 +2402,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = m_dbManager->SCNTdphi(); // don't need to check m_uShape for single scintillator // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; - thicknessWrapper = (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm; + thicknessWrapper = (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); - double thicknessEnvelope = (m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z - dy1Wrapper = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2. - scintiWrapInR)*tanphi)*GeoModelKernelUnits::cm; - dy2Wrapper = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2. + scintiWrapInR)*tanphi)*GeoModelKernelUnits::cm; + double thicknessEnvelope = (m_dbManager->TILBdzmodul()*Gaudi::Units::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z + dy1Wrapper = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2. - scintiWrapInR)*tanphi)*Gaudi::Units::cm; + dy2Wrapper = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2. + scintiWrapInR)*tanphi)*Gaudi::Units::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<"Envelope thickness is " << thicknessEnvelope <<endmsg; @@ -2423,17 +2424,17 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator - dy1Scintillator = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2.)*tanphi - scintiDeltaInPhi)*GeoModelKernelUnits::cm; - dy2Scintillator = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2.)*tanphi - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + dy1Scintillator = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2.)*tanphi - scintiDeltaInPhi)*Gaudi::Units::cm; + dy2Scintillator = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2.)*tanphi - scintiDeltaInPhi)*Gaudi::Units::cm; checking("Scintillator 4", true, 6, - scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); + scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm); - scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, - scintiThickness/2*GeoModelKernelUnits::cm, + scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm, + scintiThickness/2*Gaudi::Units::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*GeoModelKernelUnits::cm); + scintiHeight/2*Gaudi::Units::cm); lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); @@ -2451,7 +2452,7 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, tfWrapper = new GeoTransform(GeoTrf::Translate3D(0., 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2538,16 +2539,16 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*& descriptor, float drGap[] = {450., 380., 313., 341., 478., 362.}; if (addPlates) { - rBarrel[0] -= 10*GeoModelKernelUnits::mm/2; - rBarrel[2] += 40*GeoModelKernelUnits::mm/2; - drBarrel[0] += 10*GeoModelKernelUnits::mm; - drBarrel[2] += 40*GeoModelKernelUnits::mm; - rExtended[0] -= 10*GeoModelKernelUnits::mm/2; - rExtended[2] += 40*GeoModelKernelUnits::mm/2; - drExtended[0] += 10*GeoModelKernelUnits::mm; - drExtended[2] += 40*GeoModelKernelUnits::mm; - rGap[1] += 40*GeoModelKernelUnits::mm/2; - drGap[1] += 40*GeoModelKernelUnits::mm; + rBarrel[0] -= 10*Gaudi::Units::mm/2; + rBarrel[2] += 40*Gaudi::Units::mm/2; + drBarrel[0] += 10*Gaudi::Units::mm; + drBarrel[2] += 40*Gaudi::Units::mm; + rExtended[0] -= 10*Gaudi::Units::mm/2; + rExtended[2] += 40*Gaudi::Units::mm/2; + drExtended[0] += 10*Gaudi::Units::mm; + drExtended[2] += 40*Gaudi::Units::mm; + rGap[1] += 40*Gaudi::Units::mm/2; + drGap[1] += 40*Gaudi::Units::mm; } int indHardcoded = 0; @@ -2800,10 +2801,10 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, dzPeriod = m_extendedPeriodThickness; } - rMin = m_dbManager->TILBrmin() *GeoModelKernelUnits::cm; - if (addPlates) rMin -= m_dbManager->TILBdrfront() *GeoModelKernelUnits::cm; + rMin = m_dbManager->TILBrmin() *Gaudi::Units::cm; + if (addPlates) rMin -= m_dbManager->TILBdrfront() *Gaudi::Units::cm; CurrentScin = 100*m_dbManager->TILBsection() + 1; - //dzMaster = m_dbManager->TILBdzmast()*GeoModelKernelUnits::cm; + //dzMaster = m_dbManager->TILBdzmast()*Gaudi::Units::cm; /** Initialize rMin, rMax vectors - once per region Initial values for zMin - leftmost edge @@ -2815,13 +2816,13 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1) && addPlates ) { // use end of the master as end of last cell - rMax = m_dbManager->TILBrmax()*GeoModelKernelUnits::cm; + rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm; } else { double tileSize=m_dbManager->SCNTdr(); if (m_dbManager->SCNTdrw() > 0) // round to integer for all tiles except gap scin tileSize=round(tileSize); - rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*GeoModelKernelUnits::cm; + rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*Gaudi::Units::cm; } rmins.push_back(rMin); @@ -2829,19 +2830,19 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, rMin = rMax; if(detector == TILE_REGION_CENTRAL) { - zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./GeoModelKernelUnits::cm) - -(m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend1()))*GeoModelKernelUnits::cm); - zEnd1Lim = (-m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm; - zEnd2Lim = ( m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; - zEnd1 = (-m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - zEnd2 = ( m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./Gaudi::Units::cm) + -(m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend1()))*Gaudi::Units::cm); + zEnd1Lim = (-m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1())*Gaudi::Units::cm; + zEnd2Lim = ( m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2())*Gaudi::Units::cm; + zEnd1 = (-m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + zEnd2 = ( m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; } else { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm); - zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*GeoModelKernelUnits::cm; - zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*GeoModelKernelUnits::cm; - zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*Gaudi::Units::cm); + zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*Gaudi::Units::cm; + zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*Gaudi::Units::cm; + zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; } zmaxs.push_back(0.); @@ -3006,7 +3007,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; if(detector != TILE_REGION_CENTRAL) { @@ -3016,7 +3017,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; } } /* ------------------------------------------------------------------------------------------------ */ @@ -3052,8 +3053,8 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, m_dbManager->SetNextTiclInDet(); } - rMin = m_dbManager->TILBrmin()*GeoModelKernelUnits::cm; - if (addPlates) rMin -= m_dbManager->TILBdrfront() *GeoModelKernelUnits::cm; + rMin = m_dbManager->TILBrmin()*Gaudi::Units::cm; + if (addPlates) rMin -= m_dbManager->TILBdrfront() *Gaudi::Units::cm; CurrentScin = 100*m_dbManager->TILBsection() + 1; for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) @@ -3062,33 +3063,33 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1) && addPlates ) { /** use end of the master as end of last cell */ - rMax = m_dbManager->TILBrmax()*GeoModelKernelUnits::cm; + rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm; /** subtract from C10 thickness of D4 front plate */ if (addPlates && sec) - rMax -= m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; + rMax -= m_dbManager->TILBdrfront()*Gaudi::Units::cm; } else { double tileSize=m_dbManager->SCNTdr(); if (m_dbManager->SCNTdrw() > 0) /** round to integer for all tiles except gap scin */ tileSize=round(tileSize); - rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*GeoModelKernelUnits::cm; + rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*Gaudi::Units::cm; } rmins.push_back(rMin); rmaxs.push_back(rMax); rMin = rMax; - zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*GeoModelKernelUnits::cm; - zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*GeoModelKernelUnits::cm; - zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; - zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*Gaudi::Units::cm; + zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*Gaudi::Units::cm; + zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; + zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm; if ( addPlates ) { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm); } else { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2 - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*Gaudi::Units::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2 - m_dbManager->TILBdzend2())*Gaudi::Units::cm); } } @@ -3138,7 +3139,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout<< " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout<< " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n"; for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++) @@ -3146,7 +3147,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; } /* -------------------------------------------- */ } @@ -3169,20 +3170,20 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, CurrentScin = 100*m_dbManager->TILBsection()+1; } - rMin = m_dbManager->TILBrmin()*GeoModelKernelUnits::cm; + rMin = m_dbManager->TILBrmin()*Gaudi::Units::cm; // Initialize rMin, rMax, zMin, zMax vectors for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) { m_dbManager->SetCurrentScin(j); - rMax = rMin + m_dbManager->SCNTdr()*GeoModelKernelUnits::cm; + rMax = rMin + m_dbManager->SCNTdr()*Gaudi::Units::cm; rmins.push_back(rMin); rmaxs.push_back(rMax); rMin = rMax; - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm); } // Iterate through scintillators and create corresponding TileCellDim objects (+/-) @@ -3230,7 +3231,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n"; for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++) @@ -3238,7 +3239,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n"; } /* -------------------------------------------- */ } @@ -3280,10 +3281,10 @@ void TileGeoSectionBuilder::calculateZ(int detector, // first - find position in ideal world before Z-shift and misalignment if (detector == TILE_REGION_CENTRAL) { // need to split one cylinder in pos/neg halves - float zmin=m_dbManager->TILBzoffset()/2 * GeoModelKernelUnits::cm ; - float zmax=zmin+m_dbManager->TILBdzmodul()/2 * GeoModelKernelUnits::cm ; + float zmin=m_dbManager->TILBzoffset()/2 * Gaudi::Units::cm ; + float zmax=zmin+m_dbManager->TILBdzmodul()/2 * Gaudi::Units::cm ; if (sample==3) { // fix for D0 cell - float D0size = 560.58/307*40 * GeoModelKernelUnits::cm; // size of D0 along Z in GeoModelKernelUnits::cm + float D0size = 560.58/307*40 * Gaudi::Units::cm; // size of D0 along Z in Gaudi::Units::cm // FIXME:: should be taken from DB if (side>0) // positive zmin = - D0size/2; @@ -3293,13 +3294,13 @@ void TileGeoSectionBuilder::calculateZ(int detector, zcenter = (zmin+zmax)/2; dz = (zmax-zmin); } else if (detector == TILE_REGION_GAP && (sample > 9) ){ - zcenter=m_dbManager->TILBzoffset() * GeoModelKernelUnits::cm ; + zcenter=m_dbManager->TILBzoffset() * Gaudi::Units::cm ; m_dbManager->SetCurrentScin(100*m_dbManager->TILBsection() + 1 ); - dz = m_dbManager->SCNTdt()*GeoModelKernelUnits::cm; + dz = m_dbManager->SCNTdt()*Gaudi::Units::cm; } else { - zcenter=m_dbManager->TILBzoffset() * GeoModelKernelUnits::cm ; - dz=m_dbManager->TILBdzmodul() * GeoModelKernelUnits::cm ; + zcenter=m_dbManager->TILBzoffset() * Gaudi::Units::cm ; + dz=m_dbManager->TILBdzmodul() * Gaudi::Units::cm ; } // apply zshift from ideal pseudo-projective eta (which includes alignment also!) @@ -3425,18 +3426,18 @@ void TileGeoSectionBuilder::printdouble(const char * name, double val) } const GeoShape * TileGeoSectionBuilder::makeHolesScint(const GeoShape * mother, double R, double H2, double off, double off0) { - GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); + GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg); const GeoShapeUnion& scintUnion = hole->add( *hole << GeoTrf::Translate3D((off0-off*2.0),0.,0.)); - GeoTrf::Transform3D tfHole = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D tfHole = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(90*Gaudi::Units::deg); const GeoShape & motherWithHoles = (mother->subtract(scintUnion<<tfHole)); return &motherWithHoles; } const GeoShape * TileGeoSectionBuilder::makeHoles(const GeoShape * mother, double R, double H2, double off, double off0) { - GeoShape *hole1 = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); - GeoShape *hole2 = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); - GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); - GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoShape *hole1 = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg); + GeoShape *hole2 = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg); + GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg); + GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg); const GeoShape & motherWithHoles = (mother->subtract((*hole1)<<tfHole1).subtract((*hole2)<<tfHole2)); return &motherWithHoles; } diff --git a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx index 8a25b3f8affb..99656aa20219 100755 --- a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx @@ -20,7 +20,6 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Variable.h" @@ -33,6 +32,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include <stdexcept> #include <iostream> @@ -181,11 +181,11 @@ void TileTBFactory::create(GeoPhysVol *world) //int EnvNumLayer = 64; //dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); //double deltaPhi = 360./dbManager->TILEnmodul(); - GeoTubs* tileTBEnv = new GeoTubs(RInMin * GeoModelKernelUnits::cm, - ROutMax * GeoModelKernelUnits::cm, - tileTBEnvThickness/2.0 * GeoModelKernelUnits::cm, - PhiMin*GeoModelKernelUnits::deg, - (PhiMax - PhiMin)*GeoModelKernelUnits::deg); + GeoTubs* tileTBEnv = new GeoTubs(RInMin * Gaudi::Units::cm, + ROutMax * Gaudi::Units::cm, + tileTBEnvThickness/2.0 * Gaudi::Units::cm, + PhiMin*Gaudi::Units::deg, + (PhiMax - PhiMin)*Gaudi::Units::deg); (*m_log) << MSG::DEBUG << "TileTB envelope parameters: " << " length=" << tileTBEnvThickness << " cm" @@ -213,19 +213,19 @@ void TileTBFactory::create(GeoPhysVol *world) //----------------------- BUILDING ENVELOPES------------------------ // It may be usful on the way of universalization - // GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - // (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - // (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, - // 0.0 * deltaPhi * GeoModelKernelUnits::deg, - // (NumberOfMod)*deltaPhi*GeoModelKernelUnits::deg); + // GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + // (dbManager->GetEnvRout()) * Gaudi::Units::cm, + // (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm, + // 0.0 * deltaPhi * Gaudi::Units::deg, + // (NumberOfMod)*deltaPhi*Gaudi::Units::deg); if(EnvType == 1) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + (dbManager->GetEnvRout()) * Gaudi::Units::cm, + (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoTubs* barrelMother = GeneralMother; GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir); @@ -241,11 +241,11 @@ void TileTBFactory::create(GeoPhysVol *world) //Envelopes for two barrel fingers dbManager->SetCurrentTifg(2); //use small size for barrel finger ! - GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - BFingerLength/2.*GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, + BFingerLength/2.*Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir); pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother); @@ -260,11 +260,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 3) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + (dbManager->GetEnvRout()) * Gaudi::Units::cm, + (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoTubs* ebarrelMotherPos = GeneralMother; GeoLogVol* lvEBarrelMotherPos = new GeoLogVol("EBarrel",ebarrelMotherPos,matAir); @@ -278,11 +278,11 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; //Envelope for finger separately - GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - EBFingerLength/2.*GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, + EBFingerLength/2.*Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir); pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother); @@ -296,11 +296,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 2) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + (dbManager->GetEnvRout()) * Gaudi::Units::cm, + (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoTubs* ebarrelMotherNeg = GeneralMother; GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir); pvEBarrelMotherNeg = new GeoFullPhysVol(lvEBarrelMotherNeg); @@ -313,11 +313,11 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; //Envelope for finger separately - GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, - dbManager->GetEnvRout()*GeoModelKernelUnits::cm, - EBFingerLength/2.*GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm, + dbManager->GetEnvRout()*Gaudi::Units::cm, + EBFingerLength/2.*Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir); pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother); @@ -331,11 +331,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 5) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + (dbManager->GetEnvRout()) * Gaudi::Units::cm, + (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoTubs* itcMother = GeneralMother; GeoLogVol* lvITCMother = new GeoLogVol("ITC",itcMother,matAir); @@ -350,11 +350,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 4) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, - (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, - 0.0 * GeoModelKernelUnits::deg, - NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm, + (dbManager->GetEnvRout()) * Gaudi::Units::cm, + (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm, + 0.0 * Gaudi::Units::deg, + NumberOfMod*deltaPhi*Gaudi::Units::deg); GeoTubs* itcMotherNeg = GeneralMother; GeoLogVol* lvITCMotherNeg = new GeoLogVol("ITC",itcMotherNeg,matAir); @@ -386,17 +386,17 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; Variable varInd; - GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * GeoModelKernelUnits::deg; + GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * Gaudi::Units::deg; //------------------- BARREL BLOCKS ------------------------------------- if( EnvType == 1 || EnvType == 0 ) { // normal barrel module or module zero dbManager->SetCurrentSectionByNumber(ModType); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); @@ -417,7 +417,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother, &xfBarrelModuleMother, @@ -433,10 +433,10 @@ void TileTBFactory::create(GeoPhysVol *world) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -454,10 +454,10 @@ void TileTBFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - thicknessWedgeMother*(1./GeoModelKernelUnits::cm)); + thicknessWedgeMother*(1./Gaudi::Units::cm)); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherPos, @@ -465,7 +465,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvFingerMotherPos->add(new GeoSerialIdentifier(ModPositionNumber)); pvFingerMotherPos->add(stFingerModuleMotherPos); - TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stFingerModuleMotherNeg = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherNeg, @@ -480,10 +480,10 @@ void TileTBFactory::create(GeoPhysVol *world) if((ModType == 2)&&(EnvType == 3)){ dbManager->SetCurrentSectionByNumber(ModType); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -504,7 +504,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMotherPos, &xfEBarrelModuleMotherPos, @@ -518,10 +518,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(2); //barrel efinger (small) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -542,7 +542,7 @@ void TileTBFactory::create(GeoPhysVol *world) // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherPos, @@ -557,10 +557,10 @@ void TileTBFactory::create(GeoPhysVol *world) if((ModType == 2)&&(EnvType == 2)){ dbManager->SetCurrentSectionByNumber(ModType); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -581,7 +581,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEBarrelModuleMotherNeg = new GeoSerialTransformer(pvEBarrelModuleMotherNeg, &xfEBarrelModuleMotherNeg, @@ -596,10 +596,10 @@ void TileTBFactory::create(GeoPhysVol *world) //zEndSection = extOffset + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift(); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -618,7 +618,7 @@ void TileTBFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry); - TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stEFingerModuleMotherNeg = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherNeg, @@ -638,10 +638,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); // Common mother for ITC1/2 modules - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* itcModuleMotherPos = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -658,10 +658,10 @@ void TileTBFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -672,19 +672,19 @@ void TileTBFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., dy1WedgeMother, dy2WedgeMother, heightWedgeMother/2.); - GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -701,7 +701,7 @@ void TileTBFactory::create(GeoPhysVol *world) GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-rMinITC)*GeoModelKernelUnits::cm/2.)); + (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.)); pvITCModuleMotherPos->add(tfPlug1ModuleMother); @@ -709,10 +709,10 @@ void TileTBFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2., @@ -734,13 +734,13 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*GeoModelKernelUnits::cm/2., + GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*Gaudi::Units::cm/2., 0., - (dbManager->TILBrmin() - dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.)); + (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.)); pvITCModuleMotherPos->add(tfPlug2ModuleMother); pvITCModuleMotherPos->add(pvPlug2ModuleMother); - TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMotherPos, &xfITCModuleMotherPos, @@ -760,10 +760,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); // Common mother for ITC1/2 modules - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * GeoModelKernelUnits::cm; - dy1WedgeMother = rMinITC * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * Gaudi::Units::cm; + dy1WedgeMother = rMinITC * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* itcModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -780,10 +780,10 @@ void TileTBFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -794,19 +794,19 @@ void TileTBFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., dy1WedgeMother, dy2WedgeMother, heightWedgeMother/2.); - GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -824,7 +824,7 @@ void TileTBFactory::create(GeoPhysVol *world) GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-rMinITC)*GeoModelKernelUnits::cm/2.)); + (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.)); pvITCModuleMotherNeg->add(tfPlug1ModuleMother); @@ -832,10 +832,10 @@ void TileTBFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2., @@ -857,13 +857,13 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*GeoModelKernelUnits::cm/2., + GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*Gaudi::Units::cm/2., 0., - (dbManager->TILBrmin() - dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.)); + (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.)); pvITCModuleMotherNeg->add(tfPlug2ModuleMother); pvITCModuleMotherNeg->add(pvPlug2ModuleMother); - TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg); GeoSerialTransformer* stITCModuleMotherNeg = new GeoSerialTransformer(pvITCModuleMotherNeg, &xfITCModuleMotherNeg, @@ -890,7 +890,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning barrel with translation " << ztrans << " cm" << endmsg; GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); @@ -912,7 +912,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning positive barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); @@ -934,7 +934,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); + tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning negative barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); @@ -947,7 +947,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger ztrans = (tileTBEnvThickness/2. - dbManager->GetEnvZLength()/2. - EBFingerLength/2.); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -957,7 +957,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvTileTBEnv->add(pvEBarrelMotherPos); ztrans = (tileTBEnvThickness/2. - EBFingerLength/2.); - GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -970,7 +970,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger ztrans = (-tileTBEnvThickness/2. + dbManager->GetEnvZLength()/2. + EBFingerLength/2.); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -980,7 +980,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvTileTBEnv->add(pvEBarrelMotherNeg); ztrans = (-tileTBEnvThickness/2. + EBFingerLength/2.); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -993,7 +993,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 5) { // positive ITC attached to positive ext.barrel ztrans = (tileTBEnvThickness/2. - ZLengthEBarrelPos - dbManager->GetEnvZLength()/2.); - GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ITC with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -1005,7 +1005,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 4) { // negative ITC attached to negative ext.barrel ztrans = (-tileTBEnvThickness/2. + ZLengthEBarrelNeg + dbManager->GetEnvZLength()/2.); - GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ITC with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -1026,12 +1026,12 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentEnvByIndex(EnvCounter); int EnvType = dbManager->GetEnvType(); int NumberOfMod = dbManager->GetEnvNModules(); - float Zshift = dbManager->GetEnvZShift() * GeoModelKernelUnits::cm; + float Zshift = dbManager->GetEnvZShift() * Gaudi::Units::cm; (*m_log) << MSG::DEBUG << "EnvCounter is " << EnvCounter << " EnvType is " << EnvType << " Nmodules is " << NumberOfMod - << " Zshift is " << Zshift*(1./GeoModelKernelUnits::cm) << " cm" + << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm" << endmsg; if(EnvType == 1 || EnvType == 0) { // central barrel diff --git a/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx b/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx index 17da0de67111..52d0e521ea52 100755 --- a/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx +++ b/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx @@ -50,11 +50,12 @@ #include "TrkSurfaces/DiscBounds.h" // Gaudi #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" // StoreGate #include "StoreGate/StoreGateSvc.h" #include "CxxUtils/make_unique.h" -using GeoModelKernelUnits::mm; +using Gaudi::Units::mm; using CxxUtils::make_unique; // constructor -- GitLab From 997f658fc35cfa8bcd02ebde196bbb3eaf9be04e Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Fri, 25 Jan 2019 02:58:28 +0100 Subject: [PATCH 101/192] Migrated several packages from GeoModelKernelUnits to Gaudi::Units All units migrated except GeoModelKernelUnits::gram/g, which is different from Gaudi::Units::gram/g --- .../src/ForwardRegionGeoModelElements.cxx | 129 +++--- .../src/ForwardRegionGeoModelFactory.cxx | 136 +++---- .../src/ForwardRegionGeoModelTool.cxx | 38 +- .../LUCID/LUCID_GeoModel/src/GetRefIndex.cxx | 9 +- .../src/LUCID_DetectorFactory.cxx | 69 ++-- .../LUCID_GeoModel/src/LUCID_RDBAaccess.cxx | 98 ++--- .../ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx | 77 ++-- .../InDetDiMuonMonitoring/src/DiMuMon.cxx | 24 +- .../LArDetDescr/src/LArNumberHelper.cxx | 374 +++++++++--------- .../LArDetDescr/src/LArRecoMaterialTool.cxx | 1 + .../LArDetDescr/src/LArRecoSimpleGeomTool.cxx | 202 +++++----- .../src/LArVolumeBuilder.cxx | 4 +- .../src/MuonTrackingGeometryBuilder.cxx | 4 +- .../MuonGeoModel/MuonGeoModel/DBReader.h | 254 ++++++------ MuonSpectrometer/MuonGeoModel/src/Cutout.cxx | 16 +- .../MuonGeoModel/src/DriftTube.cxx | 107 +++-- .../MuonGeoModel/src/MultiLayer.cxx | 38 +- .../MuonGeoModel/src/MuonChamber.cxx | 56 +-- .../src/MuonDetectorFactory001.cxx | 24 +- .../MuonGeoModel/src/RDBReaderAtlas.cxx | 11 +- MuonSpectrometer/MuonGeoModel/src/Rpc.cxx | 4 +- MuonSpectrometer/MuonGeoModel/src/Spacer.cxx | 4 +- MuonSpectrometer/MuonGeoModel/src/Station.cxx | 96 ++--- MuonSpectrometer/MuonGeoModel/src/Tgc.cxx | 13 +- .../src/GeoShapeConverter.cxx | 4 +- .../VP1CaloSystems/VP1CaloCellController.h | 4 +- .../VP1CaloSystems/VP1CaloCells.h | 4 +- .../src/VP1CaloCellController.cxx | 6 +- .../VP1/VP1Utils/src/SoVisualizeAction.cxx | 16 +- 29 files changed, 906 insertions(+), 916 deletions(-) diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx index 2e884a193a86..76149d365272 100644 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx @@ -18,11 +18,10 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/AbsFunction.h" #include "GeoGenericFunctions/Sin.h" #include "GeoGenericFunctions/Cos.h" - +#include "GaudiKernel/SystemOfUnits.h" GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, double x, double y, double z, double rotationAngle, double diameter, double halfL, double dL, GeoPhysVol* fwrPhys) { @@ -30,7 +29,7 @@ GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, GeoTrf::Transform3D shift = GeoTrf::Translate3D(x,y,z); GeoTrf::Transform3D rotate = GeoTrf::RotateY3D(rotationAngle); -// Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg); +// Transform3D rotateX180 = GeoTrf::RotateX3D(180*Gaudi::Units::deg); const GeoShapeShift& magTube0 = (*tube)<<rotate<<shift; // const GeoShapeUnion& magTube = magTube0.add((*tube)<<rotate<<shift<<rotateX180); @@ -49,7 +48,7 @@ GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double r0 = std::max(xAperture,yAperture)*GeoModelKernelUnits::mm/2; + double r0 = std::max(xAperture,yAperture)*Gaudi::Units::mm/2; const GeoTube *ringTube = new GeoTube(r0, r0+tubeThickness, halfL-dL); @@ -69,7 +68,7 @@ void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, doubl fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -87,12 +86,12 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou // GeoEllipticalTube causes VP1 to fall, so for visualization GeoBox is used if(!m_Config.vp1Compatibility) { - ringTube0 = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL); - ringTube2 = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); + ringTube0 = new GeoEllipticalTube(xAperture*Gaudi::Units::mm/2+tubeThickness, yAperture*Gaudi::Units::mm/2+tubeThickness, halfL-dL); + ringTube2 = new GeoEllipticalTube(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL); } else { - ringTube0 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL); - ringTube2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); + ringTube0 = new GeoBox(xAperture*Gaudi::Units::mm/2+tubeThickness, yAperture*Gaudi::Units::mm/2+tubeThickness, halfL-dL); + ringTube2 = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL); } GeoShapeSubtraction * ringTube = new GeoShapeSubtraction(ringTube0, ringTube2); @@ -112,7 +111,7 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -125,22 +124,22 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm; - double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm; - double beamScreenSteelThick = 1*GeoModelKernelUnits::mm; + double beamScreenSeparation = 1.5*Gaudi::Units::mm; + double beamScreenCuThick = 0.05*Gaudi::Units::mm; + double beamScreenSteelThick = 1*Gaudi::Units::mm; - const GeoTube *ringTube = new GeoTube(yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); - const GeoTube *circ = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); - const GeoBox *rect = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); + const GeoTube *ringTube = new GeoTube(yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); + const GeoTube *circ = new GeoTube(0, yAperture*Gaudi::Units::mm/2, halfL-dL); + const GeoBox *rect = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL); GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ); - const GeoTube *circ2 = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); - const GeoBox *rect2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); + const GeoTube *circ2 = new GeoTube(0, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL); + const GeoBox *rect2 = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL); GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2); GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac); - const GeoTube *circ3 = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); - const GeoBox *rect3 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoTube *circ3 = new GeoTube(0, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoBox *rect3 = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3); GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac); GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu); @@ -179,7 +178,7 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, // // The other side of the forward region may be obtain by rotation -// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -206,22 +205,22 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm; - double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm; - double beamScreenSteelThick = 1*GeoModelKernelUnits::mm; + double beamScreenSeparation = 1.5*Gaudi::Units::mm; + double beamScreenCuThick = 0.05*Gaudi::Units::mm; + double beamScreenSteelThick = 1*Gaudi::Units::mm; - const GeoTube *ringTube = new GeoTube(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); - const GeoTube *circ = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2, halfL-dL); - const GeoBox *rect = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); + const GeoTube *ringTube = new GeoTube(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); + const GeoTube *circ = new GeoTube(0, xAperture*Gaudi::Units::mm/2, halfL-dL); + const GeoBox *rect = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL); GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ); - const GeoTube *circ2 = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); - const GeoBox *rect2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); + const GeoTube *circ2 = new GeoTube(0, xAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL); + const GeoBox *rect2 = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL); GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2); GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac); - const GeoTube *circ3 = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); - const GeoBox *rect3 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoTube *circ3 = new GeoTube(0, xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoBox *rect3 = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3); GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac); GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu); @@ -258,7 +257,7 @@ void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, fwrPhys->add(ringPhysSteel); // // The other side of the forward region may be obtain by rotation -// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -290,13 +289,13 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl // CONSTANTS double TAN_A, TAN_B, TAN_C, TAN_Dsmall, TAN_Dbig, TAN_thick1, TAN_xseparation; - TAN_A = 700*GeoModelKernelUnits::mm; - TAN_B = 500*GeoModelKernelUnits::mm; - TAN_C = 3700*GeoModelKernelUnits::mm; - TAN_Dsmall = 52*GeoModelKernelUnits::mm; - TAN_Dbig = 212*GeoModelKernelUnits::mm; - TAN_thick1 = 4.5*GeoModelKernelUnits::mm; - TAN_xseparation = 80*GeoModelKernelUnits::mm; + TAN_A = 700*Gaudi::Units::mm; + TAN_B = 500*Gaudi::Units::mm; + TAN_C = 3700*Gaudi::Units::mm; + TAN_Dsmall = 52*Gaudi::Units::mm; + TAN_Dbig = 212*Gaudi::Units::mm; + TAN_thick1 = 4.5*Gaudi::Units::mm; + TAN_xseparation = 80*Gaudi::Units::mm; // Derived constants double TAN_Rsmall, TAN_Rbig, TAN_coneZh, TAN_coneR, TAN_coneXh;//, TAN_halflength; @@ -310,12 +309,12 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl // volume construction // inner part - GeoPcon *TANi_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg); + GeoPcon *TANi_cone0 = new GeoPcon(0,360*Gaudi::Units::deg); TANi_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig); TANi_cone0->addPlane(TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig); TANi_cone0->addPlane(-TAN_coneZh, TAN_coneR, 2*TAN_Rbig); GeoTrf::Transform3D TAN_moveCone = GeoTrf::Translate3D(TAN_coneXh,0,0.5*(TAN_A-TAN_B)); - GeoTrf::Transform3D TAN_rotateCone = GeoTrf::RotateY3D(5*GeoModelKernelUnits::deg); + GeoTrf::Transform3D TAN_rotateCone = GeoTrf::RotateY3D(5*Gaudi::Units::deg); const GeoShapeShift& TANi_cone = (*TANi_cone0)<<TAN_rotateCone<<TAN_moveCone; const GeoBox *TAN_box0 = new GeoBox(2*TAN_Rbig,2*TAN_Rbig,TAN_A+TAN_B); @@ -328,13 +327,13 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl GeoShapeSubtraction *TANi_h = new GeoShapeSubtraction(TANi_hcyl, &TANi_cone); GeoTrf::Transform3D TAN_moveH = GeoTrf::Translate3D(0,0,-0.5*TAN_C); - GeoTrf::Transform3D TAN_rotateH = GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D TAN_rotateH = GeoTrf::RotateZ3D(180*Gaudi::Units::deg); GeoTrf::Transform3D TAN_moveTube1 = GeoTrf::Translate3D(TAN_xseparation,0,0.5*(TAN_A+TAN_B)); GeoTrf::Transform3D TAN_moveTube2 = GeoTrf::Translate3D(-TAN_xseparation,0,0.5*(TAN_A+TAN_B)); // outer part - GeoPcon *TANo_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg); + GeoPcon *TANo_cone0 = new GeoPcon(0,360*Gaudi::Units::deg); TANo_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig); TANo_cone0->addPlane(TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig); TANo_cone0->addPlane(-TAN_coneZh, TAN_coneR+TAN_thick1, 2*TAN_Rbig); @@ -355,7 +354,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl const GeoShapeShift& TAN_shape1 = (*TAN_shape)<<TAN_moveH; const GeoShapeShift& TAN_shape2 = (*TAN_shape)<<TAN_moveH<<TAN_rotateH; - const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*GeoModelKernelUnits::mm); + const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*Gaudi::Units::mm); const GeoShapeShift& TANo_ftube1 = (*TANo_ftube)<<TAN_moveTube1; const GeoShapeShift& TANo_ftube2 = (*TANo_ftube)<<TAN_moveTube2; @@ -380,7 +379,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -395,43 +394,43 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x, { // Constants double TCL_BOX_halflength, TCL_BOX_halfwidth, TCL_BOX_halfheight, TCL_BOX_sideThickness, TCL_BOX_topBottomThickness, TCL_BOX_endThickness, TCL_TUBE_halflength, TCL_TUBE_halfapperture, TCL_TUBE_thickness; - TCL_BOX_sideThickness = 6*GeoModelKernelUnits::mm; - TCL_BOX_topBottomThickness = 18*GeoModelKernelUnits::mm; - TCL_BOX_endThickness = 18*GeoModelKernelUnits::mm; + TCL_BOX_sideThickness = 6*Gaudi::Units::mm; + TCL_BOX_topBottomThickness = 18*Gaudi::Units::mm; + TCL_BOX_endThickness = 18*Gaudi::Units::mm; - TCL_BOX_halflength = 621*GeoModelKernelUnits::mm; - TCL_BOX_halfwidth = 132*GeoModelKernelUnits::mm; + TCL_BOX_halflength = 621*Gaudi::Units::mm; + TCL_BOX_halfwidth = 132*Gaudi::Units::mm; TCL_BOX_halfheight = 60+TCL_BOX_topBottomThickness; - TCL_TUBE_halflength = 59.5*GeoModelKernelUnits::mm; - TCL_TUBE_halfapperture = 53*GeoModelKernelUnits::mm; - TCL_TUBE_thickness = 2*GeoModelKernelUnits::mm; + TCL_TUBE_halflength = 59.5*Gaudi::Units::mm; + TCL_TUBE_halfapperture = 53*Gaudi::Units::mm; + TCL_TUBE_thickness = 2*Gaudi::Units::mm; double TCL_CuBlock_halflength, TCL_CuBlock_halfwidth, TCL_CuBlock_halfheight, TCL_CuBlockCylCut_zDepth, TCL_CuBlockCylCut_angle, TCL_CuBlockCylCut_cylR, TCL_CuBlockCylCut_cylHalflength, TCL_CuBlockCylCut_xDepth, TCL_CuBlockCylCut_xShift; - TCL_CuBlock_halflength = 597*GeoModelKernelUnits::mm; - TCL_CuBlock_halfwidth = 14.5*GeoModelKernelUnits::mm; - TCL_CuBlock_halfheight = 40*GeoModelKernelUnits::mm; + TCL_CuBlock_halflength = 597*Gaudi::Units::mm; + TCL_CuBlock_halfwidth = 14.5*Gaudi::Units::mm; + TCL_CuBlock_halfheight = 40*Gaudi::Units::mm; - TCL_CuBlockCylCut_zDepth = 90*GeoModelKernelUnits::mm; - TCL_CuBlockCylCut_angle = 12*GeoModelKernelUnits::deg; - TCL_CuBlockCylCut_cylR = 40*GeoModelKernelUnits::mm; + TCL_CuBlockCylCut_zDepth = 90*Gaudi::Units::mm; + TCL_CuBlockCylCut_angle = 12*Gaudi::Units::deg; + TCL_CuBlockCylCut_cylR = 40*Gaudi::Units::mm; TCL_CuBlockCylCut_cylHalflength = TCL_CuBlockCylCut_zDepth/cos(TCL_CuBlockCylCut_angle); TCL_CuBlockCylCut_xDepth = TCL_CuBlockCylCut_zDepth*tan(TCL_CuBlockCylCut_angle); TCL_CuBlockCylCut_xShift = -TCL_CuBlock_halfwidth-TCL_CuBlockCylCut_cylR/cos(TCL_CuBlockCylCut_angle)+TCL_CuBlockCylCut_xDepth; double TCL_CuBeam_halflength, TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_Cooling_width; - TCL_CuBeam_halflength = 530*GeoModelKernelUnits::mm; - TCL_CuBeam_halfwidth = 15*GeoModelKernelUnits::mm; - TCL_CuBeam_halfheight = 40*GeoModelKernelUnits::mm; + TCL_CuBeam_halflength = 530*Gaudi::Units::mm; + TCL_CuBeam_halfwidth = 15*Gaudi::Units::mm; + TCL_CuBeam_halfheight = 40*Gaudi::Units::mm; - TCL_Cooling_width = 9*GeoModelKernelUnits::mm; + TCL_Cooling_width = 9*Gaudi::Units::mm; // rotate by 180 deg around X and Y - GeoTrf::Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg); - GeoTrf::Transform3D rotateY180 = GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rotateX180 = GeoTrf::RotateX3D(180*Gaudi::Units::deg); + GeoTrf::Transform3D rotateY180 = GeoTrf::RotateY3D(180*Gaudi::Units::deg); // inner vacuum volume solid const GeoBox * boxIn = new GeoBox(TCL_BOX_halfwidth-TCL_BOX_sideThickness, TCL_BOX_halfheight-TCL_BOX_topBottomThickness, TCL_BOX_halflength-TCL_BOX_endThickness); diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx index 8108bb3b019b..f15e5106eb89 100755 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx @@ -24,7 +24,7 @@ #include "GeoGenericFunctions/Cos.h" #include "CLHEP/Geometry/Point3D.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -46,28 +46,28 @@ void FWD_CONFIGURATION::clear() { - TCL4JawDistB1I = 57*GeoModelKernelUnits::mm; - TCL5JawDistB1I = 57*GeoModelKernelUnits::mm; - TCL6JawDistB1I = 57*GeoModelKernelUnits::mm; - TCL4JawDistB2I = 57*GeoModelKernelUnits::mm; - TCL5JawDistB2I = 57*GeoModelKernelUnits::mm; - TCL6JawDistB2I = 57*GeoModelKernelUnits::mm; - TCL4JawDistB1O = 57*GeoModelKernelUnits::mm; - TCL5JawDistB1O = 57*GeoModelKernelUnits::mm; - TCL6JawDistB1O = 57*GeoModelKernelUnits::mm; - TCL4JawDistB2O = 57*GeoModelKernelUnits::mm; - TCL5JawDistB2O = 57*GeoModelKernelUnits::mm; - TCL6JawDistB2O = 57*GeoModelKernelUnits::mm; + TCL4JawDistB1I = 57*Gaudi::Units::mm; + TCL5JawDistB1I = 57*Gaudi::Units::mm; + TCL6JawDistB1I = 57*Gaudi::Units::mm; + TCL4JawDistB2I = 57*Gaudi::Units::mm; + TCL5JawDistB2I = 57*Gaudi::Units::mm; + TCL6JawDistB2I = 57*Gaudi::Units::mm; + TCL4JawDistB1O = 57*Gaudi::Units::mm; + TCL5JawDistB1O = 57*Gaudi::Units::mm; + TCL6JawDistB1O = 57*Gaudi::Units::mm; + TCL4JawDistB2O = 57*Gaudi::Units::mm; + TCL5JawDistB2O = 57*Gaudi::Units::mm; + TCL6JawDistB2O = 57*Gaudi::Units::mm; vp1Compatibility = false; buildTCL4 = false; buildTCL6 = false; ALFAInNewPosition = false; - newPosB7L1 = 245656.77*GeoModelKernelUnits::mm; - newPosB7R1 = -245656.11*GeoModelKernelUnits::mm; - posAFPL1 = 204500*GeoModelKernelUnits::mm; - posAFPL2 = 212675*GeoModelKernelUnits::mm; - posAFPR1 = -204500*GeoModelKernelUnits::mm; - posAFPL2 = -212675*GeoModelKernelUnits::mm; + newPosB7L1 = 245656.77*Gaudi::Units::mm; + newPosB7R1 = -245656.11*Gaudi::Units::mm; + posAFPL1 = 204500*Gaudi::Units::mm; + posAFPL2 = 212675*Gaudi::Units::mm; + posAFPR1 = -204500*Gaudi::Units::mm; + posAFPL2 = -212675*Gaudi::Units::mm; } @@ -116,7 +116,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // water matName = "water"; - GeoMaterial *water = new GeoMaterial("H20", 1.0*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial *water = new GeoMaterial("H20", 1.0*GeoModelKernelUnits::gram/Gaudi::Units::cm3); GeoElement *hydrogen = new GeoElement("Hydrogen","H",1.0, 1.010); GeoElement *oxygen = new GeoElement("Oxygen", "O", 8.0, 16.0); water->add(hydrogen,0.11); @@ -144,7 +144,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Copper for beam screens matName = "Copper"; - GeoMaterial *copper = new GeoMaterial("Copper", 8.94*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial *copper = new GeoMaterial("Copper", 8.94*GeoModelKernelUnits::g/Gaudi::Units::cm3); copper->add(const_cast<GeoElement*> (Cu),1.0); copper->lock(); m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,copper)); @@ -152,7 +152,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Tungsten for TCL6 matName = "Tungsten"; const GeoElement* W = materialManager->getElement("Wolfram"); - GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*GeoModelKernelUnits::g/Gaudi::Units::cm3); tungsten->add(const_cast<GeoElement*> (W),1.0); tungsten->lock(); m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,tungsten)); @@ -160,14 +160,14 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // GlidCop AL15 copper -- aproximate composition (trace impurities (< 0.01 wt. %) not included) // source: http://www-ferp.ucsd.edu/LIB/PROPS/compcu15.html matName = "GlidCopAL15"; - GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*GeoModelKernelUnits::g/Gaudi::Units::cm3); double aCu, aAl, aO, aB, aTot; - aCu=99.7*Cu->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aAl=0.15*Al->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aO=0.13*O->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aB=0.02*B->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aCu=99.7*Cu->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aAl=0.15*Al->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aO=0.13*O->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aB=0.02*B->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); aTot=aCu+aAl+aO+aB; glidcop->add(const_cast<GeoElement*> (Cu), aCu/aTot); @@ -179,20 +179,20 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Steel Grade 316L (Roman Pot) matName = "Steel"; - GeoMaterial *steel=new GeoMaterial("Steel", 8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial *steel=new GeoMaterial("Steel", 8*GeoModelKernelUnits::g/Gaudi::Units::cm3); double aC,aN,aSi,aP,aS,aCr,aMn,aFe,aNi,aMo,Atot; - aFe=62.045*Fe->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aC =0.03*C ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aMn=2.0*Mn ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aSi=0.75*Si->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aP =0.045*P->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aS =0.03*S ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aCr=18.0*Cr->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aMo=3.0*Mo ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aNi=14.0*Ni->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - aN =0.10*N ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aFe=62.045*Fe->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aC =0.03*C ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aMn=2.0*Mn ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aSi=0.75*Si->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aP =0.045*P->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aS =0.03*S ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aCr=18.0*Cr->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aMo=3.0*Mo ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aNi=14.0*Ni->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); + aN =0.10*N ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole); Atot=aFe+aC+aMn+aSi+aP+aS+aCr+aMo+aNi+aN; steel->add(const_cast<GeoElement*> (Fe),aFe/Atot); @@ -262,8 +262,8 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve double startX = pointMagStart[0]; double endX = pointMagEnd[0]; double rotationAngle = atan2(endX - startX,endZ - startZ); - double r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2; - double dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm; + double r = atof(loadedDataFile[i][xAperture].c_str())*Gaudi::Units::mm/2; + double dL = abs(r*tan(rotationAngle))+0.2*Gaudi::Units::mm; // move start and end points of the magnet element and neighbour elemens accordingly @@ -288,12 +288,12 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // --------------- elements cycle ----------------- for(int i=0; i < lDFSize; i++) { - startZ = atof(loadedDataFile[i][zStart].c_str())*GeoModelKernelUnits::m; - endZ = atof(loadedDataFile[i][zEnd].c_str())*GeoModelKernelUnits::m; - startX = atof(loadedDataFile[i][xStart].c_str())*GeoModelKernelUnits::m; - endX = atof(loadedDataFile[i][xEnd].c_str())*GeoModelKernelUnits::m; - startY = atof(loadedDataFile[i][yStart].c_str())*GeoModelKernelUnits::m; - endY = atof(loadedDataFile[i][yEnd].c_str())*GeoModelKernelUnits::m; + startZ = atof(loadedDataFile[i][zStart].c_str())*Gaudi::Units::m; + endZ = atof(loadedDataFile[i][zEnd].c_str())*Gaudi::Units::m; + startX = atof(loadedDataFile[i][xStart].c_str())*Gaudi::Units::m; + endX = atof(loadedDataFile[i][xEnd].c_str())*Gaudi::Units::m; + startY = atof(loadedDataFile[i][yStart].c_str())*Gaudi::Units::m; + endY = atof(loadedDataFile[i][yEnd].c_str())*Gaudi::Units::m; // translation of element x = (startX + endX)/2; @@ -307,10 +307,10 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // half-length of element halfL = sqrt((endX - startX)*(endX - startX) + (endZ - startZ)*(endZ - startZ))/2; - r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2; + r = atof(loadedDataFile[i][xAperture].c_str())*Gaudi::Units::mm/2; // overlap correction - dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm; + dL = abs(r*tan(rotationAngle))+0.2*Gaudi::Units::mm; // do not shorten magnetic volumes if(loadedDataFile[i][name].find("Mag") != std::string::npos) @@ -322,7 +322,7 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve if(atoi(loadedDataFile[i][type].c_str()) == 0){ // envelope to allow tracking with G4TrackAction if(loadedDataFile[i][name] == "VCDBP.7R1.B"){ - GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*GeoModelKernelUnits::mm, halfL, dL, fwrPhys); + GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*Gaudi::Units::mm, halfL, dL, fwrPhys); insertCircularElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), trackEnv); } else @@ -349,20 +349,20 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // elliptical aperture if(atoi(loadedDataFile[i][type].c_str()) == 1) { - magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*GeoModelKernelUnits::cm, halfL, dL, fwrPhys); + magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*Gaudi::Units::cm, halfL, dL, fwrPhys); insertEllipticalElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), magEnv); } - double magDiam = 19.4*GeoModelKernelUnits::cm; + double magDiam = 19.4*Gaudi::Units::cm; if(loadedDataFile[i][name].find("Mag") != std::string::npos) - magDiam= 19.4*GeoModelKernelUnits::cm; + magDiam= 19.4*Gaudi::Units::cm; if(loadedDataFile[i][name] == "LQXAA.1R1MagQ1" || loadedDataFile[i][name] == "LQXAG.3R1MagQ3") - magDiam = 48*GeoModelKernelUnits::cm; + magDiam = 48*Gaudi::Units::cm; if(loadedDataFile[i][name] == "LQXBA.2R1MagQ2a" || loadedDataFile[i][name] == "LQXBA.2R1MagQ2b") - magDiam = 52*GeoModelKernelUnits::cm; + magDiam = 52*Gaudi::Units::cm; //else magDiam = std::max(atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()))+2*atof(loadedDataFile[i][tubeThickness].c_str()); - //else magDiam = 19.4*GeoModelKernelUnits::cm; + //else magDiam = 19.4*Gaudi::Units::cm; // rectcircular aperture with flats in x if(atoi(loadedDataFile[i][type].c_str()) == 2) { @@ -396,16 +396,16 @@ void ForwardRegionGeoModelFactory::create(GeoPhysVol *world) double startZ,endZ; - if(m_Config.vp1Compatibility) startZ = 19.0*GeoModelKernelUnits::m; - else startZ = 22.0*GeoModelKernelUnits::m; - endZ = 268.904*GeoModelKernelUnits::m; + if(m_Config.vp1Compatibility) startZ = 19.0*Gaudi::Units::m; + else startZ = 22.0*Gaudi::Units::m; + endZ = 268.904*Gaudi::Units::m; //rotationAngle_old = 0; // mother volume -- union of tubes, one for each side - //const GeoBox *fwrBox = new GeoBox(2*GeoModelKernelUnits::m,0.5*GeoModelKernelUnits::m,(endZ-startZ)/2); - const GeoTube *fwrTubeL = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2); - GeoTube *fwrTubeR = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2); + //const GeoBox *fwrBox = new GeoBox(2*Gaudi::Units::m,0.5*Gaudi::Units::m,(endZ-startZ)/2); + const GeoTube *fwrTubeL = new GeoTube(0,2*Gaudi::Units::m,(endZ-startZ)/2); + GeoTube *fwrTubeR = new GeoTube(0,2*Gaudi::Units::m,(endZ-startZ)/2); GeoTrf::Transform3D shiftL = GeoTrf::Translate3D(0,0,(endZ+startZ)/2); GeoTrf::Transform3D shiftR = GeoTrf::Translate3D(0,0,-(endZ+startZ)/2); @@ -413,16 +413,16 @@ void ForwardRegionGeoModelFactory::create(GeoPhysVol *world) const GeoShapeUnion& fwrTube1 = fwrTube0.add((*fwrTubeR)<<shiftR); // cut out slots for ALFA - const GeoTube *alfa = new GeoTube(0, 2*GeoModelKernelUnits::m, 500*GeoModelKernelUnits::mm); - GeoTrf::Transform3D shiftAlfaL1 = GeoTrf::Translate3D(0,0,237388*GeoModelKernelUnits::mm); - GeoTrf::Transform3D shiftAlfaR1 = GeoTrf::Translate3D(0,0,-237408*GeoModelKernelUnits::mm); - GeoTrf::Transform3D shiftAlfaL2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*GeoModelKernelUnits::mm)); - GeoTrf::Transform3D shiftAlfaR2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*GeoModelKernelUnits::mm)); + const GeoTube *alfa = new GeoTube(0, 2*Gaudi::Units::m, 500*Gaudi::Units::mm); + GeoTrf::Transform3D shiftAlfaL1 = GeoTrf::Translate3D(0,0,237388*Gaudi::Units::mm); + GeoTrf::Transform3D shiftAlfaR1 = GeoTrf::Translate3D(0,0,-237408*Gaudi::Units::mm); + GeoTrf::Transform3D shiftAlfaL2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*Gaudi::Units::mm)); + GeoTrf::Transform3D shiftAlfaR2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*Gaudi::Units::mm)); const GeoShapeSubtraction& fwrTube2 = fwrTube1.subtract((*alfa)<<shiftAlfaL1).subtract((*alfa)<<shiftAlfaL2).subtract((*alfa)<<shiftAlfaR1).subtract((*alfa)<<shiftAlfaR2); // cut out slots for AFP - const GeoTube *afp = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 280*GeoModelKernelUnits::mm); - const GeoTube *afp2 = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 580*GeoModelKernelUnits::mm); + const GeoTube *afp = new GeoTube(0, 2.5*Gaudi::Units::m, 280*Gaudi::Units::mm); + const GeoTube *afp2 = new GeoTube(0, 2.5*Gaudi::Units::m, 580*Gaudi::Units::mm); GeoTrf::Transform3D shiftAfpL1 = GeoTrf::Translate3D(0,0,m_Config.posAFPL1); GeoTrf::Transform3D shiftAfpR1 = GeoTrf::Translate3D(0,0,m_Config.posAFPR1); GeoTrf::Transform3D shiftAfpL2 = GeoTrf::Translate3D(0,0,m_Config.posAFPL2); diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx index b30c4f3aa758..3817b0114a79 100755 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx @@ -9,8 +9,8 @@ #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" -#include "GeoModelKernel/Units.h" /** ** Constructor(s) @@ -19,28 +19,28 @@ ForwardRegionGeoModelTool::ForwardRegionGeoModelTool( const std::string& type, c : GeoModelTool( type, name, parent ) { m_Config.clear(); - declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*GeoModelKernelUnits::mm); - declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*GeoModelKernelUnits::mm); - declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*GeoModelKernelUnits::mm); - declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*GeoModelKernelUnits::mm); - declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*GeoModelKernelUnits::mm); - declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*GeoModelKernelUnits::mm); - declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*GeoModelKernelUnits::mm); - declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*GeoModelKernelUnits::mm); - declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*GeoModelKernelUnits::mm); - declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*GeoModelKernelUnits::mm); - declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*GeoModelKernelUnits::mm); - declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*GeoModelKernelUnits::mm); + declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*Gaudi::Units::mm); + declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*Gaudi::Units::mm); + declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*Gaudi::Units::mm); + declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*Gaudi::Units::mm); + declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*Gaudi::Units::mm); + declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*Gaudi::Units::mm); + declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*Gaudi::Units::mm); + declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*Gaudi::Units::mm); + declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*Gaudi::Units::mm); + declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*Gaudi::Units::mm); + declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*Gaudi::Units::mm); + declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*Gaudi::Units::mm); declareProperty("vp1Compatibility", m_Config.vp1Compatibility=false); declareProperty("buildTCL4",m_Config.buildTCL4=false); declareProperty("buildTCL6",m_Config.buildTCL6=false); declareProperty("ALFAInNewPosition",m_Config.ALFAInNewPosition=false); - declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*GeoModelKernelUnits::mm); - declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*GeoModelKernelUnits::mm); - declareProperty("posAFPL1",m_Config.posAFPL1=204500*GeoModelKernelUnits::mm); - declareProperty("posAFPR1",m_Config.posAFPR1=-204500*GeoModelKernelUnits::mm); - declareProperty("posAFPL2",m_Config.posAFPL2=212675*GeoModelKernelUnits::mm); - declareProperty("posAFPR2",m_Config.posAFPR2=-212675*GeoModelKernelUnits::mm); + declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*Gaudi::Units::mm); + declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*Gaudi::Units::mm); + declareProperty("posAFPL1",m_Config.posAFPL1=204500*Gaudi::Units::mm); + declareProperty("posAFPR1",m_Config.posAFPR1=-204500*Gaudi::Units::mm); + declareProperty("posAFPL2",m_Config.posAFPL2=212675*Gaudi::Units::mm); + declareProperty("posAFPR2",m_Config.posAFPR2=-212675*Gaudi::Units::mm); } /** diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx index 518c44509c22..632835ea871e 100644 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx @@ -7,16 +7,13 @@ #include <iomanip> #include <math.h> -//#include "CLHEP/Units/PhysicalConstants.h" -//#include "CLHEP/Units/SystemOfUnits.h" - #include "LUCID_DetectorFactory.h" #include "GetRefIndex.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" double GetRefIndexGas(double lambda, double pressure, double temperature) { - double e = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda; + double e = 2.*M_PI*Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm)/lambda; double e0 = 17; double k = 0.25938; double x = k*pressure/temperature/(1 - pow(e/e0, 2)); @@ -29,7 +26,7 @@ double GetRefIndexQuartz(double lambda) { double const SellCoeu[] = {46.41, 228.71, 0.014}; double const SellCoed[] = {10.666, 18.125, 0.125}; - double e = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda; + double e = 2.*M_PI*Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm)/lambda; double r = 1.; for(int i=0; i<3; i++) r += SellCoeu[i]/(SellCoed[i]*SellCoed[i] - e*e); diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx index eaae2ee41532..45ce8be3bb3e 100755 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx @@ -25,6 +25,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -80,7 +81,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) { log << MSG::DEBUG << " Build LUCID side A " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); aShape->addPlane( 0, m_lp->coolingRadius, m_lp->VJconeRadiusFront); aShape->addPlane(m_lp->VJconelength, m_lp->coolingRadius, m_lp->VJconeRadiusBack); @@ -102,7 +103,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) { GeoFullPhysVol* phyVolC = phyVolA->clone(); - world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, -m_lp->VJdistanceToIP )*GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::degree))); + world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, -m_lp->VJdistanceToIP )*GeoTrf::RotateY3D(180*Gaudi::Units::degree)*GeoTrf::RotateZ3D(180*Gaudi::Units::degree))); world->add(new GeoNameTag("LucidSideC")); world->add(phyVolC); @@ -123,7 +124,7 @@ void LUCID_DetectorFactory::buildMaterials() { m_alu = m_materialManager->getMaterial("std::Aluminium"); - log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; log << MSG::DEBUG << " Build Cherenkov Gas " << endmsg; @@ -136,9 +137,9 @@ void LUCID_DetectorFactory::buildMaterials() { m_gas->add(const_cast<GeoElement*>(fluorine), 10*fluorine->getA()/(4*carbon->getA() + 10*fluorine->getA())); log << MSG::DEBUG << " gasState : " << m_gas->getState() << endmsg; - log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/GeoModelKernelUnits::kelvin << endmsg; - log << MSG::DEBUG << " gasPressure [bar]: " << m_gas->getPressure()/GeoModelKernelUnits::bar << endmsg; - log << MSG::DEBUG << " gasDensity [g/cm3]: " << m_gas->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/Gaudi::Units::kelvin << endmsg; + log << MSG::DEBUG << " gasPressure [bar]: " << m_gas->getPressure()/Gaudi::Units::bar << endmsg; + log << MSG::DEBUG << " gasDensity [g/cm3]: " << m_gas->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; log << MSG::DEBUG << " Wavelength dependent properties " << endmsg; @@ -151,16 +152,16 @@ void LUCID_DetectorFactory::buildMaterials() { double* gasAbsLength = new double[waveLengthNum]; double* tubeReflectivity = new double[waveLengthNum]; - double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/GeoModelKernelUnits::bar) : 1; + double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/Gaudi::Units::bar) : 1; for(int i=0; i<waveLengthNum; i++) { - photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*GeoModelKernelUnits::nm; - photonEnergy [i] = 2.*M_PI*(GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm))/(photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::eV; - quartzRefIndex [i] = GetRefIndexQuartz (photonWaveLength[i]/GeoModelKernelUnits::nm); - gasRefIndex [i] = GetRefIndexGas (photonWaveLength[i]/GeoModelKernelUnits::nm, m_lp->gasPressure/GeoModelKernelUnits::bar, m_lp->gasTemperature/GeoModelKernelUnits::kelvin); - gasAbsLength [i] = GetAbsLengthGas (photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::m/absLengthScale; - tubeReflectivity[i] = GetReflectivity (photonWaveLength[i]/GeoModelKernelUnits::nm); + photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*Gaudi::Units::nm; + photonEnergy [i] = 2.*M_PI*(Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm))/(photonWaveLength[i]/Gaudi::Units::nm)*Gaudi::Units::eV; + quartzRefIndex [i] = GetRefIndexQuartz (photonWaveLength[i]/Gaudi::Units::nm); + gasRefIndex [i] = GetRefIndexGas (photonWaveLength[i]/Gaudi::Units::nm, m_lp->gasPressure/Gaudi::Units::bar, m_lp->gasTemperature/Gaudi::Units::kelvin); + gasAbsLength [i] = GetAbsLengthGas (photonWaveLength[i]/Gaudi::Units::nm)*Gaudi::Units::m/absLengthScale; + tubeReflectivity[i] = GetReflectivity (photonWaveLength[i]/Gaudi::Units::nm); } log << MSG::DEBUG << " **************************************************************************************************** " << endmsg; @@ -169,11 +170,11 @@ void LUCID_DetectorFactory::buildMaterials() { for(int i=0; i<waveLengthNum; i++) { log << MSG::DEBUG - << std::setw(11) << photonWaveLength[i]/GeoModelKernelUnits::nm - << std::setw(11) << photonEnergy [i]/GeoModelKernelUnits::eV + << std::setw(11) << photonWaveLength[i]/Gaudi::Units::nm + << std::setw(11) << photonEnergy [i]/Gaudi::Units::eV << std::setw(13) << quartzRefIndex [i] << std::setw(10) << gasRefIndex [i] - << std::setw(16) << gasAbsLength [i]/GeoModelKernelUnits::m + << std::setw(16) << gasAbsLength [i]/Gaudi::Units::m << std::setw(17) << tubeReflectivity[i] << endmsg; } @@ -192,7 +193,7 @@ void LUCID_DetectorFactory::buildMaterials() { log << MSG::DEBUG << " Build Quartz for PMT windows" << endmsg; - m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, GeoModelKernelUnits::STP_Temperature); + m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, Gaudi::Units::STP_Temperature); const GeoElement* oxygen = m_materialManager->getElement("Oxygen"); const GeoElement* silicon = m_materialManager->getElement("Silicon"); @@ -213,7 +214,7 @@ void LUCID_DetectorFactory::buildMaterials() { m_cop = m_materialManager->getMaterial("std::Copper"); - log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; + log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg; log << MSG::DEBUG << " Build Reflective Tube Optical Surfaces " << endmsg; @@ -251,17 +252,17 @@ void LUCID_DetectorFactory::calcTubeParams() { for (int i=0; i<nLayers; i++) { - m_tubeTheta [i] = atan(layerRadius[i]/m_lp->distanceToIP)*GeoModelKernelUnits::rad; - tubePhiOffset[i] = (i==0)*M_PI/8*GeoModelKernelUnits::rad; + m_tubeTheta [i] = atan(layerRadius[i]/m_lp->distanceToIP)*Gaudi::Units::rad; + tubePhiOffset[i] = (i==0)*M_PI/8*Gaudi::Units::rad; for (int j=0; j<nPmtTubesPerLayer; j++) { - tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*GeoModelKernelUnits::rad + tubePhiOffset[i]; + tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*Gaudi::Units::rad + tubePhiOffset[i]; - double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/GeoModelKernelUnits::rad); + double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/Gaudi::Units::rad); - m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0; - m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0; + m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/Gaudi::Units::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0; + m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/Gaudi::Units::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0; } } @@ -276,13 +277,13 @@ void LUCID_DetectorFactory::calcTubeParams() { log << MSG::DEBUG << setiosflags(std::ios::right) << std::setw( 6) << lay << std::setw( 5) << tub - << std::setw(11) << m_lp->tubeRadius/GeoModelKernelUnits::mm - << std::setw(16) << layerRadius [lay]/GeoModelKernelUnits::mm - << std::setw(14) << m_tubeTheta [lay]/GeoModelKernelUnits::degree - << std::setw(19) << tubePhiOffset [lay]/GeoModelKernelUnits::degree - << std::setw(18) << tubePhiAngle [lay][tub]/GeoModelKernelUnits::degree - << std::setw(19) << m_tubePosition[lay][tub][0]/GeoModelKernelUnits::mm - << std::setw(18) << m_tubePosition[lay][tub][1]/GeoModelKernelUnits::mm + << std::setw(11) << m_lp->tubeRadius/Gaudi::Units::mm + << std::setw(16) << layerRadius [lay]/Gaudi::Units::mm + << std::setw(14) << m_tubeTheta [lay]/Gaudi::Units::degree + << std::setw(19) << tubePhiOffset [lay]/Gaudi::Units::degree + << std::setw(18) << tubePhiAngle [lay][tub]/Gaudi::Units::degree + << std::setw(19) << m_tubePosition[lay][tub][0]/Gaudi::Units::mm + << std::setw(18) << m_tubePosition[lay][tub][1]/Gaudi::Units::mm << endmsg; log << MSG::DEBUG << " ********************************************************************************************************************************* " << endmsg; @@ -298,7 +299,7 @@ void LUCID_DetectorFactory::addVJcone(GeoFullPhysVol* parent) { m_lp->VJconeRadiusBack - m_lp->VJconeThickness, m_lp->VJconeRadiusFront, m_lp->VJconeRadiusBack, - (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*GeoModelKernelUnits::deg,360*GeoModelKernelUnits::deg); + (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*Gaudi::Units::deg,360*Gaudi::Units::deg); GeoLogVol* logVol0 = new GeoLogVol("lvVJcone", aShape0, m_alu); GeoPhysVol* phyVol0 = new GeoPhysVol(logVol0); @@ -338,7 +339,7 @@ void LUCID_DetectorFactory::addVessel(GeoFullPhysVol* parent) { MsgStream log(Athena::getMessageSvc(), "LUCID_DetectorFactory::addVessel"); log << MSG::INFO << " LUCID_DetectorFactory::addVessel " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); aShape->addPlane( 0, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMin + m_lp->vesselOuterThickness); aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMax + m_lp->vesselOuterThickness); @@ -360,7 +361,7 @@ void LUCID_DetectorFactory::addVesselGas(GeoPhysVol* parent) { log << MSG::INFO << " LUCID_DetectorFactory::addVesselGas " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); aShape->addPlane( 0, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMin); aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMax); diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx index f301f7289172..77eb30005aa8 100755 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx @@ -4,7 +4,6 @@ #include "LUCID_RDBAaccess.h" -//#include "CLHEP/Units/SystemOfUnits.h" #include "GeoModelKernel/Units.h" #include "GeoModelUtilities/DecodeVersionKey.h" @@ -15,6 +14,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/GaudiException.h" #include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" @@ -73,34 +73,34 @@ void LUCID_RDBAccess::SetParameters() { for(AccessSvc_iter = m_lucidParams->begin(); AccessSvc_iter != m_lucidParams->end(); AccessSvc_iter++) { - distanceToIP = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*GeoModelKernelUnits::mm; - VJdistanceToIP = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*GeoModelKernelUnits::mm; - VJconelength = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*GeoModelKernelUnits::mm; - VJconeRadiusFront = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*GeoModelKernelUnits::mm; - VJconeRadiusBack = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*GeoModelKernelUnits::mm; - VJconeThickness = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*GeoModelKernelUnits::mm; - VJconeFrontRingThickness = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*GeoModelKernelUnits::mm; - VJconeFrontRingLength = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*GeoModelKernelUnits::mm; - VJconeFrontRingOverlap = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*GeoModelKernelUnits::mm; - vesselInnerRadius = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*GeoModelKernelUnits::mm; - vesselInnerThickness = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*GeoModelKernelUnits::mm; - vesselOuterRadMin = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm; - vesselOuterRadMax = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm; - vesselOuterThickness = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*GeoModelKernelUnits::mm; - vesselLength = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*GeoModelKernelUnits::mm; - bulkheadThickness = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*GeoModelKernelUnits::mm; - coolingRadius = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*GeoModelKernelUnits::mm; - coolingThickness = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*GeoModelKernelUnits::mm; - layerRadius1 = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*GeoModelKernelUnits::mm; - layerRadius2 = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*GeoModelKernelUnits::mm; - tubeRadius = (*AccessSvc_iter)->getDouble("TUBERADIUS")*GeoModelKernelUnits::mm; - tubeThickness = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*GeoModelKernelUnits::mm; - tubeLength = (*AccessSvc_iter)->getDouble("TUBELENGTH")*GeoModelKernelUnits::mm; - pmtThickness = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*GeoModelKernelUnits::mm; - gasPressure = (*AccessSvc_iter)->getDouble("GASPRESSURE")*GeoModelKernelUnits::bar; - gasDensity = (*AccessSvc_iter)->getDouble("GASDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; - gasTemperature = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*GeoModelKernelUnits::kelvin; - quartzDensity = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + distanceToIP = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*Gaudi::Units::mm; + VJdistanceToIP = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*Gaudi::Units::mm; + VJconelength = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*Gaudi::Units::mm; + VJconeRadiusFront = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*Gaudi::Units::mm; + VJconeRadiusBack = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*Gaudi::Units::mm; + VJconeThickness = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*Gaudi::Units::mm; + VJconeFrontRingThickness = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*Gaudi::Units::mm; + VJconeFrontRingLength = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*Gaudi::Units::mm; + VJconeFrontRingOverlap = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*Gaudi::Units::mm; + vesselInnerRadius = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*Gaudi::Units::mm; + vesselInnerThickness = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*Gaudi::Units::mm; + vesselOuterRadMin = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*Gaudi::Units::mm + 3*Gaudi::Units::mm; + vesselOuterRadMax = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*Gaudi::Units::mm + 3*Gaudi::Units::mm; + vesselOuterThickness = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*Gaudi::Units::mm; + vesselLength = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*Gaudi::Units::mm; + bulkheadThickness = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*Gaudi::Units::mm; + coolingRadius = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*Gaudi::Units::mm; + coolingThickness = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*Gaudi::Units::mm; + layerRadius1 = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*Gaudi::Units::mm; + layerRadius2 = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*Gaudi::Units::mm; + tubeRadius = (*AccessSvc_iter)->getDouble("TUBERADIUS")*Gaudi::Units::mm; + tubeThickness = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*Gaudi::Units::mm; + tubeLength = (*AccessSvc_iter)->getDouble("TUBELENGTH")*Gaudi::Units::mm; + pmtThickness = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*Gaudi::Units::mm; + gasPressure = (*AccessSvc_iter)->getDouble("GASPRESSURE")*Gaudi::Units::bar; + gasDensity = (*AccessSvc_iter)->getDouble("GASDENSITY")*GeoModelKernelUnits::gram/Gaudi::Units::cm3; + gasTemperature = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*Gaudi::Units::kelvin; + quartzDensity = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*GeoModelKernelUnits::gram/Gaudi::Units::cm3; tubePolish = (*AccessSvc_iter)->getDouble("TUBEPOLISH"); waveLengthStep = (*AccessSvc_iter)->getDouble("WAVELENGTHSTEP"); waveLengthMin = (*AccessSvc_iter)->getDouble("WAVELENGTHMIN"); @@ -112,26 +112,26 @@ void LUCID_RDBAccess::Print() { MsgStream log(Athena::getMessageSvc(), "LUCID_GeoModel::LUCID_RDBAaccess"); - log << MSG::DEBUG << " distanceToIP [mm]: " << distanceToIP/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselInnerRadius [mm]: " << vesselInnerRadius/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselOuterRadMin [mm]: " << vesselOuterRadMin /GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselOuterRadMax [mm]: " << vesselOuterRadMax/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " vesselLength [mm]: " << vesselLength /GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " bulkheadThickness [mm]: " << bulkheadThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " coolingRadius [mm]: " << coolingRadius/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " coolingThickness [mm]: " << coolingThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " layerRadius1 [mm]: " << layerRadius1/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " layerRadius2 [mm]: " << layerRadius2/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " tubeRadius [mm]: " << tubeRadius/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " tubeThickness [mm]: " << tubeThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " tubeLength [mm]: " << tubeLength/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " pmtThickness [mm]: " << pmtThickness/GeoModelKernelUnits::mm << endmsg; - log << MSG::DEBUG << " gasPressure [bar]: " << gasPressure/GeoModelKernelUnits::bar << endmsg; - log << MSG::DEBUG << " gasDensity [g/cm3]: " << gasDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3) << endmsg; - log << MSG::DEBUG << " gasTempearture [kelvin]: " << gasTemperature/GeoModelKernelUnits::kelvin << endmsg; - log << MSG::DEBUG << " quartzDensity [g/cm3]: " << quartzDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3) << endmsg; + log << MSG::DEBUG << " distanceToIP [mm]: " << distanceToIP/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselInnerRadius [mm]: " << vesselInnerRadius/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselOuterRadMin [mm]: " << vesselOuterRadMin /Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselOuterRadMax [mm]: " << vesselOuterRadMax/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " vesselLength [mm]: " << vesselLength /Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " bulkheadThickness [mm]: " << bulkheadThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " coolingRadius [mm]: " << coolingRadius/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " coolingThickness [mm]: " << coolingThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " layerRadius1 [mm]: " << layerRadius1/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " layerRadius2 [mm]: " << layerRadius2/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " tubeRadius [mm]: " << tubeRadius/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " tubeThickness [mm]: " << tubeThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " tubeLength [mm]: " << tubeLength/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " pmtThickness [mm]: " << pmtThickness/Gaudi::Units::mm << endmsg; + log << MSG::DEBUG << " gasPressure [bar]: " << gasPressure/Gaudi::Units::bar << endmsg; + log << MSG::DEBUG << " gasDensity [g/cm3]: " << gasDensity/(GeoModelKernelUnits::gram/Gaudi::Units::cm3) << endmsg; + log << MSG::DEBUG << " gasTempearture [kelvin]: " << gasTemperature/Gaudi::Units::kelvin << endmsg; + log << MSG::DEBUG << " quartzDensity [g/cm3]: " << quartzDensity/(GeoModelKernelUnits::gram/Gaudi::Units::cm3) << endmsg; log << MSG::DEBUG << " tubePolish : " << tubePolish << endmsg; log << MSG::DEBUG << " waveLengthStep : " << waveLengthStep << endmsg; log << MSG::DEBUG << " waveLengthMin : " << waveLengthMin << endmsg; diff --git a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx index 89a9a75de05c..ad61d0752847 100644 --- a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx +++ b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx @@ -21,6 +21,7 @@ #include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -55,27 +56,27 @@ void ZDC_DetFactory::create(GeoPhysVol* world) const GeoMaterial* air = materialManager->getMaterial("std::Air"); - GeoElement* Oxygen = new GeoElement ("Oxygen" ,"O" , 8.0 , 16.0*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoElement* Sillicon = new GeoElement ("Sillicon","Si" , 14.0 , 28.085*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoElement* Tung = new GeoElement ("Tungsten","W" , 74.0 , 183.84*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoElement* Iron = new GeoElement ("Iron" ,"Fe" , 26.0 , 55.845 *GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoElement* Carbon = new GeoElement ("Carbon" ,"C" , 6.0 , 12.0107*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoElement* Nickel = new GeoElement ("Nickel" ,"Ni" , 28.0 , 58.6934*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Oxygen = new GeoElement ("Oxygen" ,"O" , 8.0 , 16.0*GeoModelKernelUnits::g/Gaudi::Units::mole); + GeoElement* Sillicon = new GeoElement ("Sillicon","Si" , 14.0 , 28.085*GeoModelKernelUnits::g/Gaudi::Units::mole); + GeoElement* Tung = new GeoElement ("Tungsten","W" , 74.0 , 183.84*GeoModelKernelUnits::g/Gaudi::Units::mole); + GeoElement* Iron = new GeoElement ("Iron" ,"Fe" , 26.0 , 55.845 *GeoModelKernelUnits::g/Gaudi::Units::mole); + GeoElement* Carbon = new GeoElement ("Carbon" ,"C" , 6.0 , 12.0107*GeoModelKernelUnits::g/Gaudi::Units::mole); + GeoElement* Nickel = new GeoElement ("Nickel" ,"Ni" , 28.0 , 58.6934*GeoModelKernelUnits::g/Gaudi::Units::mole); - GeoMaterial* Quartz = new GeoMaterial("Quartz",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial* Quartz = new GeoMaterial("Quartz",2.20*GeoModelKernelUnits::gram/Gaudi::Units::cm3); Quartz->add(Sillicon,0.467); Quartz->add(Oxygen,0.533); Quartz->lock(); // Absorber composition: savannah.cern.ch/task/download.php?file_id=22925 - GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); + GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*GeoModelKernelUnits::g/Gaudi::Units::cm3); Tungsten->add(Tung, 0.948); Tungsten->add(Nickel, 0.037); Tungsten->add(Iron, 0.015); Tungsten->lock(); - GeoMaterial* Steel = new GeoMaterial("Steel", 7.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); + GeoMaterial* Steel = new GeoMaterial("Steel", 7.9*GeoModelKernelUnits::gram/Gaudi::Units::cm3); Steel->add(Iron , 0.98); Steel->add(Carbon, 0.02); Steel->lock(); @@ -84,11 +85,11 @@ void ZDC_DetFactory::create(GeoPhysVol* world) //List of shapes and logical volumes //https://atlasop.cern.ch/atlas-point1/twiki/pub/Main/ZDCOperationManualShifter/zdc_layout.png - GeoBox* Envelope_Box = new GeoBox (10.0*GeoModelKernelUnits::cm/2.0 ,20.0*GeoModelKernelUnits::cm/2.0 ,100.0*GeoModelKernelUnits::cm/2.0); - GeoBox* Module_Box = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0 , 13.4*GeoModelKernelUnits::cm/2.0); - GeoBox* Steel_Plate_Box = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0 , 1.0*GeoModelKernelUnits::cm/2.0); - GeoTube* Pixel_Tube = new GeoTube( 0.0*GeoModelKernelUnits::mm , 1.0*GeoModelKernelUnits::mm/2.0 , 13.4*GeoModelKernelUnits::cm/2.0); - GeoTube* Strip_Tube = new GeoTube( 0.0*GeoModelKernelUnits::mm , 1.5*GeoModelKernelUnits::mm/2.0 , 18.0*GeoModelKernelUnits::cm/2.0); + GeoBox* Envelope_Box = new GeoBox (10.0*Gaudi::Units::cm/2.0 ,20.0*Gaudi::Units::cm/2.0 ,100.0*Gaudi::Units::cm/2.0); + GeoBox* Module_Box = new GeoBox ( 9.0*Gaudi::Units::cm/2.0 ,18.0*Gaudi::Units::cm/2.0 , 13.4*Gaudi::Units::cm/2.0); + GeoBox* Steel_Plate_Box = new GeoBox ( 9.0*Gaudi::Units::cm/2.0 ,18.0*Gaudi::Units::cm/2.0 , 1.0*Gaudi::Units::cm/2.0); + GeoTube* Pixel_Tube = new GeoTube( 0.0*Gaudi::Units::mm , 1.0*Gaudi::Units::mm/2.0 , 13.4*Gaudi::Units::cm/2.0); + GeoTube* Strip_Tube = new GeoTube( 0.0*Gaudi::Units::mm , 1.5*Gaudi::Units::mm/2.0 , 18.0*Gaudi::Units::cm/2.0); GeoLogVol* Envelope_Logical = new GeoLogVol("Envelope_Logical" ,Envelope_Box ,air); GeoLogVol* Steel_Plate_Logical = new GeoLogVol("Steel_Plate_Logical",Steel_Plate_Box ,Steel); @@ -124,8 +125,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoIdentifierTag* Pixel_ID = new GeoIdentifierTag( 11000+L1*8+K1); GeoFullPhysVol* Pixel_Physical = new GeoFullPhysVol(Pixel_Logical); - ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((4.5-K)*GeoModelKernelUnits::cm)); - ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D((4.5-L)*GeoModelKernelUnits::cm)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((4.5-K)*Gaudi::Units::cm)); + ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D((4.5-L)*Gaudi::Units::cm)); Module_Physical[0][0]->add(Pixel_ID); Module_Physical[0][0]->add(ShiftX); @@ -151,8 +152,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoIdentifierTag* Pixel_ID = new GeoIdentifierTag( I*10000+2000+ Pix_id); GeoFullPhysVol* Pixel_Physical = new GeoFullPhysVol(Pixel_Logical); - ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D( (4.5-K)*GeoModelKernelUnits::cm )); - ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D( (5.5-L)*GeoModelKernelUnits::cm )); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D( (4.5-K)*Gaudi::Units::cm )); + ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D( (5.5-L)*Gaudi::Units::cm )); Module_Physical[I-1][1]->add(Pixel_ID); Module_Physical[I-1][1]->add(ShiftX); @@ -171,9 +172,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoFullPhysVol* Strip_Physical = new GeoFullPhysVol (Strip_Logical); GeoIdentifierTag* Strip_ID = new GeoIdentifierTag(I*10000+J*1000+K*12+L*10+M); - RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*GeoModelKernelUnits::deg)); - ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm +0.75*GeoModelKernelUnits::mm)); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2 - 7.8)*GeoModelKernelUnits::cm)); + RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*Gaudi::Units::deg)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*Gaudi::Units::cm + (M-0.75)*1.5*Gaudi::Units::mm +0.75*Gaudi::Units::mm)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2 - 7.8)*Gaudi::Units::cm)); Module_Physical[I-1][J-1]->add(Strip_ID); Module_Physical[I-1][J-1]->add(ShiftZ); @@ -196,9 +197,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoFullPhysVol* Strip_Physical = new GeoFullPhysVol(Strip_Logical); GeoIdentifierTag* Strip_ID = new GeoIdentifierTag(I*10000 + J*1000 + K*12 + L*10 + M); - RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*GeoModelKernelUnits::deg)); - ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm + 0.75*GeoModelKernelUnits::mm)); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2-7.8)*GeoModelKernelUnits::cm )); + RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*Gaudi::Units::deg)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*Gaudi::Units::cm + (M-0.75)*1.5*Gaudi::Units::mm + 0.75*Gaudi::Units::mm)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2-7.8)*Gaudi::Units::cm )); Module_Physical[I-1][J-1]->add(Strip_ID); Module_Physical[I-1][J-1]->add(ShiftZ); @@ -228,13 +229,13 @@ void ZDC_DetFactory::create(GeoPhysVol* world) Envelope_Physical[I] = new GeoFullPhysVol(Envelope_Logical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 0.5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 0.5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "EM_XY"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D ((-47.2 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D ((-47.2 + 1 + 6.7)*Gaudi::Units::cm*sgn)); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); @@ -242,58 +243,58 @@ void ZDC_DetFactory::create(GeoPhysVol* world) Envelope_Physical[I]->add(Module_Physical[I][0]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_XY"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*Gaudi::Units::cm*sgn)); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][1]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_01"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn )); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*Gaudi::Units::cm*sgn )); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][2]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_02"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn )); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*Gaudi::Units::cm*sgn )); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][3]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); } @@ -305,7 +306,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world) world->add(tag); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(-141.580*GeoModelKernelUnits::m)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(-141.580*Gaudi::Units::m)); world->add(ShiftZ); world->add(Envelope_Physical[0]); @@ -320,7 +321,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world) world->add(tag); - ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(141.580 *GeoModelKernelUnits::m)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(141.580 *Gaudi::Units::m)); world->add(ShiftZ); world->add(Envelope_Physical[1]); diff --git a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx index 56e829944baa..23633d5762ea 100644 --- a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx +++ b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx @@ -6,7 +6,7 @@ #include "GaudiKernel/IJobOptionsSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/StatusCode.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/PhysicalConstants.h" #include "StoreGate/StoreGateSvc.h" #include "InDetDiMuonMonitoring/DiMuMon.h" @@ -103,10 +103,10 @@ StatusCode DiMuMon::initialize(){ //resonance independent // for eta these are filled as the histograms are declared due to the dependence between region and eta - m_varRanges["phi"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); - m_varRanges["phiAll"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); - m_varRanges["phiPos"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); - m_varRanges["phiNeg"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); + m_varRanges["phi"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi); + m_varRanges["phiAll"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi); + m_varRanges["phiPos"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi); + m_varRanges["phiNeg"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi); m_varRanges["etaSumm"] = std::make_pair(-5.,5.); //resonance dependent @@ -121,7 +121,7 @@ StatusCode DiMuMon::initialize(){ ptMax = 18.; } else if (m_resonName=="Zmumu") { m_varRanges["eta"] = std::make_pair(-5.,5.); - m_varRanges["phiDiff"] = std::make_pair(0.,GeoModelKernelUnits::pi); + m_varRanges["phiDiff"] = std::make_pair(0.,Gaudi::Units::pi); m_varRanges["etaDiff"] = std::make_pair(-3.,3.); m_varRanges["crtDiff"] = std::make_pair(-0.03,0.03); m_varRanges["phiSumm"] = std::make_pair(-3.5,3.5); @@ -262,7 +262,7 @@ StatusCode DiMuMon::fillHistograms() // if (m_lumiBlockNum<402 || m_lumiBlockNum>1330) return StatusCode::SUCCESS; - double muonMass = 105.66*GeoModelKernelUnits::MeV; + double muonMass = 105.66*Gaudi::Units::MeV; //retrieve all muons const xAOD::MuonContainer* muons(0); StatusCode sc = evtStore()->retrieve(muons, m_muonCollection); @@ -357,15 +357,15 @@ StatusCode DiMuMon::fillHistograms() double phiNeg = idNeg->phi(); m_varValues["phiNeg"] = phiNeg; m_varValues["pt"] = getPt(idPos,idNeg); - double ptPos = idPos->pt()/GeoModelKernelUnits::GeV; + double ptPos = idPos->pt()/Gaudi::Units::GeV; m_varValues["ptPos"] = ptPos; - double ptNeg = idNeg->pt()/GeoModelKernelUnits::GeV; + double ptNeg = idNeg->pt()/Gaudi::Units::GeV; m_varValues["ptNeg"] = ptNeg; m_varValues["crtDiff"] = getCrtDiff(idPos,idNeg); m_varValues["etaDiff"] = etaPos - etaNeg; double phiDiff = fabs(phiPos - phiNeg); - if (phiDiff>GeoModelKernelUnits::pi) phiDiff = 2*(GeoModelKernelUnits::pi) - phiDiff; + if (phiDiff>Gaudi::Units::pi) phiDiff = 2*(Gaudi::Units::pi) - phiDiff; m_varValues["phiDiff"] = phiDiff; m_varValues["etaSumm"] = etaPos + etaNeg; m_varValues["phiSumm"] = phiPos + phiNeg; @@ -662,7 +662,7 @@ double DiMuMon::getInvmass(const xAOD::TrackParticle* id1, const xAOD::TrackPart particle1.SetPtEtaPhiE(id1->pt(),id1->eta(),id1->phi(),sqrt(pow(Mass,2)+pow(id1->p4().Px(),2)+pow(id1->p4().Py(),2)+pow(id1->p4().Pz(),2))); particle2.SetPtEtaPhiE(id2->pt(),id2->eta(),id2->phi(),sqrt(pow(Mass,2)+pow(id2->p4().Px(),2)+pow(id2->p4().Py(),2)+pow(id2->p4().Pz(),2))); v=particle1+particle2; - double invmass = v.Mag()/GeoModelKernelUnits::GeV; + double invmass = v.Mag()/Gaudi::Units::GeV; return invmass; } @@ -671,7 +671,7 @@ double DiMuMon::getPt(const xAOD::TrackParticle* id1, const xAOD::TrackParticle* double px = id1->p4().Px()+id2->p4().Px(); double py = id1->p4().Py()+id2->p4().Py(); transmom=sqrt(px*px+py*py); - return transmom/GeoModelKernelUnits::GeV; //Gev + return transmom/Gaudi::Units::GeV; //Gev } double DiMuMon::getEta(const xAOD::TrackParticle* id1, const xAOD::TrackParticle* id2 ) const { diff --git a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx index b2df85629c45..c983e296b92e 100755 --- a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx @@ -23,7 +23,7 @@ #include "LArDetDescr/LArCellVolumes.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" LArNumberHelper::LArNumberHelper(const std::string geometry) : m_geometry(geometry), @@ -495,49 +495,49 @@ LArNumberHelper::db_nb_em() //std::cout << " ----- in db_nb_em tags are : " << m_tag << " " << m_node << std::endl; // PS - // m_emb_psin = 141.23*GeoModelKernelUnits::cm; // this is the TDR number 1385 mm + 27.3 mm + // m_emb_psin = 141.23*Gaudi::Units::cm; // this is the TDR number 1385 mm + 27.3 mm // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerGeometry","ATLAS-00","ATLAS"); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_emb_psin = m_rec->getDouble("RACTIVE")*GeoModelKernelUnits::cm; + m_emb_psin = m_rec->getDouble("RACTIVE")*Gaudi::Units::cm; } // ACCG : - // m_accg_rin_ac = 144.73*GeoModelKernelUnits::cm; // 1385mm + 27.3mm + 35mm - // m_accg_rout_ac = 200.35*GeoModelKernelUnits::cm; // end of active material + // m_accg_rin_ac = 144.73*Gaudi::Units::cm; // 1385mm + 27.3mm + 35mm + // m_accg_rout_ac = 200.35*Gaudi::Units::cm; // end of active material // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelGeometry",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_accg_rin_ac = m_rec->getDouble("RMIN") *GeoModelKernelUnits::cm; - m_accg_rout_ac = m_rec->getDouble("RMAX") *GeoModelKernelUnits::cm; + m_accg_rin_ac = m_rec->getDouble("RMIN") *Gaudi::Units::cm; + m_accg_rout_ac = m_rec->getDouble("RMAX") *Gaudi::Units::cm; } // ACCO : m_acco_rmx12.resize (8,(double) 0.); - // m_acco_rmx12[0] = 158.6*GeoModelKernelUnits::cm; - // m_acco_rmx12[1] = 158.6*GeoModelKernelUnits::cm; - // m_acco_rmx12[2] = 157.07*GeoModelKernelUnits::cm; - // m_acco_rmx12[3] = 157.07*GeoModelKernelUnits::cm; - // m_acco_rmx12[4] = 154.83*GeoModelKernelUnits::cm; - // m_acco_rmx12[5] = 154.83*GeoModelKernelUnits::cm; - // m_acco_rmx12[6] = 153.23*GeoModelKernelUnits::cm; - // m_acco_rmx12[7] = 153.23*GeoModelKernelUnits::cm; + // m_acco_rmx12[0] = 158.6*Gaudi::Units::cm; + // m_acco_rmx12[1] = 158.6*Gaudi::Units::cm; + // m_acco_rmx12[2] = 157.07*Gaudi::Units::cm; + // m_acco_rmx12[3] = 157.07*Gaudi::Units::cm; + // m_acco_rmx12[4] = 154.83*Gaudi::Units::cm; + // m_acco_rmx12[5] = 154.83*Gaudi::Units::cm; + // m_acco_rmx12[6] = 153.23*Gaudi::Units::cm; + // m_acco_rmx12[7] = 153.23*Gaudi::Units::cm; // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*GeoModelKernelUnits::cm; - m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*GeoModelKernelUnits::cm; - m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*GeoModelKernelUnits::cm; - m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*GeoModelKernelUnits::cm; - m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*GeoModelKernelUnits::cm; - m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*GeoModelKernelUnits::cm; - m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*GeoModelKernelUnits::cm; - m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*GeoModelKernelUnits::cm; + m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*Gaudi::Units::cm; + m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*Gaudi::Units::cm; + m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*Gaudi::Units::cm; + m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*Gaudi::Units::cm; + m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*Gaudi::Units::cm; + m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*Gaudi::Units::cm; + m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*Gaudi::Units::cm; + m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*Gaudi::Units::cm; } m_acco_ee12.resize (8,(double) 0.); @@ -565,84 +565,84 @@ LArNumberHelper::db_nb_em() m_acco_rmx23.resize (53,(double) 0.); /* - m_acco_rmx23[0] = 192.83*GeoModelKernelUnits::cm; ... up to : - m_acco_rmx23[52] = 178.89*GeoModelKernelUnits::cm; + m_acco_rmx23[0] = 192.83*Gaudi::Units::cm; ... up to : + m_acco_rmx23[52] = 178.89*Gaudi::Units::cm; */ // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*GeoModelKernelUnits::cm; - m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*GeoModelKernelUnits::cm; - m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*GeoModelKernelUnits::cm; - m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*GeoModelKernelUnits::cm; - m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*GeoModelKernelUnits::cm; - m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*GeoModelKernelUnits::cm; - m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*GeoModelKernelUnits::cm; - m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*GeoModelKernelUnits::cm; - m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*GeoModelKernelUnits::cm; - m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*GeoModelKernelUnits::cm; - m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*GeoModelKernelUnits::cm; - m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*GeoModelKernelUnits::cm; - m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*GeoModelKernelUnits::cm; - m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*GeoModelKernelUnits::cm; - m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*GeoModelKernelUnits::cm; - m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*GeoModelKernelUnits::cm; - m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*GeoModelKernelUnits::cm; - m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*GeoModelKernelUnits::cm; - m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*GeoModelKernelUnits::cm; - m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*GeoModelKernelUnits::cm; - m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*GeoModelKernelUnits::cm; - m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*GeoModelKernelUnits::cm; - m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*GeoModelKernelUnits::cm; - m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*GeoModelKernelUnits::cm; - m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*GeoModelKernelUnits::cm; - m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*GeoModelKernelUnits::cm; - m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*GeoModelKernelUnits::cm; - m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*GeoModelKernelUnits::cm; - m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*GeoModelKernelUnits::cm; - m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*GeoModelKernelUnits::cm; - m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*GeoModelKernelUnits::cm; - m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*GeoModelKernelUnits::cm; - m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*GeoModelKernelUnits::cm; - m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*GeoModelKernelUnits::cm; - m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*GeoModelKernelUnits::cm; - m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*GeoModelKernelUnits::cm; - m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*GeoModelKernelUnits::cm; - m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*GeoModelKernelUnits::cm; - m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*GeoModelKernelUnits::cm; - m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*GeoModelKernelUnits::cm; - m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*GeoModelKernelUnits::cm; - m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*GeoModelKernelUnits::cm; - m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*GeoModelKernelUnits::cm; - m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*GeoModelKernelUnits::cm; - m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*GeoModelKernelUnits::cm; - m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*GeoModelKernelUnits::cm; - m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*GeoModelKernelUnits::cm; - m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*GeoModelKernelUnits::cm; - m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*GeoModelKernelUnits::cm; - m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*GeoModelKernelUnits::cm; - m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*GeoModelKernelUnits::cm; - m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*GeoModelKernelUnits::cm; - m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*GeoModelKernelUnits::cm; + m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*Gaudi::Units::cm; + m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*Gaudi::Units::cm; + m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*Gaudi::Units::cm; + m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*Gaudi::Units::cm; + m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*Gaudi::Units::cm; + m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*Gaudi::Units::cm; + m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*Gaudi::Units::cm; + m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*Gaudi::Units::cm; + m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*Gaudi::Units::cm; + m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*Gaudi::Units::cm; + m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*Gaudi::Units::cm; + m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*Gaudi::Units::cm; + m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*Gaudi::Units::cm; + m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*Gaudi::Units::cm; + m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*Gaudi::Units::cm; + m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*Gaudi::Units::cm; + m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*Gaudi::Units::cm; + m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*Gaudi::Units::cm; + m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*Gaudi::Units::cm; + m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*Gaudi::Units::cm; + m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*Gaudi::Units::cm; + m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*Gaudi::Units::cm; + m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*Gaudi::Units::cm; + m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*Gaudi::Units::cm; + m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*Gaudi::Units::cm; + m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*Gaudi::Units::cm; + m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*Gaudi::Units::cm; + m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*Gaudi::Units::cm; + m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*Gaudi::Units::cm; + m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*Gaudi::Units::cm; + m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*Gaudi::Units::cm; + m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*Gaudi::Units::cm; + m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*Gaudi::Units::cm; + m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*Gaudi::Units::cm; + m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*Gaudi::Units::cm; + m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*Gaudi::Units::cm; + m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*Gaudi::Units::cm; + m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*Gaudi::Units::cm; + m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*Gaudi::Units::cm; + m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*Gaudi::Units::cm; + m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*Gaudi::Units::cm; + m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*Gaudi::Units::cm; + m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*Gaudi::Units::cm; + m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*Gaudi::Units::cm; + m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*Gaudi::Units::cm; + m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*Gaudi::Units::cm; + m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*Gaudi::Units::cm; + m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*Gaudi::Units::cm; + m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*Gaudi::Units::cm; + m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*Gaudi::Units::cm; + m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*Gaudi::Units::cm; + m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*Gaudi::Units::cm; + m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*Gaudi::Units::cm; } // ENDG - // m_endg_zorig = 369.1*GeoModelKernelUnits::cm; // this is the NOVA/Oracle number - // m_emb_iwout = 422.7*GeoModelKernelUnits::cm; // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part - // m_emec_out = 422.7*GeoModelKernelUnits::cm; // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part + // m_endg_zorig = 369.1*Gaudi::Units::cm; // this is the NOVA/Oracle number + // m_emb_iwout = 422.7*Gaudi::Units::cm; // 369.1*Gaudi::Units::cm + 53.6*Gaudi::Units::cm is the end of the active part + // m_emec_out = 422.7*Gaudi::Units::cm; // 369.1*Gaudi::Units::cm + 53.6*Gaudi::Units::cm is the end of the active part m_lar = m_iAccessSvc->getRecordsetPtr("EmecGeometry",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_endg_zorig = m_rec->getDouble("Z1")*GeoModelKernelUnits::cm; - double epaisseurTotale = m_rec->getDouble("ETOT")*GeoModelKernelUnits::cm; + m_endg_zorig = m_rec->getDouble("Z1")*Gaudi::Units::cm; + double epaisseurTotale = m_rec->getDouble("ETOT")*Gaudi::Units::cm; m_emb_iwout = m_endg_zorig + epaisseurTotale; m_emec_out = m_endg_zorig + epaisseurTotale; } // Cryostat - // m_emec_psin = 362.5*GeoModelKernelUnits::cm; // notch in cold wall of cryostat + // m_emec_psin = 362.5*Gaudi::Units::cm; // notch in cold wall of cryostat if ( m_geometry == "Atlas" ) { DecodeVersionKey detectorKeyAtl = DecodeVersionKey(m_geoModelSvc, "ATLAS"); m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerPosition",detectorKeyAtl.tag(),detectorKeyAtl.node()); @@ -652,74 +652,74 @@ LArNumberHelper::db_nb_em() } if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_emec_psin = m_rec->getDouble("ZPOS")*GeoModelKernelUnits::cm; + m_emec_psin = m_rec->getDouble("ZPOS")*Gaudi::Units::cm; } // ESEP m_esep_iw23.resize(7, (double) 0.); - // m_esep_iw23[0] = 413.934*GeoModelKernelUnits::cm; - // m_esep_iw23[1] = 412.518*GeoModelKernelUnits::cm; - // m_esep_iw23[2] = 411.792*GeoModelKernelUnits::cm; - // m_esep_iw23[3] = 409.545*GeoModelKernelUnits::cm; - // m_esep_iw23[4] = 407.987*GeoModelKernelUnits::cm; - // m_esep_iw23[5] = 407.510*GeoModelKernelUnits::cm; - // m_esep_iw23[6] = 404.730*GeoModelKernelUnits::cm; + // m_esep_iw23[0] = 413.934*Gaudi::Units::cm; + // m_esep_iw23[1] = 412.518*Gaudi::Units::cm; + // m_esep_iw23[2] = 411.792*Gaudi::Units::cm; + // m_esep_iw23[3] = 409.545*Gaudi::Units::cm; + // m_esep_iw23[4] = 407.987*Gaudi::Units::cm; + // m_esep_iw23[5] = 407.510*Gaudi::Units::cm; + // m_esep_iw23[6] = 404.730*Gaudi::Units::cm; // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*GeoModelKernelUnits::cm; - m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*GeoModelKernelUnits::cm; - m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*GeoModelKernelUnits::cm; - m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*GeoModelKernelUnits::cm; - m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*GeoModelKernelUnits::cm; - m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*GeoModelKernelUnits::cm; - m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*GeoModelKernelUnits::cm; + m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*Gaudi::Units::cm; + m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*Gaudi::Units::cm; + m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*Gaudi::Units::cm; + m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*Gaudi::Units::cm; + m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*Gaudi::Units::cm; + m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*Gaudi::Units::cm; + m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*Gaudi::Units::cm; } - // m_esep_zsep12 = 378.398*GeoModelKernelUnits::cm; + // m_esep_zsep12 = 378.398*Gaudi::Units::cm; // Note that in the gometryDB this is an array, but // of very similar numbers -> Zebra was using 1rst value only // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*GeoModelKernelUnits::cm; + m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*Gaudi::Units::cm; } m_esep_zsep23.resize(22, (double) 0.); /* - m_esep_zsep23 [0] = 999.999*GeoModelKernelUnits::cm; // inheritance from Zebra. - m_esep_zsep23 [1] = 999.999*GeoModelKernelUnits::cm; // will be skipped in hard_em - m_esep_zsep23 [2] = 413.205*GeoModelKernelUnits::cm; ... up to : - m_esep_zsep23 [21] = 401.153*GeoModelKernelUnits::cm; + m_esep_zsep23 [0] = 999.999*Gaudi::Units::cm; // inheritance from Zebra. + m_esep_zsep23 [1] = 999.999*Gaudi::Units::cm; // will be skipped in hard_em + m_esep_zsep23 [2] = 413.205*Gaudi::Units::cm; ... up to : + m_esep_zsep23 [21] = 401.153*Gaudi::Units::cm; */ // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*GeoModelKernelUnits::cm; - m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*GeoModelKernelUnits::cm; - m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*GeoModelKernelUnits::cm; - m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*GeoModelKernelUnits::cm; - m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*GeoModelKernelUnits::cm; - m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*GeoModelKernelUnits::cm; - m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*GeoModelKernelUnits::cm; - m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*GeoModelKernelUnits::cm; - m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*GeoModelKernelUnits::cm; - m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*GeoModelKernelUnits::cm; - m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*GeoModelKernelUnits::cm; - m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*GeoModelKernelUnits::cm; - m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*GeoModelKernelUnits::cm; - m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*GeoModelKernelUnits::cm; - m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*GeoModelKernelUnits::cm; - m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*GeoModelKernelUnits::cm; - m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*GeoModelKernelUnits::cm; - m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*GeoModelKernelUnits::cm; - m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*GeoModelKernelUnits::cm; - m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*GeoModelKernelUnits::cm; - m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*GeoModelKernelUnits::cm; - m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*GeoModelKernelUnits::cm; + m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*Gaudi::Units::cm; + m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*Gaudi::Units::cm; + m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*Gaudi::Units::cm; + m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*Gaudi::Units::cm; + m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*Gaudi::Units::cm; + m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*Gaudi::Units::cm; + m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*Gaudi::Units::cm; + m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*Gaudi::Units::cm; + m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*Gaudi::Units::cm; + m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*Gaudi::Units::cm; + m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*Gaudi::Units::cm; + m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*Gaudi::Units::cm; + m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*Gaudi::Units::cm; + m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*Gaudi::Units::cm; + m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*Gaudi::Units::cm; + m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*Gaudi::Units::cm; + m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*Gaudi::Units::cm; + m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*Gaudi::Units::cm; + m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*Gaudi::Units::cm; + m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*Gaudi::Units::cm; + m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*Gaudi::Units::cm; + m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*Gaudi::Units::cm; } } @@ -730,17 +730,17 @@ LArNumberHelper::db_nb_hec() // ---- Set default : /* - m_hec_in0 = 427.70*GeoModelKernelUnits::cm; // z_start - m_hec_in1 = 455.75*GeoModelKernelUnits::cm; // z_start+ 28.05*GeoModelKernelUnits::cm - m_hec_in2 = 513.40*GeoModelKernelUnits::cm; // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm - m_hec_in3 = 562.70*GeoModelKernelUnits::cm; // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm - // + 25.9*GeoModelKernelUnits::cm + 23.4*GeoModelKernelUnits::cm - m_hec_gap = 4.05*GeoModelKernelUnits::cm; // gap between the two HEC wheels + m_hec_in0 = 427.70*Gaudi::Units::cm; // z_start + m_hec_in1 = 455.75*Gaudi::Units::cm; // z_start+ 28.05*Gaudi::Units::cm + m_hec_in2 = 513.40*Gaudi::Units::cm; // z_start + 28.05*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 4.05*Gaudi::Units::cm + m_hec_in3 = 562.70*Gaudi::Units::cm; // z_start + 28.05*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 4.05*Gaudi::Units::cm + // + 25.9*Gaudi::Units::cm + 23.4*Gaudi::Units::cm + m_hec_gap = 4.05*Gaudi::Units::cm; // gap between the two HEC wheels // Comment from Sven Menke : // I don't know why the the Nova Z_end is 2.5cm more, but the active // volume must be the sum of all blocks plus the gap - thus it's 609.5*cm - m_hec_out = 609.5*GeoModelKernelUnits::cm; // z_end - 2.5*GeoModelKernelUnits::cm (or z_orig + all blocks) + m_hec_out = 609.5*Gaudi::Units::cm; // z_end - 2.5*Gaudi::Units::cm (or z_orig + all blocks) */ //std::cout << " ----- in db_nb_hec tags are : " << m_tag << " " << m_node << std::endl; @@ -757,31 +757,31 @@ LArNumberHelper::db_nb_hec() // Block0 = 1.25 cm Front Plate + // 8 times (0.85 cm LAr gap + 2.50 cm Plate) = 28.05 cm double Block0 = ( m_rec->getDouble("PLATE_0")/2. - + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*GeoModelKernelUnits::cm; + + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*Gaudi::Units::cm; // HEC1 is Block1 + Block2 // Block1 = 8 times (0.85 cm LAr gap + 2.50 cm Plate) // = 26.80 cm - double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*GeoModelKernelUnits::cm; + double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*Gaudi::Units::cm; double Block2 = Block1 ; // Gap = 4.05 cm - m_hec_gap = m_rec->getDouble("GAPWHL") *GeoModelKernelUnits::cm; + m_hec_gap = m_rec->getDouble("GAPWHL") *Gaudi::Units::cm; // HEC2 is Block 3 + Block 4 // Block3 = 2.5 cm Front Plate + // 4 times (0.85 cm LAr gap + 5.00 cm Plate) = 25.90 cm double Block3 = ( m_rec->getDouble("PLATE_1")/2. - + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*GeoModelKernelUnits::cm; + + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*Gaudi::Units::cm; // Block4 = 4 times (0.85 cm LAr gap + 5.00 cm Plate) = 23.40 cm - double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*GeoModelKernelUnits::cm; + double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*Gaudi::Units::cm; // HEC3 is Block 5 + Block 6 double Block5 = Block4 ; double Block6 = Block4; - double zstart = m_rec->getDouble("ZSTART") *GeoModelKernelUnits::cm; + double zstart = m_rec->getDouble("ZSTART") *Gaudi::Units::cm; m_hec_in0 = zstart; m_hec_in1 = m_hec_in0 + Block0 ; @@ -1056,10 +1056,10 @@ LArNumberHelper::hard_fcal() // x and y are taken from drawings in the TDR for ( unsigned int i=0; i < m_fcal_id->module_hash_max(); i++ ) { - m_x_min_fcal [i] = 8.6*GeoModelKernelUnits::cm; - m_x_max_fcal [i] = 47.5*GeoModelKernelUnits::cm; + m_x_min_fcal [i] = 8.6*Gaudi::Units::cm; + m_x_max_fcal [i] = 47.5*Gaudi::Units::cm; m_y_min_fcal [i] = 8.6; - m_y_max_fcal [i] = 47.5*GeoModelKernelUnits::cm; + m_y_max_fcal [i] = 47.5*Gaudi::Units::cm; m_phi_min_fcal[i] = 0.; m_phi_max_fcal[i] = 6.28; // when too close to 2pi pb @@ -1069,35 +1069,35 @@ LArNumberHelper::hard_fcal() //int pos_neg = m_fcal_id->pos_neg (m_region_id_fcal[i]); if ( mod == 1 ) { - m_dx_fcal [i] = 3.*GeoModelKernelUnits::cm; - m_dy_fcal [i] = 2.598*GeoModelKernelUnits::cm; - z_loc_in [0] = 466.85*GeoModelKernelUnits::cm; - z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; + m_dx_fcal [i] = 3.*Gaudi::Units::cm; + m_dy_fcal [i] = 2.598*Gaudi::Units::cm; + z_loc_in [0] = 466.85*Gaudi::Units::cm; + z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm; } else if ( mod == 2 ) { - m_dx_fcal [i] = 3.272*GeoModelKernelUnits::cm; - m_dy_fcal [i] = 4.25*GeoModelKernelUnits::cm; - z_loc_in [0] = 512.3*GeoModelKernelUnits::cm; - z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; + m_dx_fcal [i] = 3.272*Gaudi::Units::cm; + m_dy_fcal [i] = 4.25*Gaudi::Units::cm; + z_loc_in [0] = 512.3*Gaudi::Units::cm; + z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm; } else if ( mod == 3 ) { - m_dx_fcal [i] = 5.4*GeoModelKernelUnits::cm; - m_dy_fcal [i] = 4.677*GeoModelKernelUnits::cm; - z_loc_in [0] = 559.75*GeoModelKernelUnits::cm; - z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; + m_dx_fcal [i] = 5.4*Gaudi::Units::cm; + m_dy_fcal [i] = 4.677*Gaudi::Units::cm; + z_loc_in [0] = 559.75*Gaudi::Units::cm; + z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm; } else { m_dx_fcal [i] = 0.; m_dy_fcal [i] = 0.; z_loc_in [0] = 0.; - z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; + z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm; } m_z_min_fcal [i] = z_loc_in [0]; - m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*GeoModelKernelUnits::cm ; + m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*Gaudi::Units::cm ; double z = m_z_min_fcal [i]; double r = m_x_max_fcal [i]; @@ -1124,21 +1124,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double> if (m_lar->size()) { m_rec = (*m_lar)[0]; - Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*GeoModelKernelUnits::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*Gaudi::Units::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*Gaudi::Units::cm); } m_lar = m_iAccessSvc->getRecordsetPtr("BarrelSagging",m_tag,m_node); @@ -1146,21 +1146,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double> if (m_lar->size()) { m_rec = (*m_lar)[0]; - Sag.push_back(m_rec->getDouble("SAG_0")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_1")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_2")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_3")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_4")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_5")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_6")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_7")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_8")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_9")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_10")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_11")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_12")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_13")*GeoModelKernelUnits::cm); - Sag.push_back(m_rec->getDouble("SAG_14")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_0")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_1")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_2")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_3")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_4")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_5")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_6")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_7")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_8")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_9")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_10")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_11")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_12")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_13")*Gaudi::Units::cm); + Sag.push_back(m_rec->getDouble("SAG_14")*Gaudi::Units::cm); } diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx index c2ce91bbfa01..94b6277869a7 100755 --- a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx @@ -20,6 +20,7 @@ #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "CaloIdentifier/CaloIdManager.h" #include "CaloIdentifier/CaloCell_ID.h" diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx index 7019b56fcf54..7fd73c48e248 100755 --- a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx @@ -28,7 +28,7 @@ #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" @@ -170,17 +170,17 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()<14) return false; const IRDBRecord* rec = (*lar)[11]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; - dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + len = rec->getDouble("DZ")*Gaudi::Units::cm /2.; + dep = rec->getDouble("DR")*Gaudi::Units::cm; rec = (*lar)[12]; - dep = dep +rec->getDouble("DR")*GeoModelKernelUnits::cm; + dep = dep +rec->getDouble("DR")*Gaudi::Units::cm; rec = (*lar)[13]; - dep = dep +rec->getDouble("DR")*GeoModelKernelUnits::cm; + dep = dep +rec->getDouble("DR")*Gaudi::Units::cm; - //rad = 124.18*GeoModelKernelUnits::cm; - //dep = (.305 + 1.38 + .47 )*GeoModelKernelUnits::cm; - //len = 270.*GeoModelKernelUnits::cm; + //rad = 124.18*Gaudi::Units::cm; + //dep = (.305 + 1.38 + .47 )*Gaudi::Units::cm; + //len = 270.*Gaudi::Units::cm; radius.push_back( rad + dep/2.); depth.push_back( dep/2. ); @@ -197,13 +197,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 10 const IRDBRecord* rec = (*lar)[10]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; - dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + len = rec->getDouble("DZ")*Gaudi::Units::cm /2.; + dep = rec->getDouble("DR")*Gaudi::Units::cm; - //rad = 122.9*GeoModelKernelUnits::cm; - //dep = 1.28*GeoModelKernelUnits::cm; - //len = 270.*GeoModelKernelUnits::cm; + //rad = 122.9*Gaudi::Units::cm; + //dep = 1.28*Gaudi::Units::cm; + //len = 270.*Gaudi::Units::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -211,13 +211,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 14 rec = (*lar)[14]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; - dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + len = rec->getDouble("DZ")*Gaudi::Units::cm /2.; + dep = rec->getDouble("DR")*Gaudi::Units::cm; - //rad = 126.335*GeoModelKernelUnits::cm; - //dep = 1.2*GeoModelKernelUnits::cm; - //len = 284.*GeoModelKernelUnits::cm; + //rad = 126.335*Gaudi::Units::cm; + //dep = 1.2*Gaudi::Units::cm; + //len = 284.*Gaudi::Units::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -225,13 +225,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 0 rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; - dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + len = rec->getDouble("DZ")*Gaudi::Units::cm /2.; + dep = rec->getDouble("DR")*Gaudi::Units::cm; //rad = 2140*mm; //dep = 30*mm; - //len = 299.6*GeoModelKernelUnits::cm; + //len = 299.6*Gaudi::Units::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -239,13 +239,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 5 rec = (*lar)[5]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; - dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + len = rec->getDouble("DZ")*Gaudi::Units::cm /2.; + dep = rec->getDouble("DR")*Gaudi::Units::cm; //rad = 2220*mm; //dep = 30*mm; - //len = 285*GeoModelKernelUnits::cm; + //len = 285*Gaudi::Units::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -262,18 +262,18 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()==0) return false; const IRDBRecord* rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - dep = rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + dep = rec->getDouble("RMAX")*Gaudi::Units::cm - rad; lar = m_recBarrGeo; if ( !lar || lar->size()==0) return false; rec = (*lar)[0]; - len = rec->getDouble("ZMAX")*GeoModelKernelUnits::cm; + len = rec->getDouble("ZMAX")*Gaudi::Units::cm; - //rad = 138.5*GeoModelKernelUnits::cm; - //dep = (144.7 - 138.5)*GeoModelKernelUnits::cm; - //len = 316.5*GeoModelKernelUnits::cm; + //rad = 138.5*Gaudi::Units::cm; + //dep = (144.7 - 138.5)*Gaudi::Units::cm; + //len = 316.5*Gaudi::Units::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -290,13 +290,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()==0) return false; const IRDBRecord* rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - dep = rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad; - len = rec->getDouble("ZMAX")*GeoModelKernelUnits::cm; + rad = rec->getDouble("RMIN")*Gaudi::Units::cm; + dep = rec->getDouble("RMAX")*Gaudi::Units::cm - rad; + len = rec->getDouble("ZMAX")*Gaudi::Units::cm; - //rad = 1447.3*GeoModelKernelUnits::cm; - //dep = (2003.35 - 1447.3)*GeoModelKernelUnits::cm; - //len = 316.5*GeoModelKernelUnits::cm; + //rad = 1447.3*Gaudi::Units::cm; + //dep = (2003.35 - 1447.3)*Gaudi::Units::cm; + //len = 316.5*Gaudi::Units::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -353,16 +353,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[49]; - ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm; - dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm; - zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.; + ri = rec->getDouble("RMIN")*Gaudi::Units::cm; + ra = ri + rec->getDouble("DR")*Gaudi::Units::cm; + dep = rec->getDouble("DZ")*Gaudi::Units::cm; + zcent = rec->getDouble("ZMIN")*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent; - //ri = 22.1*GeoModelKernelUnits::cm; - //ra = (22.1 + 194.4)*GeoModelKernelUnits::cm; - //dep = 6.5*GeoModelKernelUnits::cm; - //zcent = (356.1 + dep/2.)*GeoModelKernelUnits::cm; + //ri = 22.1*Gaudi::Units::cm; + //ra = (22.1 + 194.4)*Gaudi::Units::cm; + //dep = 6.5*Gaudi::Units::cm; + //zcent = (356.1 + dep/2.)*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -372,16 +372,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // DDDb : LAr / CryoCylinders / Endcap nb 6 rec = (*lar)[44]; - ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm; - dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm; - zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.; + ri = rec->getDouble("RMIN")*Gaudi::Units::cm; + ra = ri + rec->getDouble("DR")*Gaudi::Units::cm; + dep = rec->getDouble("DZ")*Gaudi::Units::cm; + zcent = rec->getDouble("ZMIN")*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent; - //ri = 79.*GeoModelKernelUnits::cm; - //ra = (ri + 173.)*GeoModelKernelUnits::cm; - //dep = 6.*GeoModelKernelUnits::cm; - //zcent = (660.5 + dep/2.)*GeoModelKernelUnits::cm; + //ri = 79.*Gaudi::Units::cm; + //ra = (ri + 173.)*Gaudi::Units::cm; + //dep = 6.*Gaudi::Units::cm; + //zcent = (660.5 + dep/2.)*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -399,16 +399,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm; - dep = rec->getDouble("TCK")*GeoModelKernelUnits::cm; - zcent = rec->getDouble("ZPOS")*GeoModelKernelUnits::cm + dep/2.; + ri = rec->getDouble("RMIN")*Gaudi::Units::cm; + ra = rec->getDouble("RMAX")*Gaudi::Units::cm; + dep = rec->getDouble("TCK")*Gaudi::Units::cm; + zcent = rec->getDouble("ZPOS")*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::PRESAMPLER_EC_NEG) zcent = -1. * zcent; - //ri = 123.174*GeoModelKernelUnits::cm; - //ra = 170.2*GeoModelKernelUnits::cm; - //dep = 0.4*GeoModelKernelUnits::cm; - //zcent = (362.4 + dep/2.)*GeoModelKernelUnits::cm; + //ri = 123.174*Gaudi::Units::cm; + //ra = 170.2*Gaudi::Units::cm; + //dep = 0.4*Gaudi::Units::cm; + //zcent = (362.4 + dep/2.)*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -426,16 +426,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; - ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm; - dep = rec->getDouble("ETOT")*GeoModelKernelUnits::cm; - zcent = rec->getDouble("Z1")*GeoModelKernelUnits::cm + dep/2.; + ri = rec->getDouble("RMIN")*Gaudi::Units::cm; + ra = rec->getDouble("RMAX")*Gaudi::Units::cm; + dep = rec->getDouble("ETOT")*Gaudi::Units::cm; + zcent = rec->getDouble("Z1")*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::EMEC_NEG) zcent = -1. * zcent; - //ri = 29.*GeoModelKernelUnits::cm; - //ra = 210.*GeoModelKernelUnits::cm; - //dep = 53.6*GeoModelKernelUnits::cm; - //zcent = (369.1 + dep/2.)*GeoModelKernelUnits::cm; + //ri = 29.*Gaudi::Units::cm; + //ra = 210.*Gaudi::Units::cm; + //dep = 53.6*Gaudi::Units::cm; + //zcent = (369.1 + dep/2.)*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -454,19 +454,19 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm; - ra = rec->getDouble("REND")*GeoModelKernelUnits::cm; + ri = rec->getDouble("ROORIG")*Gaudi::Units::cm; + ra = rec->getDouble("REND")*Gaudi::Units::cm; // Block0+Block1+Block2 dep = rec->getDouble("PLATE_0")/2. + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0")); - dep = dep*GeoModelKernelUnits::cm; - zcent = rec->getDouble("ZSTART")*GeoModelKernelUnits::cm + dep/2.; + dep = dep*Gaudi::Units::cm; + zcent = rec->getDouble("ZSTART")*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::HEC1_NEG) zcent = -1. * zcent; - //ri = 37.2*GeoModelKernelUnits::cm; - //ra = 213.0*GeoModelKernelUnits::cm; - //dep = (513.4 - 4.05 - 427.7)*GeoModelKernelUnits::cm; - //zcent = 427.7*GeoModelKernelUnits::cm; + //ri = 37.2*Gaudi::Units::cm; + //ra = 213.0*Gaudi::Units::cm; + //dep = (513.4 - 4.05 - 427.7)*Gaudi::Units::cm; + //zcent = 427.7*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -486,24 +486,24 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm; - ra = rec->getDouble("REND")*GeoModelKernelUnits::cm; + ri = rec->getDouble("ROORIG")*Gaudi::Units::cm; + ra = rec->getDouble("REND")*Gaudi::Units::cm; // Block 3 + Block 4 + Block 5 + Block 6 dep = rec->getDouble("PLATE_1")/2. + 4*4*(rec->getDouble("LARG") + rec->getDouble("PLATE_1")); - dep = dep*GeoModelKernelUnits::cm; + dep = dep*Gaudi::Units::cm; // start+depth of HEC1 + gap zcent = rec->getDouble("ZSTART") + rec->getDouble("PLATE_0")/2. + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0")) + rec->getDouble("GAPWHL") ; - zcent = zcent*GeoModelKernelUnits::cm + dep/2.; + zcent = zcent*Gaudi::Units::cm + dep/2.; if (alvol == CaloSubdetNames::HEC2_NEG) zcent = -1. * zcent; - //ri = 37.2*GeoModelKernelUnits::cm; - //ra = 213.0*GeoModelKernelUnits::cm; - //dep = (609.5 - 513.4)*GeoModelKernelUnits::cm; - //zcent = (513.4 + dep/2.)*GeoModelKernelUnits::cm; + //ri = 37.2*Gaudi::Units::cm; + //ra = 213.0*Gaudi::Units::cm; + //dep = (609.5 - 513.4)*Gaudi::Units::cm; + //zcent = (513.4 + dep/2.)*Gaudi::Units::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -517,15 +517,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*GeoModelKernelUnits::cm; + nb = 8.6*Gaudi::Units::cm; rmin.push_back( nb ); - nb = 47.5*GeoModelKernelUnits::cm; + nb = 47.5*Gaudi::Units::cm; rmax.push_back( nb ); - nb = 45.*GeoModelKernelUnits::cm; + nb = 45.*Gaudi::Units::cm; depth.push_back( nb/2. ); - nb = (466.85 + nb/2. )*GeoModelKernelUnits::cm; + nb = (466.85 + nb/2. )*Gaudi::Units::cm; if (alvol == CaloSubdetNames::FCAL1_NEG) nb = -1. * nb; z.push_back( nb ); @@ -536,15 +536,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*GeoModelKernelUnits::cm; + nb = 8.6*Gaudi::Units::cm; rmin.push_back( nb ); - nb = 47.5*GeoModelKernelUnits::cm; + nb = 47.5*Gaudi::Units::cm; rmax.push_back( nb ); - nb = 45.*GeoModelKernelUnits::cm; + nb = 45.*Gaudi::Units::cm; depth.push_back( nb/2. ); - nb = (512.3 + nb/2. )*GeoModelKernelUnits::cm; + nb = (512.3 + nb/2. )*Gaudi::Units::cm; if (alvol == CaloSubdetNames::FCAL2_NEG) nb = -1. * nb; z.push_back( nb ); @@ -555,15 +555,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*GeoModelKernelUnits::cm; + nb = 8.6*Gaudi::Units::cm; rmin.push_back( nb ); - nb = 47.5*GeoModelKernelUnits::cm; + nb = 47.5*Gaudi::Units::cm; rmax.push_back( nb ); - nb = 45.*GeoModelKernelUnits::cm; + nb = 45.*Gaudi::Units::cm; depth.push_back( nb/2. ); - nb = (559.75 + nb/2. )*GeoModelKernelUnits::cm; + nb = (559.75 + nb/2. )*Gaudi::Units::cm; if (alvol == CaloSubdetNames::FCAL3_NEG) nb = -1. * nb; z.push_back( nb ); diff --git a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx index 89cb49713f73..4dec62b4abea 100755 --- a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx +++ b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx @@ -22,7 +22,6 @@ #include "GeoModelKernel/GeoTrd.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoPVConstLink.h" -#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/StoredPhysVol.h" // Trk #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h" @@ -49,8 +48,9 @@ #include "TrkGeometrySurfaces/SlidingDiscSurface.h" // StoreGate #include "StoreGate/StoreGateSvc.h" +#include "GaudiKernel/SystemOfUnits.h" -using GeoModelKernelUnits::mm; +using Gaudi::Units::mm; // constructor LAr::LArVolumeBuilder::LArVolumeBuilder(const std::string& t, const std::string& n, const IInterface* p) : diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx index 3ca351d08f0b..c324beb236a6 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx @@ -14,7 +14,7 @@ // Amg #include "GeoPrimitives/GeoPrimitives.h" // Units -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" // Trk #include "TrkDetDescrInterfaces/ITrackingVolumeArrayCreator.h" #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h" @@ -222,7 +222,7 @@ const Trk::TrackingGeometry* Muon::MuonTrackingGeometryBuilder::trackingGeometry } // find object's span with tolerance for the alignment - if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*GeoModelKernelUnits::deg); + if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*Gaudi::Units::deg); if (!m_inertSpan) m_inertSpan = findVolumesSpan(m_inertObjs,0.,0.); // 0) Preparation ////////////////////////////////////////////////////////////////////////////////////// diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h index fa27ec620feb..0c0fee583a1d 100755 --- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h +++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h @@ -15,7 +15,7 @@ //<<<<<< INCLUDES >>>>>> #include "StoreGate/StoreGateSvc.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include <string> #include <iostream> @@ -176,19 +176,19 @@ namespace MuonGM { //std::cout<<" ProcessMDT "<<s<<" index "<<i<<" jsta ="<<wmdt[i].iw<<std::endl; mdt->numOfLayers=wmdt[i].laymdt; - mdt->innerRadius=wmdt[i].tubrad*GeoModelKernelUnits::cm; - mdt->totalThickness=wmdt[i].tubsta*GeoModelKernelUnits::cm; - mdt->pitch=wmdt[i].tubpit*GeoModelKernelUnits::cm; + mdt->innerRadius=wmdt[i].tubrad*Gaudi::Units::cm; + mdt->totalThickness=wmdt[i].tubsta*Gaudi::Units::cm; + mdt->pitch=wmdt[i].tubpit*Gaudi::Units::cm; mdt->thickness=mdt->totalThickness; mdt->tubeDeadLength = 0; // cannot be defined here (it depends on chamber size) //mdt->endPlugLength is not OK in p03 - //mdt->endPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm; - mdt->tubeEndPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm; + //mdt->endPlugLength = wmdt[i].tubdea*Gaudi::Units::cm; + mdt->tubeEndPlugLength = wmdt[i].tubdea*Gaudi::Units::cm; - mdt->tubeWallThickness = wmdt[i].tubwal*GeoModelKernelUnits::cm; + mdt->tubeWallThickness = wmdt[i].tubwal*Gaudi::Units::cm; - for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*GeoModelKernelUnits::cm; - for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*GeoModelKernelUnits::cm; + for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*Gaudi::Units::cm; + for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*Gaudi::Units::cm; //std::cout << mdt->numOfLayers << std::endl; } //std::cout<<" nstruct in processMDT "<< nStruct<<" at iter "<<i<<std::endl; @@ -214,17 +214,17 @@ namespace MuonGM { //std::cout << " TECH. A new RPC named " <<s<<" nrpc = "<<nrpc<<std::endl; //std::cout<<" Creating a RPC at "<<rpc<<" named "<<s<<std::endl; - rpc->centralSupPanelThickness = (wrpcall->tckfsp)*GeoModelKernelUnits::cm; - rpc->centralAlSupPanelThickness = (wrpcall->ackfsp)*GeoModelKernelUnits::cm; + rpc->centralSupPanelThickness = (wrpcall->tckfsp)*Gaudi::Units::cm; + rpc->centralAlSupPanelThickness = (wrpcall->ackfsp)*Gaudi::Units::cm; if (RPCprint) std::cout<<"ProcessRPC:: RPC central sup panel: tot & Al "<<rpc->centralSupPanelThickness<<" " <<rpc->centralAlSupPanelThickness<<std::endl; - rpc->bakeliteThickness =(wrpcall->tckbak)*GeoModelKernelUnits::cm; - rpc->bakeliteframesize =0.5*(wrpcall->sdedmi)*GeoModelKernelUnits::cm; - rpc->gasThickness =(wrpcall->tckgas)*GeoModelKernelUnits::cm; - rpc->bakelitePetThickness =0.190*GeoModelKernelUnits::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc! - rpc->totalAirThickness = 0.52*GeoModelKernelUnits::mm; // TBM added + rpc->bakeliteThickness =(wrpcall->tckbak)*Gaudi::Units::cm; + rpc->bakeliteframesize =0.5*(wrpcall->sdedmi)*Gaudi::Units::cm; + rpc->gasThickness =(wrpcall->tckgas)*Gaudi::Units::cm; + rpc->bakelitePetThickness =0.190*Gaudi::Units::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc! + rpc->totalAirThickness = 0.52*Gaudi::Units::mm; // TBM added rpc->GasGapThickness=2.*rpc->bakeliteThickness+ rpc->gasThickness + 2.*rpc->bakelitePetThickness + @@ -242,26 +242,26 @@ namespace MuonGM { if (RPCprint) std::cout<<"ProcessRPC::WARNING redefining RPC::bakeliteThickness to include pet " <<rpc->bakeliteThickness<<std::endl; - rpc->spacerDiameter =(wrpcall->spdiam)*GeoModelKernelUnits::cm; - rpc->spacerPitch =(wrpcall->sppitc)*GeoModelKernelUnits::cm; + rpc->spacerDiameter =(wrpcall->spdiam)*Gaudi::Units::cm; + rpc->spacerPitch =(wrpcall->sppitc)*Gaudi::Units::cm; rpc->MidChamberDeadRegion_in_s =2.*rpc->bakeliteframesize; - rpc->MidChamberDeadRegion_in_z =(wrpcall->zdedmi)*GeoModelKernelUnits::cm; + rpc->MidChamberDeadRegion_in_z =(wrpcall->zdedmi)*Gaudi::Units::cm; if (RPCprint) std::cout<<" ProcessRPC:: spacerDiam, pitch, MidChamberDeadRegion_in_s, MidChamberDeadRegion_in_z " <<rpc->spacerDiameter<<" "<<rpc->spacerPitch<<" " <<rpc->MidChamberDeadRegion_in_s<<" "<<rpc->MidChamberDeadRegion_in_z<<std::endl; - rpc->petFoilThickness =0.190*GeoModelKernelUnits::mm; //TBM this is the same as bakelite PET thickness? + rpc->petFoilThickness =0.190*Gaudi::Units::mm; //TBM this is the same as bakelite PET thickness? if (RPCprint) std::cout <<"ProcessRPC:: defining RPC::petfoilThickness = "<<rpc->petFoilThickness <<std::endl; - rpc->stripPanelFoamThickness =(wrpcall->tckssu)*GeoModelKernelUnits::cm; - rpc->stripPanelCopperSkinThickness =(wrpcall->tckstr)*GeoModelKernelUnits::cm; - rpc->stripPanelStripSidePetThickness =0.25*GeoModelKernelUnits::mm; //missing in AmdbNova - rpc->stripPanelGroundSidePetThickness =0.07*GeoModelKernelUnits::mm; //missing in AmdbNova - rpc->frontendBoardWidth = 36.*GeoModelKernelUnits::mm; - rpc->backendBoardWidth = 21.*GeoModelKernelUnits::mm; + rpc->stripPanelFoamThickness =(wrpcall->tckssu)*Gaudi::Units::cm; + rpc->stripPanelCopperSkinThickness =(wrpcall->tckstr)*Gaudi::Units::cm; + rpc->stripPanelStripSidePetThickness =0.25*Gaudi::Units::mm; //missing in AmdbNova + rpc->stripPanelGroundSidePetThickness =0.07*Gaudi::Units::mm; //missing in AmdbNova + rpc->frontendBoardWidth = 36.*Gaudi::Units::mm; + rpc->backendBoardWidth = 21.*Gaudi::Units::mm; if (RPCprint) std::cout <<"ProcessRPC:: stp panel: foam, 2*copper, petg, pets, fe, be " <<rpc->stripPanelFoamThickness<<" " @@ -283,7 +283,7 @@ namespace MuonGM { <<"ProcessRPC::WARNING redefining RPC::stripPanelFoamThickness to include pet on both sides " <<rpc->stripPanelFoamThickness <<std::endl; - rpc->rpcLayerThickness =(wrpcall->tckrla)*GeoModelKernelUnits::cm; + rpc->rpcLayerThickness =(wrpcall->tckrla)*Gaudi::Units::cm; double rpcLayerComputedTck = rpc->GasGapThickness + 2*rpc->stripPanelThickness + rpc->petFoilThickness; if (RPCprint) std::cout<<"ProcessRPC:: rpcLayerComputedTck = "<<rpcLayerComputedTck @@ -308,8 +308,8 @@ namespace MuonGM { done = true; //std::cout<<" done for jtech, wrpc[i].jsta = "<<jtech<<" "<<wrpc[i].jsta<<std::endl; - rpc->externalSupPanelThickness =(wrpcall->tlohcb)*GeoModelKernelUnits::cm; //TBM - rpc->externalAlSupPanelThickness =(wrpcall->alohcb)*GeoModelKernelUnits::cm; //TBM + rpc->externalSupPanelThickness =(wrpcall->tlohcb)*Gaudi::Units::cm; //TBM + rpc->externalAlSupPanelThickness =(wrpcall->alohcb)*Gaudi::Units::cm; //TBM if (RPCprint) std::cout<<"ProcessRPC:: RPC external sup panel: tot & Al " <<rpc->centralSupPanelThickness<<" " <<rpc->centralAlSupPanelThickness<<std::endl; @@ -323,13 +323,13 @@ namespace MuonGM { rpc->externalSupPanelThickness; if (RPCprint) std::cout<<"ProcessRPC:: (computed) Total RPC thickness = " <<rpc->TotalThickness<<std::endl; - rpc->maxThickness = 46.*GeoModelKernelUnits::mm; // TBM same as (wrpcall->tottck)*GeoModelKernelUnits::cm; + rpc->maxThickness = 46.*Gaudi::Units::mm; // TBM same as (wrpcall->tottck)*Gaudi::Units::cm; rpc->thickness = rpc->maxThickness; if (RPCprint) std::cout<<"ProcessRPC:: RPC max thickness "<<rpc->maxThickness <<std::endl; - rpc->stripPitchS =(wrpc[i].spitch)*GeoModelKernelUnits::cm; - rpc->stripPitchZ =(wrpc[i].zpitch)*GeoModelKernelUnits::cm; - rpc->stripSeparation =(wrpc[i].dedstr)*GeoModelKernelUnits::cm; + rpc->stripPitchS =(wrpc[i].spitch)*Gaudi::Units::cm; + rpc->stripPitchZ =(wrpc[i].zpitch)*Gaudi::Units::cm; + rpc->stripSeparation =(wrpc[i].dedstr)*Gaudi::Units::cm; if (RPCprint) std::cout<<"ProcessRPC:: s_pitch, z_pitch " <<rpc->stripPitchS <<" "<<rpc->stripPitchZ<<std::endl; @@ -375,11 +375,11 @@ namespace MuonGM { if( s.substr(3,s.size()-3) == MuonGM::buildString(wtgcall[i].jsta,2) ) { tgc->nlayers =wtgcall[i].nbevol; - tgc->thickness=wtgcall[i].widchb*GeoModelKernelUnits::cm; + tgc->thickness=wtgcall[i].widchb*Gaudi::Units::cm; //std::cout<<" ProcessTGC accepted "<<s<<" index "<<i<<" jsta ="<<wtgcall[i].jsta // <<" internal struct has "<<tgc->nlayers<<" layers; thickness is "<<tgc->thickness<<std::endl; - tgc->frame_h =wtgcall[i].fwirch*GeoModelKernelUnits::cm; - tgc->frame_ab =wtgcall[i].fwixch*GeoModelKernelUnits::cm; + tgc->frame_h =wtgcall[i].fwirch*Gaudi::Units::cm; + tgc->frame_ab =wtgcall[i].fwixch*Gaudi::Units::cm; //int subtype = wtgcall[i].jsta; // std::cout<<" thick, frame_h, frame_ab "<< tgc->thickness // <<" "<<tgc->frame_h<<" "<<tgc->frame_ab<<std::endl; @@ -394,8 +394,8 @@ namespace MuonGM { n++; //std::cout<<" select this by jsta = "<<wtgc[j].jsta<<" until now "<<n<<" selected"<<std::endl; mat=(int)wtgc[j].icovol; - p=wtgc[j].zpovol*GeoModelKernelUnits::cm; - t=wtgc[j].widvol*GeoModelKernelUnits::cm; + p=wtgc[j].zpovol*Gaudi::Units::cm; + t=wtgc[j].widvol*Gaudi::Units::cm; tgc->materials.push_back(v[mat-1]); //std::cerr<<" Processing TGC iw = "<<s<<" mat = "<<mat<<" v[mat-1] "<<v[mat-1]<<std::endl; tgc->positions.push_back(p); @@ -454,25 +454,25 @@ namespace MuonGM { // std::cout<<" ProcessCSC "<<s<<" index "<<i<<" jsta ="<<wcsc[i].jsta<<std::endl; csc->numOfLayers=wcsc[i].laycsc; - csc->totalThickness=wcsc[i].ttotal*GeoModelKernelUnits::cm; + csc->totalThickness=wcsc[i].ttotal*Gaudi::Units::cm; csc->thickness=csc->totalThickness; - csc->honeycombthick=wcsc[i].tnomex*GeoModelKernelUnits::cm; + csc->honeycombthick=wcsc[i].tnomex*Gaudi::Units::cm; - csc->g10thick=wcsc[i].tlag10*GeoModelKernelUnits::cm; //csc->g10thick=0.0820*GeoModelKernelUnits::cm; + csc->g10thick=wcsc[i].tlag10*Gaudi::Units::cm; //csc->g10thick=0.0820*Gaudi::Units::cm; // wire spacing - csc->wirespacing =wcsc[i].wispa*GeoModelKernelUnits::cm; + csc->wirespacing =wcsc[i].wispa*Gaudi::Units::cm; // anode-cathode distance - csc->anocathodist=wcsc[i].dancat*GeoModelKernelUnits::cm; + csc->anocathodist=wcsc[i].dancat*Gaudi::Units::cm; // gapbetwcathstrips - csc->gapbetwcathstrips=wcsc[i].gstrip*GeoModelKernelUnits::cm; + csc->gapbetwcathstrips=wcsc[i].gstrip*Gaudi::Units::cm; // precision (Radial) strip pitch - csc->cathreadoutpitch=wcsc[i].pcatre*GeoModelKernelUnits::cm; // it was not used before but set by hand in CscReadoutEl. + csc->cathreadoutpitch=wcsc[i].pcatre*Gaudi::Units::cm; // it was not used before but set by hand in CscReadoutEl. // Azimuthal strip pitch - //csc->phireadoutpitch = wcsc[i].psndco*GeoModelKernelUnits::cm; - csc->phireadoutpitch = wcsc[i].azcat*GeoModelKernelUnits::cm; + //csc->phireadoutpitch = wcsc[i].psndco*Gaudi::Units::cm; + csc->phireadoutpitch = wcsc[i].azcat*Gaudi::Units::cm; //std::cerr<<" do we come here ??? csc->phireadoutpitch = "<<csc->phireadoutpitch<<std::endl; //std::cerr<<" csc->phireadoutpitch = "<<csc->phireadoutpitch<<" csc->cathreadoutpitch "<< csc->cathreadoutpitch<<std::endl; @@ -485,20 +485,20 @@ namespace MuonGM { csc->nPhistrips = 48; // precision (Radial) strip width - csc->readoutstripswidth=wcsc[i].wrestr*GeoModelKernelUnits::cm; + csc->readoutstripswidth=wcsc[i].wrestr*Gaudi::Units::cm; // Azimuthal strip width csc->floatingstripswidth =0.; - csc->phistripwidth = wcsc[i].wflstr*GeoModelKernelUnits::cm; // CTB and layout Q interpretation + csc->phistripwidth = wcsc[i].wflstr*Gaudi::Units::cm; // CTB and layout Q interpretation // dead materials - csc->rectwasherthick=wcsc[i].trrwas*GeoModelKernelUnits::cm; - csc->roxacellwith = 54.96*GeoModelKernelUnits::mm; // CTB, layout Q, R, etc: must be computed - csc->roxwirebargap=wcsc[i].groxwi*GeoModelKernelUnits::cm; - csc->fullgasgapwirewidth=wcsc[i].wgasba*GeoModelKernelUnits::cm; - csc->fullwirefixbarwidth=wcsc[i].wfixwi*GeoModelKernelUnits::cm; - csc->wirebarposx=wcsc[i].pba1wi*GeoModelKernelUnits::cm; - csc->wirebarposy=wcsc[i].pba2wi*GeoModelKernelUnits::cm; - csc->wirebarposz=wcsc[i].pba3wi*GeoModelKernelUnits::cm; + csc->rectwasherthick=wcsc[i].trrwas*Gaudi::Units::cm; + csc->roxacellwith = 54.96*Gaudi::Units::mm; // CTB, layout Q, R, etc: must be computed + csc->roxwirebargap=wcsc[i].groxwi*Gaudi::Units::cm; + csc->fullgasgapwirewidth=wcsc[i].wgasba*Gaudi::Units::cm; + csc->fullwirefixbarwidth=wcsc[i].wfixwi*Gaudi::Units::cm; + csc->wirebarposx=wcsc[i].pba1wi*Gaudi::Units::cm; + csc->wirebarposy=wcsc[i].pba2wi*Gaudi::Units::cm; + csc->wirebarposz=wcsc[i].pba3wi*Gaudi::Units::cm; // std::cerr<<"A) tname, s, csc->numOfLayers "<<tname<<" "<<s<<" "<<csc->numOfLayers<<std::endl; if (tname == s) return; @@ -524,14 +524,14 @@ namespace MuonGM { log<<MSG::WARNING<<" update by hand a few numbers for the current technology sub-type "<<s <<" // Layout = "<<mysql->getGeometryVersion()<<" OK if layout is Q02, Q02_initial"<<endmsg; // precision (Radial) strip pitch - csc->cathreadoutpitch =5.31*GeoModelKernelUnits::mm; + csc->cathreadoutpitch =5.31*Gaudi::Units::mm; // Azimuthal strip pitch - csc->phireadoutpitch =21.0*GeoModelKernelUnits::mm; + csc->phireadoutpitch =21.0*Gaudi::Units::mm; // precision (Radial) strip width - csc->readoutstripswidth=1.52*GeoModelKernelUnits::mm; + csc->readoutstripswidth=1.52*Gaudi::Units::mm; // Azimuthal strip width csc->floatingstripswidth = 0; // layout P interpretation - csc->phistripwidth =20.60*GeoModelKernelUnits::mm; + csc->phistripwidth =20.60*Gaudi::Units::mm; return; } } @@ -552,9 +552,9 @@ namespace MuonGM { //std::cerr << " TECH. A new SPA named " <<s<<" nspa = "<<nspa<<std::endl; for (unsigned int i=0; i<dhwspa->size(); i++) { // sprintf(ind,"%i",wspa[i].type); - //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm; + //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*Gaudi::Units::cm; if( s.substr(3,s.size()-3) == MuonGM::buildString(wspa[i].jsta,2) ) - spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm; + spa->thickness=wspa[i].tckspa*Gaudi::Units::cm; } } // end of ProcessSPA @@ -576,17 +576,17 @@ namespace MuonGM { // sprintf(ind,"%i",wsup[i].type); if( s.substr(3,s.size()-3) == MuonGM::buildString(wsup[i].jsta,2) ) { - sup->alFlangeThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm; + sup->alFlangeThickness=wsup[i].xxsup[0]*Gaudi::Units::cm; //if (s[3]=='3') //SUP3 if( s.substr(3,s.size()-3) == "03" ) { - sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*GeoModelKernelUnits::cm; - sup->alVerFlangeLength=wsup[i].xxsup[1]*GeoModelKernelUnits::cm - wsup[i].xxsup[0]*GeoModelKernelUnits::cm; - sup->alVerProfileThickness=wsup[i].zzsup[3]*GeoModelKernelUnits::cm; - sup->alHorProfileThickness=wsup[i].xxsup[3]*GeoModelKernelUnits::cm - wsup[i].xxsup[2]*GeoModelKernelUnits::cm; - sup->largeVerClearance=wsup[i].xxsup[3]*GeoModelKernelUnits::cm; - sup->smallVerClearance=wsup[i].xxsup[2]*GeoModelKernelUnits::cm; - sup->HorClearance=wsup[i].zzsup[2]*GeoModelKernelUnits::cm; + sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*Gaudi::Units::cm; + sup->alVerFlangeLength=wsup[i].xxsup[1]*Gaudi::Units::cm - wsup[i].xxsup[0]*Gaudi::Units::cm; + sup->alVerProfileThickness=wsup[i].zzsup[3]*Gaudi::Units::cm; + sup->alHorProfileThickness=wsup[i].xxsup[3]*Gaudi::Units::cm - wsup[i].xxsup[2]*Gaudi::Units::cm; + sup->largeVerClearance=wsup[i].xxsup[3]*Gaudi::Units::cm; + sup->smallVerClearance=wsup[i].xxsup[2]*Gaudi::Units::cm; + sup->HorClearance=wsup[i].zzsup[2]*Gaudi::Units::cm; sup->xAMDB0 = -sup->largeVerClearance -sup->alHorProfileThickness/2.; sup->yAMDB0 = 0.; sup->zAMDB0 = - sup->alVerProfileThickness @@ -596,11 +596,11 @@ namespace MuonGM { } else //SUP1 and SUP2 { - sup->alHorFlangeLength=wsup[i].zzsup[0]*GeoModelKernelUnits::cm; + sup->alHorFlangeLength=wsup[i].zzsup[0]*Gaudi::Units::cm; sup->alVerFlangeLength=0.; - sup->alVerProfileThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm; + sup->alVerProfileThickness=wsup[i].xxsup[0]*Gaudi::Units::cm; sup->alHorProfileThickness=0.; - sup->largeVerClearance=wsup[i].xxsup[1]*GeoModelKernelUnits::cm; + sup->largeVerClearance=wsup[i].xxsup[1]*Gaudi::Units::cm; sup->smallVerClearance=0.; sup->HorClearance=0.; double totzgm = 2.*sup->alHorFlangeLength+sup->alVerProfileThickness+sup->HorClearance; @@ -643,11 +643,11 @@ namespace MuonGM { for (unsigned int i=0; i<dhwded->size(); i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wded[i].jsta,2) ) { -// ded->AlThickness=(wded[i].tckded)*GeoModelKernelUnits::cm; -// ded->AlThickness = ded->AlThickness * GeoModelKernelUnits::cm; +// ded->AlThickness=(wded[i].tckded)*Gaudi::Units::cm; +// ded->AlThickness = ded->AlThickness * Gaudi::Units::cm; // a lot of confusion in the various versions of the geometry in nova - ded->AlThickness=0.3*GeoModelKernelUnits::mm; - ded->thickness=(wded[i].auphcb)*GeoModelKernelUnits::cm; + ded->AlThickness=0.3*Gaudi::Units::mm; + ded->thickness=(wded[i].auphcb)*Gaudi::Units::cm; ded->HoneyCombThickness=ded->thickness-2.*ded->AlThickness; break; } @@ -670,9 +670,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wchv[i].jsta,2) ) { - chv->thickness=wchv[i].thickness*GeoModelKernelUnits::cm; - chv->largeness=wchv[i].largeness*GeoModelKernelUnits::cm; - chv->height=wchv[i].heightness*GeoModelKernelUnits::cm; + chv->thickness=wchv[i].thickness*Gaudi::Units::cm; + chv->largeness=wchv[i].largeness*Gaudi::Units::cm; + chv->height=wchv[i].heightness*Gaudi::Units::cm; } } }// end of ProcessCHV @@ -694,9 +694,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wcro[i].jsta,2) ) { - cro->thickness=wcro[i].thickness*GeoModelKernelUnits::cm; - cro->largeness=wcro[i].largeness*GeoModelKernelUnits::cm; - cro->height=wcro[i].heightness*GeoModelKernelUnits::cm; + cro->thickness=wcro[i].thickness*Gaudi::Units::cm; + cro->largeness=wcro[i].largeness*Gaudi::Units::cm; + cro->height=wcro[i].heightness*Gaudi::Units::cm; //std::cerr<<" thick, width, height "<<cro->thickness<<" "<<cro->largeness<<" "<<cro->height<<std::endl; } } @@ -719,9 +719,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wcmi[i].jsta,2) ) { - cmi->thickness=wcmi[i].thickness*GeoModelKernelUnits::cm; - cmi->largeness=wcmi[i].largeness*GeoModelKernelUnits::cm; - cmi->height=wcmi[i].heightness*GeoModelKernelUnits::cm; + cmi->thickness=wcmi[i].thickness*Gaudi::Units::cm; + cmi->largeness=wcmi[i].largeness*Gaudi::Units::cm; + cmi->height=wcmi[i].heightness*Gaudi::Units::cm; } } }// end of ProcessCMI @@ -743,10 +743,10 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(2,s.size()-2) == MuonGM::buildString(wlbi[i].jsta,2) ) { - lbi->thickness=wlbi[i].thickness*GeoModelKernelUnits::cm; - lbi->height=wlbi[i].height*GeoModelKernelUnits::cm; - lbi->lowerThickness=wlbi[i].lowerThickness*GeoModelKernelUnits::cm; - lbi->yShift=wlbi[i].yShift*GeoModelKernelUnits::cm; + lbi->thickness=wlbi[i].thickness*Gaudi::Units::cm; + lbi->height=wlbi[i].height*Gaudi::Units::cm; + lbi->lowerThickness=wlbi[i].lowerThickness*Gaudi::Units::cm; + lbi->yShift=wlbi[i].yShift*Gaudi::Units::cm; } } } // end of ProcessLBI @@ -860,13 +860,13 @@ namespace MuonGM { //std::cout<<" ---- iz,fi "<<p.zindex<<", "<<p.phiindex; p.phi = aptp[ipos].dphi+double(phiindex)*45.; //std::cout<<" phi is "<<p.phi; - p.radius = aptp[ipos].r*GeoModelKernelUnits::cm; + p.radius = aptp[ipos].r*Gaudi::Units::cm; //std::cout<<" r is "<<p.radius<<std::endl; - p.z = aptp[ipos].z*GeoModelKernelUnits::cm; + p.z = aptp[ipos].z*Gaudi::Units::cm; if (p.zindex<0 && name.substr(0,1) == "B" && hasMdts) p.z = p.z-halfpitch; //std::cout<<" z is "<<p.z<<std::endl; - p.shift = aptp[ipos].s*GeoModelKernelUnits::cm; + p.shift = aptp[ipos].s*Gaudi::Units::cm; if (verbose_posmap) std::cout<<"p.zindex,p.phi "<<p.zindex<<" "<<p.phiindex<<" shift is "<<p.shift<<std::endl; // amdb seems to follow the opposite convention about the sign // of rotation around the azimuthal axis (foro them it is a rotation @@ -1045,9 +1045,9 @@ namespace MuonGM { // std::cout << "FindPosition found the match for " << stname // << std::endl; AlignPos ap; - ap.tras=0.*GeoModelKernelUnits::cm; // in cm from NOVA... - ap.traz=0.*GeoModelKernelUnits::cm; // in cm - ap.trat=0.*GeoModelKernelUnits::cm; // in cm + ap.tras=0.*Gaudi::Units::cm; // in cm from NOVA... + ap.traz=0.*Gaudi::Units::cm; // in cm + ap.trat=0.*Gaudi::Units::cm; // in cm ap.rots=0.; // in radians ap.rotz=0.; // in radians ap.rott=0.; // in radians @@ -1055,9 +1055,9 @@ namespace MuonGM { if (controlAlines >= 111111) { - ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm; // in cm from NOVA... - ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm; // in cm - ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm; // in cm + ap.tras=aszt[ipos].tras*Gaudi::Units::cm; // in cm from NOVA... + ap.traz=aszt[ipos].traz*Gaudi::Units::cm; // in cm + ap.trat=aszt[ipos].trat*Gaudi::Units::cm; // in cm ap.rots=aszt[ipos].rots; // in radians ap.rotz=aszt[ipos].rotz; // in radians ap.rott=aszt[ipos].rott; // in radians @@ -1083,17 +1083,17 @@ namespace MuonGM { } if (int(controlAlines/1000)%10 != 0) { - ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm; + ap.trat=aszt[ipos].trat*Gaudi::Units::cm; //std::cout<<" setting up t-translation "<<ap.trat<<endl; } if (int(controlAlines/10000)%10 != 0) { - ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm; + ap.traz=aszt[ipos].traz*Gaudi::Units::cm; //std::cout<<" setting up z-translation "<<ap.traz<<endl; } if (int(controlAlines/100000)%10 != 0) { - ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm; + ap.tras=aszt[ipos].tras*Gaudi::Units::cm; //std::cout<<" setting up s-translation "<<ap.tras<<endl; } } @@ -1153,7 +1153,7 @@ namespace MuonGM { // that doesn't seem right for BME/BMG chambers - no idea if has an impact at the end // in any case it was wrong since every and would have been wrong also in previous code - double default_halfpitch = 15.0175*GeoModelKernelUnits::mm; + double default_halfpitch = 15.0175*Gaudi::Units::mm; double halfpitch = default_halfpitch; // loop over the banks of station components: ALMN @@ -1220,7 +1220,7 @@ namespace MuonGM { << " for " << name << std::endl; continue; } - halfpitch = 0.5*wmdt[jtech-1].tubpit*GeoModelKernelUnits::cm; + halfpitch = 0.5*wmdt[jtech-1].tubpit*Gaudi::Units::cm; log << MSG::DEBUG << "Found new halfpitch: " << halfpitch << " for " << name << std::endl; @@ -1268,19 +1268,19 @@ namespace MuonGM { } // define here common properties - c->posx=almn[icomp].dx*GeoModelKernelUnits::cm; - c->posy=almn[icomp].dy*GeoModelKernelUnits::cm; - c->posz=almn[icomp].dz*GeoModelKernelUnits::cm; + c->posx=almn[icomp].dx*Gaudi::Units::cm; + c->posy=almn[icomp].dy*Gaudi::Units::cm; + c->posz=almn[icomp].dz*Gaudi::Units::cm; c->index=almn[icomp].job; c->name=cartec+MuonGM::buildString(almn[icomp].iw, 2); c->iswap=almn[icomp].ishape; - c->dx1=almn[icomp].width_xs*GeoModelKernelUnits::cm; - c->dx2=almn[icomp].width_xl*GeoModelKernelUnits::cm; - c->dy=almn[icomp].length_y*GeoModelKernelUnits::cm; - c->excent=almn[icomp].excent*GeoModelKernelUnits::cm; - c->deadx=almn[icomp].dead1*GeoModelKernelUnits::cm; - c->deady=almn[icomp].dead2*GeoModelKernelUnits::cm; - c->dead3=almn[icomp].dead3*GeoModelKernelUnits::cm; + c->dx1=almn[icomp].width_xs*Gaudi::Units::cm; + c->dx2=almn[icomp].width_xl*Gaudi::Units::cm; + c->dy=almn[icomp].length_y*Gaudi::Units::cm; + c->excent=almn[icomp].excent*Gaudi::Units::cm; + c->deadx=almn[icomp].dead1*Gaudi::Units::cm; + c->deady=almn[icomp].dead2*Gaudi::Units::cm; + c->dead3=almn[icomp].dead3*Gaudi::Units::cm; //std::cout<<" This component of station "<<name<<" is a "<<c->name<<std::endl; if (cartec == "CSC") @@ -1289,10 +1289,10 @@ namespace MuonGM { if (derc == NULL) std::cout<<" There is a problem"<<std::endl; if (name[2] == 'L'){ //std::cout<<" here is a CSL ..."<<std::endl; - derc->dy = 1129.20*GeoModelKernelUnits::mm; // AMDB-Q and CTB + derc->dy = 1129.20*Gaudi::Units::mm; // AMDB-Q and CTB // DHW: fix values from AMDB - //else derc->dy = 1111.5*GeoModelKernelUnits::mm; - derc->maxwdy = almn[icomp].length_y*GeoModelKernelUnits::cm; + //else derc->dy = 1111.5*Gaudi::Units::mm; + derc->maxwdy = almn[icomp].length_y*Gaudi::Units::cm; } else derc->maxwdy = c->dy; //ProcessCSC(derc->name); @@ -1302,7 +1302,7 @@ namespace MuonGM { derc->maxwdy = derc->dy; if (jtech == 6 && name.substr(0,3) == "CSL") { - derc->dy = 1129.20*GeoModelKernelUnits::mm; // AMDB-Q and CTB + derc->dy = 1129.20*Gaudi::Units::mm; // AMDB-Q and CTB } //ProcessSPA(derc->name); } @@ -1409,10 +1409,10 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin, << " component with subcut i="<<alin[ialin].i << endmsg; Cutout *c = new Cutout(); - c->dx = alin[ialin].dx*GeoModelKernelUnits::cm; - c->dy = alin[ialin].dy*GeoModelKernelUnits::cm; - c->widthXs = alin[ialin].width_xs*GeoModelKernelUnits::cm; - c->widthXl = alin[ialin].width_xl*GeoModelKernelUnits::cm; + c->dx = alin[ialin].dx*Gaudi::Units::cm; + c->dy = alin[ialin].dy*Gaudi::Units::cm; + c->widthXs = alin[ialin].width_xs*Gaudi::Units::cm; + c->widthXl = alin[ialin].width_xl*Gaudi::Units::cm; //std::string::size_type locmystr = mysql->get_DBMuonVersion().find("Egg"); //if ( locmystr != std::string::npos ) //{ @@ -1425,19 +1425,19 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin, // if (alin[ialin].jtyp == 11 && c->dy>0.1) // { // std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy; - // c->dy = 1021.2000*GeoModelKernelUnits::mm; + // c->dy = 1021.2000*Gaudi::Units::mm; // std::cout<<" to "<<c->dy<<std::endl; // } // else if (alin[ialin].jtyp == 11 && c->dy>0.0001) if (alin[ialin].jtyp == 11 && (c->dy>0.0001 && c->dy<1.)) { std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy; - c->dy = 0.000*GeoModelKernelUnits::mm; + c->dy = 0.000*Gaudi::Units::mm; std::cout<<" to "<<c->dy<<std::endl; } //} - c->lengthY = alin[ialin].length_y*GeoModelKernelUnits::cm; - c->excent = alin[ialin].excent*GeoModelKernelUnits::cm; + c->lengthY = alin[ialin].length_y*Gaudi::Units::cm; + c->excent = alin[ialin].excent*Gaudi::Units::cm; c->dead1 = alin[ialin].dead1; // temporary fix for bug in Nova/Oracle: 18/05/2006 I don't think this is needed anymore // c->dead1 = 10.*alin[ialin].dead1; diff --git a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx index cc232c572336..7844e3848879 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx @@ -10,7 +10,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" namespace MuonGM { @@ -79,15 +79,15 @@ const GeoShape* Cutout::build() double alpha = atan(2.*excent/lengthY); // polar and azimuthal angles of vector describing offset of // cutout planes: - double theta = -dead1*GeoModelKernelUnits::degree; - double phi = -90.*GeoModelKernelUnits::degree; + double theta = -dead1*Gaudi::Units::degree; + double phi = -90.*Gaudi::Units::degree; // GeoPara requires the +/- z faces be parallel to the x-y plane, // so choose x = width, y=length, z=thickness: GeoPara *cutoutpara = new GeoPara(widthXs/2.,lengthY/2.,thickness/2., alpha,theta,phi); // now rotate it so thickness is x-axis, width is y-axis, length z-axis: - GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)* - GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree); + GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*Gaudi::Units::degree)* + GeoTrf::RotateY3D(-90.*Gaudi::Units::degree); xfTemp = xfTemp * xRot; sCutout = & ( (*cutoutpara) <<xfTemp); cutoutpara->ref(); @@ -95,7 +95,7 @@ const GeoShape* Cutout::build() } else { - GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*GeoModelKernelUnits::degree,90.*GeoModelKernelUnits::degree, + GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*Gaudi::Units::degree,90.*Gaudi::Units::degree, excent,widthXs/2.,widthXl/2., atan((2.*excent+(widthXl-widthXs)/2.)/ lengthY), @@ -104,8 +104,8 @@ const GeoShape* Cutout::build() lengthY) ); // now rotate it so thickness is x-axis, width is y-axis, length z-axis: - GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)* - GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree); + GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*Gaudi::Units::degree)* + GeoTrf::RotateY3D(-90.*Gaudi::Units::degree); xfTemp = xfTemp * xRot; sCutout = & ( (*cutouttrap) <<xfTemp); cutouttrap->ref(); diff --git a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx index f891c4973945..8372afc9b2cb 100755 --- a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx @@ -18,70 +18,63 @@ namespace MuonGM { -DriftTube::DriftTube(std::string n): DetectorElement(n), - length(0.) // length is set in MultiLayer.cxx +DriftTube::DriftTube(std::string n) + : DetectorElement(n) + , length(0.) // length is set in MultiLayer.cxx { - // std::cout<<" drift tube is in "<<name<<" "<<n<<std::endl; - gasMaterial="muo::ArCO2"; - tubeMaterial="std::Aluminium"; - plugMaterial="std::Bakelite"; - wireMaterial="std::Aluminium"; - MYSQL *amdb=MYSQL::GetPointer(); - MDT *md=(MDT *)amdb->GetTechnology(name.substr(0,5)); - gasRadius = md->innerRadius; - outerRadius = gasRadius+md->tubeWallThickness; - plugLength = md->tubeEndPlugLength; - -// std::cout<<" drift tube gasR, outerR, plugL "<<gasRadius<<" "<<outerRadius<<" "<<plugLength<<std::endl; -// outerRadius=1.5*GeoModelKernelUnits::cm; -// gasRadius=1.46*GeoModelKernelUnits::cm; -// plugLength=7*GeoModelKernelUnits::cm; + gasMaterial="muo::ArCO2"; + tubeMaterial="std::Aluminium"; + plugMaterial="std::Bakelite"; + wireMaterial="std::Aluminium"; + MYSQL *amdb=MYSQL::GetPointer(); + MDT *md=(MDT *)amdb->GetTechnology(name.substr(0,5)); + gasRadius = md->innerRadius; + outerRadius = gasRadius+md->tubeWallThickness; + plugLength = md->tubeEndPlugLength; } - + GeoVPhysVol *DriftTube::build() { - const GeoTube *stube = new GeoTube(0.0, outerRadius, length/2.0); - const GeoMaterial *mtube = matManager->getMaterial(tubeMaterial); - const GeoLogVol *ltube = new GeoLogVol("MDTDriftWall", stube, mtube); - GeoPhysVol *ptube = new GeoPhysVol(ltube); - - const GeoTube *splug = new GeoTube(0.0, outerRadius, plugLength/2.0); - const GeoMaterial *mplug = matManager->getMaterial(plugMaterial); - const GeoLogVol *lplug = new GeoLogVol("Endplug",splug, mplug); - GeoPhysVol *pplug = new GeoPhysVol(lplug); - - const GeoTube *sgas = new GeoTube(0, gasRadius, length/2.0-plugLength); - const GeoMaterial *mgas = matManager->getMaterial(gasMaterial); - const GeoLogVol *lgas = new GeoLogVol("SensitiveGas",sgas,mgas); - GeoPhysVol *pgas = new GeoPhysVol(lgas); - - GeoSerialDenominator *plugDenominator= new GeoSerialDenominator("Tube Endplug"); - GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length-plugLength)/2)); - GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length-plugLength)/2)); - std::string sGasName = "SensitiveGas"; - GeoNameTag *gasDenominator = new GeoNameTag(sGasName); - - ptube->add(plugDenominator); - ptube->add(ec0X); - ptube->add(pplug); - ptube->add(ec1X); - ptube->add(pplug); - ptube->add(gasDenominator); - ptube->add(pgas); - - return ptube; - - + const GeoTube *stube = new GeoTube(0.0, outerRadius, length/2.0); + const GeoMaterial *mtube = matManager->getMaterial(tubeMaterial); + const GeoLogVol *ltube = new GeoLogVol("MDTDriftWall", stube, mtube); + GeoPhysVol *ptube = new GeoPhysVol(ltube); + + const GeoTube *splug = new GeoTube(0.0, outerRadius, plugLength/2.0); + const GeoMaterial *mplug = matManager->getMaterial(plugMaterial); + const GeoLogVol *lplug = new GeoLogVol("Endplug",splug, mplug); + GeoPhysVol *pplug = new GeoPhysVol(lplug); + + const GeoTube *sgas = new GeoTube(0, gasRadius, length/2.0-plugLength); + const GeoMaterial *mgas = matManager->getMaterial(gasMaterial); + const GeoLogVol *lgas = new GeoLogVol("SensitiveGas",sgas,mgas); + GeoPhysVol *pgas = new GeoPhysVol(lgas); + + GeoSerialDenominator *plugDenominator= new GeoSerialDenominator("Tube Endplug"); + GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length-plugLength)/2)); + GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length-plugLength)/2)); + std::string sGasName = "SensitiveGas"; + GeoNameTag *gasDenominator = new GeoNameTag(sGasName); + + ptube->add(plugDenominator); + ptube->add(ec0X); + ptube->add(pplug); + ptube->add(ec1X); + ptube->add(pplug); + ptube->add(gasDenominator); + ptube->add(pgas); + + return ptube; } void DriftTube::print() { - std::cout << "Drift tube " << name.c_str() << " :" << std::endl; - std::cout << " Tube material : " << tubeMaterial.c_str() << std::endl; - std::cout << " Radius : " << outerRadius << std::endl; - std::cout << " Length : " << length; - std::cout << " Thickness : " << outerRadius-gasRadius << " mm" << std::endl; - std::cout << " Gas material : " << gasMaterial.c_str() << std::endl; - std::cout << " EP length : " << plugLength << std::endl; + std::cout << "Drift tube " << name.c_str() << " :" << std::endl; + std::cout << " Tube material : " << tubeMaterial.c_str() << std::endl; + std::cout << " Radius : " << outerRadius << std::endl; + std::cout << " Length : " << length; + std::cout << " Thickness : " << outerRadius-gasRadius << " mm" << std::endl; + std::cout << " Gas material : " << gasMaterial.c_str() << std::endl; + std::cout << " EP length : " << plugLength << std::endl; } } // namespace MuonGM diff --git a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx index d928e6b937ba..f627916c1090 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx @@ -20,7 +20,6 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoGenericFunctions/Variable.h" // for cutouts #include "GeoModelKernel/GeoShape.h" @@ -28,6 +27,7 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoTube.h" +#include "GaudiKernel/SystemOfUnits.h" #include <vector> #include <cassert> @@ -88,11 +88,11 @@ GeoFullPhysVol* MultiLayer::build() if (foamthicknessup > foamthicknesslow) { foamthicknesslow = 0.; - if (fabs(foamthicknessup - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 15*GeoModelKernelUnits::mm; - else if (fabs(foamthicknessup - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.75*GeoModelKernelUnits::mm; - else if (fabs(foamthicknessup - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.00*GeoModelKernelUnits::mm; - else if (fabs(foamthicknessup - 10.00*GeoModelKernelUnits::mm) < 0.1 - && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*GeoModelKernelUnits::mm; + if (fabs(foamthicknessup - 15*Gaudi::Units::mm) < 0.1) foamthicknessup = 15*Gaudi::Units::mm; + else if (fabs(foamthicknessup - 30.75*Gaudi::Units::mm) < 0.1) foamthicknessup = 30.75*Gaudi::Units::mm; + else if (fabs(foamthicknessup - 30.00*Gaudi::Units::mm) < 0.1) foamthicknessup = 30.00*Gaudi::Units::mm; + else if (fabs(foamthicknessup - 10.00*Gaudi::Units::mm) < 0.1 + && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*Gaudi::Units::mm; else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@ foamthicknesslow = 0.; foamthicknessup = 0.; @@ -103,11 +103,11 @@ GeoFullPhysVol* MultiLayer::build() } else { foamthicknessup = 0.; - if (fabs(foamthicknesslow - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 15*GeoModelKernelUnits::mm; - else if (fabs(foamthicknesslow - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.75*GeoModelKernelUnits::mm; - else if (fabs(foamthicknesslow - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.00*GeoModelKernelUnits::mm; - else if (fabs(foamthicknesslow - 10.00*GeoModelKernelUnits::mm) < 0.1 - && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*GeoModelKernelUnits::mm; + if (fabs(foamthicknesslow - 15*Gaudi::Units::mm) < 0.1) foamthicknesslow = 15*Gaudi::Units::mm; + else if (fabs(foamthicknesslow - 30.75*Gaudi::Units::mm) < 0.1) foamthicknesslow = 30.75*Gaudi::Units::mm; + else if (fabs(foamthicknesslow - 30.00*Gaudi::Units::mm) < 0.1) foamthicknesslow = 30.00*Gaudi::Units::mm; + else if (fabs(foamthicknesslow - 10.00*Gaudi::Units::mm) < 0.1 + && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*Gaudi::Units::mm; else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@ foamthicknesslow = 0.; foamthicknessup = 0.; @@ -239,23 +239,23 @@ GeoFullPhysVol* MultiLayer::build() const GeoShape* stube = NULL; double tL = longWidth/2.0 - (tubePitch/2.)*TrdDwoverL; stube = new GeoTube(0.0, tubePitch/2., tL); - stube = & ( (*stube) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); + stube = & ( (*stube) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) ); const GeoShape* stubewithcut = NULL; if (cutoutNsteps > 1) { double toptubelength = cutoutTubeLength[cutoutNsteps-1]; if (cutoutFullLength[cutoutNsteps-1]) toptubelength = longWidth; stubewithcut = new GeoTube(0.0, tubePitch/2., toptubelength/2.0); - stubewithcut = & ( (*stubewithcut) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); + stubewithcut = & ( (*stubewithcut) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) ); } GeoShape* sbox = new GeoTrd(mdtthickness, mdtthickness, longWidth, longWidth, tubePitch/2.); GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth, - longWidth, tubePitch/4.+1*GeoModelKernelUnits::mm); + longWidth, tubePitch/4.+1*Gaudi::Units::mm); slay = &(slay->subtract( (*sbox)<<GeoTrf::Translate3D(0.,0.,length/2.))); for (int i = 0; i < nrOfLayers; i++) { - if (xx[i] > tubePitch/2. + 10.*GeoModelKernelUnits::mm) { + if (xx[i] > tubePitch/2. + 10.*Gaudi::Units::mm) { // subtract tube at the start if (verbose_multilayer) std::cout << " Cutting tube at xx = " << yy[i] << " z = " << -length/2. << std::endl; @@ -533,7 +533,7 @@ GeoFullPhysVol* MultiLayer::build() lstart = loffset - length/2. + xx[i]; GeoGenfun::Variable K; GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = GeoTrf::TranslateY3D(0.)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)* + TRANSFUNCTION t = GeoTrf::TranslateY3D(0.)*GeoTrf::RotateX3D(90*Gaudi::Units::deg)* GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt); play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1)); @@ -595,7 +595,7 @@ GeoFullPhysVol* MultiLayer::build() lstart = loffset - length/2. + xx[i]; GeoGenfun::Variable K; GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = GeoTrf::TranslateY3D(dy)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)* + TRANSFUNCTION t = GeoTrf::TranslateY3D(dy)*GeoTrf::RotateX3D(90*Gaudi::Units::deg)* GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt); play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1)); @@ -620,7 +620,7 @@ GeoFullPhysVol* MultiLayer::build() // << std::endl; GeoGenfun::Variable K; GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)* + TRANSFUNCTION t = GeoTrf::RotateX3D(90*Gaudi::Units::deg)*GeoTrf::TranslateX3D(tstart)* Pow(GeoTrf::TranslateY3D(1.0),f); GeoVPhysVol* tV = tubeVector[0]; GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrOfTubes); @@ -639,7 +639,7 @@ GeoFullPhysVol* MultiLayer::build() lstart = loffset - length/2. + xx[i]; GeoGenfun::Variable K; GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)* + TRANSFUNCTION t = GeoTrf::RotateX3D(90*Gaudi::Units::deg)*GeoTrf::TranslateX3D(tstart)* Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrTubesPerStep); play->add(new GeoSerialIdentifier(100*(i+1)+j*nrTubesPerStep + 1)); diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx index 9b7ed80bb265..76c7bfe10c2f 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx @@ -64,7 +64,7 @@ #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <vector> #include <fstream> #include <iomanip> @@ -227,10 +227,10 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, GeoShape* box = new GeoBox((totthick+2.)/2., (longWidth+2.)/2., halfpitch); box->ref(); const GeoShape* frontcyl = new GeoTube(0.0, halfpitch+0.001, longWidth/2.); - frontcyl = &( (*frontcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); + frontcyl = &( (*frontcyl) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) ); frontcyl->ref(); const GeoShape* backcyl = new GeoTube(0.0, halfpitch-0.001, (longWidth+2.)/2.); - backcyl = &( (*backcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); + backcyl = &( (*backcyl) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) ); backcyl->ref(); if (index > 0) { @@ -256,7 +256,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } } if (stname != "EIL") { - if (zi < 0 && !is_mirrored) strd = &( (*strd) << GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg) ); + if (zi < 0 && !is_mirrored) strd = &( (*strd) << GeoTrf::RotateX3D(180.*Gaudi::Units::deg) ); } box->unref(); @@ -319,21 +319,21 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // of the cutouts wrt mother volume: if ( fabs(cut->dx-600.7)<0.1 ) { - cut->dx = cut->dx + 10.*GeoModelKernelUnits::mm; - cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm; - cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm; + cut->dx = cut->dx + 10.*Gaudi::Units::mm; + cut->widthXs = cut->widthXs + 20.*Gaudi::Units::mm; + cut->widthXl = cut->widthXl + 20.*Gaudi::Units::mm; //std::cout<<" redefining par.s for BOG1 cutouts " //<<std::endl; } if ( fabs(cut->dx+600.7)<0.1 ) { - cut->dx = cut->dx - 10.*GeoModelKernelUnits::mm; - cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm; - cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm; + cut->dx = cut->dx - 10.*Gaudi::Units::mm; + cut->widthXs = cut->widthXs + 20.*Gaudi::Units::mm; + cut->widthXl = cut->widthXl + 20.*Gaudi::Units::mm; } if (fabs(cut->lengthY-180.2)<0.001) { - cut->lengthY = cut->lengthY+(0.010)*GeoModelKernelUnits::mm; + cut->lengthY = cut->lengthY+(0.010)*Gaudi::Units::mm; //imt std::cout<<"Redefining "<<stName<<" cut lengthY to " //imt <<cut->lengthY //imt <<std::endl; @@ -559,7 +559,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, cut->dx = tempdx; cut->dy = tempdy; - if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*GeoModelKernelUnits::deg); + if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*Gaudi::Units::deg); // should compensate for the dy position defined in amdb at the bottom of the foam in ML 1 of EMS1,3 and BOS 6 // can be applied only for layout >=r.04.04 in rel 15.6.X.Y due to the frozen Tier0 policy @@ -609,7 +609,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (stName.substr(0,3) == "BOS" && zi == -6 && type == "MDT") { cut->dy = c->dy - cut->dy - cut->lengthY - halfpitch; cut->dead1 = 30.; // why this is not 30. or -30. already ????? - if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*GeoModelKernelUnits::deg); + if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*Gaudi::Units::deg); if (verbose) log <<MSG::VERBOSE <<"Cut dead1 for BOS 6 on C side is "<< cut->dead1<<endmsg; } @@ -623,7 +623,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // reverse the position (x amdb) of the cutout if the m_station is mirrored Cutout* cutmirr = new Cutout(*cut); cutmirr->dx = - cutmirr->dx; - // this way, after the rotation by 180 GeoModelKernelUnits::deg, the cut will be at the same global phi + // this way, after the rotation by 180 Gaudi::Units::deg, the cut will be at the same global phi // it has for the m_station at z>0 vcutdef.push_back(cutmirr); vcutdef_todel.push_back(cutmirr); @@ -689,19 +689,19 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateZ3D(zpos)*GeoTrf::TranslateY3D(xpos); if (zi < 0 && !is_mirrored && stName[0] == 'B') { // this (rotation + shift of halfpitch) will mirror the tube structure w.r.t. the chamber at z>0 - htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + htcomponent = htcomponent*GeoTrf::RotateX3D(180.*Gaudi::Units::deg); htcomponent = htcomponent*GeoTrf::TranslateZ3D(halfpitch); } // ss - 24-05-2006 I don't really understand if this is needed at all // it was introduced by Isabel T. if (zi < 0 && stName.substr(0,3) == "BOG" && is_mirrored) { - // htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + // htcomponent = htcomponent*GeoTrf::RotateX3D(180.*Gaudi::Units::deg); // tubes OK but chambers wrong - // htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent; + // htcomponent = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*htcomponent; // chambers OK but tubes wrong - htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent* - GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // turn chambers but go back for tubes + htcomponent = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*htcomponent* + GeoTrf::RotateX3D(180.*Gaudi::Units::deg); // turn chambers but go back for tubes } // ss - 24-05-2006 I don't really understand if this is needed at all xfaligncomponent = new GeoAlignableTransform(htcomponent); @@ -926,7 +926,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos); if (rp->iswap == -1) // this is like amdb iswap { - htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + htcomponent = htcomponent*GeoTrf::RotateY3D(180*Gaudi::Units::deg); } xfaligncomponent = new GeoAlignableTransform(htcomponent); //xfrpccomponent.push_back(xfcomponent); @@ -986,7 +986,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (is_mirrored) xpos = -xpos; htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos); //if (stname == "BMS" && (zi == -2 || zi == -4) && c->name == "DED03") - // htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); + // htcomponent = htcomponent*GeoTrf::RotateY3D(180*Gaudi::Units::deg); xfcomponent = new GeoTransform(htcomponent); bool dedCutoutFlag = (stname == "BOS" && std::abs(zi) == 6) || @@ -1450,25 +1450,25 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (zi <= 0 && !is_mirrored) { // the special cases doubletZ = 1; - if (zpos<-zdivision*GeoModelKernelUnits::mm) doubletZ=2; - if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) { + if (zpos<-zdivision*Gaudi::Units::mm) doubletZ=2; + if (fabs(xpos) > 100.*Gaudi::Units::mm && ndbz[doubletR-1] > 2) { doubletZ = 3; nfields++; } - if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--; + if (fabs(xpos) > 100.*Gaudi::Units::mm ) ndbz[doubletR-1]--; } else { doubletZ = 1; - if (zpos > zdivision*GeoModelKernelUnits::mm) doubletZ=2; - if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) { + if (zpos > zdivision*Gaudi::Units::mm) doubletZ=2; + if (fabs(xpos) > 100.*Gaudi::Units::mm && ndbz[doubletR-1] > 2) { doubletZ = 3; nfields++; } - if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--; + if (fabs(xpos) > 100.*Gaudi::Units::mm ) ndbz[doubletR-1]--; } int dbphi = 1; //std::cout<<stName<<" ----------------------------------- dbphi = "<<dbphi<<std::endl; - if (xpos > 400.*GeoModelKernelUnits::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug + if (xpos > 400.*Gaudi::Units::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug // in BOG at eta +/-4 and stationEta 7 (not 6) ==>> 28 Jan 2016 raising the threshold to 400.mm // doublet phi not aware of pos. in space !!! //std::cout<<" dbphi reset to "<<dbphi<<" due to xpos "<< xpos <<" >10cm "<<std::endl; diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx index 5748ed1644d9..1831ad3eb060 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx @@ -52,11 +52,11 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoPerfUtils.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "StoreGate/StoreGateSvc.h" +#include "GaudiKernel/SystemOfUnits.h" #include "GeoGenericFunctions/Variable.h" @@ -95,15 +95,15 @@ namespace MuonGM { { MsgStream log(Athena::getMessageSvc(), "MuonGeoModel"); m_muon = new MuonSystemDescription( "MuonSystem" ); - m_muon->barrelInnerRadius = 4.30*GeoModelKernelUnits::m; - m_muon->innerRadius = 0.07*GeoModelKernelUnits::m; - m_muon->outerRadius = 13.00*GeoModelKernelUnits::m; - m_muon->endcapFrontFace = 6.74*GeoModelKernelUnits::m; - m_muon->length = 22.03*GeoModelKernelUnits::m; - m_muon->barreLength = 6.53*GeoModelKernelUnits::m; - m_muon->barrelInterRadius = 3.83*GeoModelKernelUnits::m; - m_muon->extraZ = 12.9*GeoModelKernelUnits::m; - m_muon->extraR = 12.5*GeoModelKernelUnits::m; + m_muon->barrelInnerRadius = 4.30*Gaudi::Units::m; + m_muon->innerRadius = 0.07*Gaudi::Units::m; + m_muon->outerRadius = 13.00*Gaudi::Units::m; + m_muon->endcapFrontFace = 6.74*Gaudi::Units::m; + m_muon->length = 22.03*Gaudi::Units::m; + m_muon->barreLength = 6.53*Gaudi::Units::m; + m_muon->barrelInterRadius = 3.83*Gaudi::Units::m; + m_muon->extraZ = 12.9*Gaudi::Units::m; + m_muon->extraR = 12.5*Gaudi::Units::m; m_selectedStations = std::vector<std::string>(0); m_selectedStEta = std::vector<int>(0); @@ -470,7 +470,7 @@ namespace MuonGM { const GeoMaterial* m4 = theMaterialManager->getMaterial( "std::Air" ); GeoLogVol* l4; - GeoPcon* c4 = new GeoPcon( 0, 360*GeoModelKernelUnits::deg ); + GeoPcon* c4 = new GeoPcon( 0, 360*Gaudi::Units::deg ); //--- --- --- CREATE ENVELOPE --- --- --- // First try to get data from the GeomDB IRDBRecordset_ptr muonSysRec = m_pRDBAccess->getRecordsetPtr("MuonSystem",OracleTag,OracleNode); @@ -552,7 +552,7 @@ namespace MuonGM { // Cannot (yet) cope with this: // G4UserLimits *ul=new G4UserLimits; - // ul->SetMaxAllowedStep(5*GeoModelKernelUnits::cm); + // ul->SetMaxAllowedStep(5*Gaudi::Units::cm); // lv->GetLogicalVolume()->SetUserLimits(ul); m_manager->addTreeTop(p4); // This is the top! diff --git a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx index 4597fc40b033..cf2325b57b16 100755 --- a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx @@ -13,8 +13,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBQuery.h" #include "MuonReadoutGeometry/TgcReadoutParams.h" -#include "GeoModelKernel/Units.h" - +#include "GaudiKernel/SystemOfUnits.h" #include "MuonGeoModel/TGC_Technology.h" @@ -421,7 +420,7 @@ void RDBReaderAtlas::ProcessTGCreadout () { int version = (int) (*ggsd)[0]->getDouble("VERS"); - float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*GeoModelKernelUnits::cm; + float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*Gaudi::Units::cm; log<<MSG::INFO <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg; @@ -519,7 +518,7 @@ void RDBReaderAtlas::ProcessTGCreadout () { IRDBRecordset_ptr ggln = m_pRDBAccess->getRecordsetPtr("GGLN",m_geoTag,m_geoNode); int version = (int) (*ggln)[0]->getInt("VERS"); - float wirespacing = (*ggln)[0]->getFloat("WIRESP")*GeoModelKernelUnits::mm; + float wirespacing = (*ggln)[0]->getFloat("WIRESP")*Gaudi::Units::mm; log<<MSG::INFO <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg; @@ -618,11 +617,11 @@ void RDBReaderAtlas::ProcessTGCreadout () { tgc->offsetWireSupport[0] = (*ggln)[ich]->getFloat("SP1WI"); tgc->offsetWireSupport[1] = (*ggln)[ich]->getFloat("SP2WI"); tgc->offsetWireSupport[2] = (*ggln)[ich]->getFloat("SP3WI"); - tgc->angleTilt = (*ggln)[ich]->getFloat("TILT")*GeoModelKernelUnits::deg; + tgc->angleTilt = (*ggln)[ich]->getFloat("TILT")*Gaudi::Units::deg; tgc->radiusButton = (*ggln)[ich]->getFloat("SP1BU"); tgc->pitchButton[0] = (*ggln)[ich]->getFloat("SP2BU"); tgc->pitchButton[1] = (*ggln)[ich]->getFloat("SP3BU"); - tgc->angleButton = (*ggln)[ich]->getFloat("SP4BU")*GeoModelKernelUnits::deg; + tgc->angleButton = (*ggln)[ich]->getFloat("SP4BU")*Gaudi::Units::deg; } } diff --git a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx index d447b0c90376..050fe4aa697d 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx @@ -20,7 +20,7 @@ #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iomanip> #include <cassert> @@ -281,7 +281,7 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, GeoTransform* tugg = new GeoTransform(GeoTrf::TranslateX3D(newpos) ); if (RPCprint) std::cout<< " Rpc:: put upper RPC layer at " << newpos << " from centre " << std::endl; - GeoTransform* rugg = new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) ); + GeoTransform* rugg = new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::deg) ); if (!skip_rpc) { prpc->add(new GeoIdentifierTag(2)); prpc->add(tugg); diff --git a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx index df585ef77964..7de91280b119 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx @@ -20,7 +20,7 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" // for cutouts: #include "GeoModelKernel/GeoShapeSubtraction.h" @@ -135,7 +135,7 @@ GeoVPhysVol * Spacer::build(int /*cutoutson*/) for (int k1 = 0; k1 < 2; k1++){ for (int k = 0; k < 2; k++){ - GeoTransform* ttube = new GeoTransform(GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg)* GeoTrf::Translate3D( + GeoTransform* ttube = new GeoTransform(GeoTrf::RotateX3D(-90*Gaudi::Units::deg)* GeoTrf::Translate3D( 0., -(vtubl+tckibeam)/2.-(k-1)*(vtubl+tckibeam), -length/4.-(k1-1)*length/2)); diff --git a/MuonSpectrometer/MuonGeoModel/src/Station.cxx b/MuonSpectrometer/MuonGeoModel/src/Station.cxx index d15abe247282..309c8e8bd25e 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Station.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Station.cxx @@ -8,8 +8,8 @@ #include "MuonGeoModel/StandardComponent.h" #include "MuonGeoModel/SupComponent.h" #include "MuonGeoModel/TgcComponent.h" -#include "GeoModelKernel/Units.h" #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaKernel/getMessageSvc.h" #include <iostream> #include <algorithm> @@ -687,7 +687,7 @@ GeoTrf::Transform3D Station::native_to_tsz_frame( const Position & p ) const { { if (m_name[0]=='B' ) { - mirrsym = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + mirrsym = GeoTrf::RotateX3D(180.*Gaudi::Units::deg); } } @@ -732,10 +732,10 @@ GeoTrf::Transform3D Station::native_to_tsz_frame( const Position & p ) const { } // // define the rotations by alpha, beta, gamma - // GeoTrf::Rotate3D ralpha = GeoTrf::RotateX3D(p.alpha*GeoModelKernelUnits::deg); - // GeoTrf::Rotate3D rbeta = GeoTrf::RotateZ3D(p.beta*GeoModelKernelUnits::deg); + // GeoTrf::Rotate3D ralpha = GeoTrf::RotateX3D(p.alpha*Gaudi::Units::deg); + // GeoTrf::Rotate3D rbeta = GeoTrf::RotateZ3D(p.beta*Gaudi::Units::deg); // GeoTrf::Rotate3D rgamma; - // rgamma = GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg); + // rgamma = GeoTrf::RotateY3D(p.gamma*Gaudi::Units::deg); // log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg; // log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg; @@ -768,10 +768,10 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const { } else RAD=p.radius; - vec.x() = RAD*cos(p.phi*GeoModelKernelUnits::deg); - vec.x() = vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg); - vec.y() = RAD*sin(p.phi*GeoModelKernelUnits::deg); - vec.y() = vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg); + vec.x() = RAD*cos(p.phi*Gaudi::Units::deg); + vec.x() = vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg); + vec.y() = RAD*sin(p.phi*Gaudi::Units::deg); + vec.y() = vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg); // if (p.isMirrored) if ( (p.isBarrelLike) || (m_name[0]=='B') ) @@ -805,9 +805,9 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const { /////// NEWEWEWWEWEWEWEWEWEWEWEWEW // // define the rotations by alpha, beta, gamma - GeoTrf::RotateX3D ralpha(p.alpha*GeoModelKernelUnits::deg); - GeoTrf::RotateZ3D rbeta(p.beta*GeoModelKernelUnits::deg); - GeoTrf::RotateY3D rgamma(p.gamma*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D ralpha(p.alpha*Gaudi::Units::deg); + GeoTrf::RotateZ3D rbeta(p.beta*Gaudi::Units::deg); + GeoTrf::RotateY3D rgamma(p.gamma*Gaudi::Units::deg); if (pLvl) { log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg; log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg; @@ -824,29 +824,29 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const { if ( m_name[0]=='B' || p.isBarrelLike ) { // here all Barrel chambers - nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg); + nominalTransf = GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg); } else { // replace this with the folowing lines 8/06/2006 SS because, EC not mirrored chambers have anyway to be rotated // by 180deg around z to mov ecoherently their local reference frame and the tube-layer numbering // if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){ -// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* -// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)* +// GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)); // } // else if (p.z<0 && p.isMirrored){ -// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* -// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* -// GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)* +// GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)* +// GeoTrf::RotateZ3D(180*Gaudi::Units::deg)); // } if ( p.z>=0 ){ - nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* - GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); + nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)* + GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)); } else if ( p.z<0 ){ - nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* - GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* - GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); + nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)* + GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)* + GeoTrf::RotateZ3D(180*Gaudi::Units::deg)); } else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored " <<p.z<<" "<<p.isMirrored<<endmsg; @@ -1038,13 +1038,13 @@ double Station::getAmdbOrigine_along_thickness() const // if (m_name[0]=='B') { // // defining the position of the centre of any station // // here using the stations in DBSC (described in amdb + the ones at z<0) -// vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*GeoModelKernelUnits::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); -// vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*GeoModelKernelUnits::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); +// vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*Gaudi::Units::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg)); +// vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*Gaudi::Units::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg)); // vec.setZ(p.z+GetLength()/2.); -// AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()*cos(p.phi*GeoModelKernelUnits::deg)/2., -// GetThickness()*sin(p.phi*GeoModelKernelUnits::deg)/2., +// AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()*cos(p.phi*Gaudi::Units::deg)/2., +// GetThickness()*sin(p.phi*Gaudi::Units::deg)/2., // GetLength()/2.); // } // else { // if (m_name[0]=='T') @@ -1057,18 +1057,18 @@ double Station::getAmdbOrigine_along_thickness() const // RAD=p.radius; // if (m_name[0]!='C') // { -// vec.setX((RAD+GetLength()/2.)*cos(p.phi*GeoModelKernelUnits::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); -// vec.setY((RAD+GetLength()/2.)*sin(p.phi*GeoModelKernelUnits::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); +// vec.setX((RAD+GetLength()/2.)*cos(p.phi*Gaudi::Units::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg)); +// vec.setY((RAD+GetLength()/2.)*sin(p.phi*Gaudi::Units::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg)); // vec.setZ(p.z+GetThickness()/2.); // } // else // { -// vec.setX(RAD*cos(p.phi*GeoModelKernelUnits::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); -// vec.setY(RAD*sin(p.phi*GeoModelKernelUnits::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); +// vec.setX(RAD*cos(p.phi*Gaudi::Units::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg)); +// vec.setY(RAD*sin(p.phi*Gaudi::Units::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg)); // if (p.z>0) vec.setZ(p.z); // else vec.setZ(p.z+GetThickness()); // } @@ -1082,31 +1082,31 @@ double Station::getAmdbOrigine_along_thickness() const // const HepVector3D phiaxis = HepVector3D(-raxis.y(), raxis.x(), 0.); // phi = z cross r // // order of extra rotations is alpha(r), then beta(z), then gamma(phi) // GeoTrf::Rotate3D ralpha, rbeta, rgamma; -// ralpha = GeoTrf::Rotate3D(p.alpha*GeoModelKernelUnits::deg, raxis); -// rbeta = GeoTrf::Rotate3D(p.beta*GeoModelKernelUnits::deg, zaxis); +// ralpha = GeoTrf::Rotate3D(p.alpha*Gaudi::Units::deg, raxis); +// rbeta = GeoTrf::Rotate3D(p.beta*Gaudi::Units::deg, zaxis); // if ( p.zindex<0 && !(m_name[0] == 'B') ) { -// rgamma = GeoTrf::Rotate3D(p.gamma*GeoModelKernelUnits::deg, phiaxis); +// rgamma = GeoTrf::Rotate3D(p.gamma*Gaudi::Units::deg, phiaxis); // // if (m_name[0]=='C') log << MSG::DEBUG <<"zi,fi gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<p.gamma<<endmsg; // } // else { -// rgamma = GeoTrf::Rotate3D(-p.gamma*GeoModelKernelUnits::deg, phiaxis); +// rgamma = GeoTrf::Rotate3D(-p.gamma*Gaudi::Units::deg, phiaxis); // // if (m_name[0]=='C') log << MSG::DEBUG<<"zi,fi gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<-p.gamma<<endmsg; // } // if (m_name[0]=='B' || p.isBarrelLike) // { // // here all Barrel chambers -// if (p.isMirrored) nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); -// else nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg); +// if (p.isMirrored) nominalTransf = GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg)*GeoTrf::RotateX3D(180.*Gaudi::Units::deg); +// else nominalTransf = GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg); // } // else // { // if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){ -// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)); // } // else if (p.z<0 && p.isMirrored){ -// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* -// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* -// GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)* +// GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)* +// GeoTrf::RotateZ3D(180*Gaudi::Units::deg)); // } // else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored " // <<p.z<<" "<<p.isMirrored<<endmsg; @@ -1114,7 +1114,7 @@ double Station::getAmdbOrigine_along_thickness() const // GeoTrf::Transform3D transf; // if (m_name[0]!='C') transf = GeoTrf::Translate3D(vec)*rgamma*rbeta*ralpha*nominalTransf; // else transf = GeoTrf::Translate3D(vec)*nominalTransf* -// GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg)* +// GeoTrf::RotateY3D(p.gamma*Gaudi::Units::deg)* // GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // return transf; // } diff --git a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx index 3abfde6a635a..e8871b044301 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx @@ -24,6 +24,7 @@ #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoShapeShift.h" +#include "GaudiKernel/SystemOfUnits.h" #define skip_tgc false @@ -119,11 +120,11 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) // wire supports GeoTrd* strdsup = new GeoTrd(t->tck[i]/2, t->tck[i]/2, t->widthWireSupport/2, - t->widthWireSupport/2, lengthActive/2-0.1*GeoModelKernelUnits::mm); + t->widthWireSupport/2, lengthActive/2-0.1*Gaudi::Units::mm); // button supports GeoTube* stubesup = new GeoTube(0., t->radiusButton, - t->tck[i]/2.+0.005*GeoModelKernelUnits::mm); - GeoTrf::RotateY3D rotY(3.14159264/2.*GeoModelKernelUnits::rad); + t->tck[i]/2.+0.005*Gaudi::Units::mm); + GeoTrf::RotateY3D rotY(3.14159264/2.*Gaudi::Units::rad); int iymin = int( -(widthActive/2. + lengthActive*tan(t->angleTilt) - t->widthWireSupport/2. + t->offsetWireSupport[iSenLyr])/t->distanceWireSupport ); @@ -188,7 +189,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) GeoTrd* strdsupex = new GeoTrd(t->tck[i]/2, t->tck[i]/2, t->widthWireSupport/2, t->widthWireSupport/2, - lengthWireSupportEx/2-0.1*GeoModelKernelUnits::mm); + lengthWireSupportEx/2-0.1*Gaudi::Units::mm); GeoTrf::Translate3D vtrans(0., t->offsetWireSupport[iSenLyr]+t->distanceWireSupport*isupy + lengthActive/2.*tan(sign*t->angleTilt), (lengthActive-lengthWireSupportEx)/2.); @@ -202,7 +203,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) + t->offsetWireSupport[iSenLyr] +lengthActive*tan( t->angleTilt)) -(-widthActive/2.); - if (widthLeftTrd > 8.*GeoModelKernelUnits::cm) { + if (widthLeftTrd > 8.*Gaudi::Units::cm) { double yLongBase; if ((name == "TGC01" || name == "TGC06" || name == "TGC12") && t->distanceWireSupport*(iymin-1)+t->offsetWireSupport[iSenLyr] @@ -230,7 +231,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) +t->offsetWireSupport[iSenLyr] +lengthActive*tan(-t->angleTilt)); - if (widthRightTrd > 8.*GeoModelKernelUnits::cm) { + if (widthRightTrd > 8.*Gaudi::Units::cm) { double yLongBase; if ((name == "TGC01" || name == "TGC06" || name == "TGC12") && t->distanceWireSupport*(iymax+1)+t->offsetWireSupport[iSenLyr] diff --git a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx index 0533d79f2ecb..e62ddccfe22e 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx +++ b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx @@ -36,7 +36,7 @@ #include "GeoModelKernel/GeoPara.h" #include "GeoModelKernel/GeoVolumeCursor.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" // #define DEBUG #ifdef DEBUG @@ -50,7 +50,7 @@ namespace { //commonly used axes const Amg::Vector3D gXAxis(1.0, 0.0, 0.0), gYAxis(0.0, 1.0, 0.0), gZAxis(0.0, 0.0, 1.0); //commonly used angles, ±90°, 180° - const double p90deg(90.0 * GeoModelKernelUnits::deg), m90deg(-90.0 * GeoModelKernelUnits::deg), p180deg(180.0 * GeoModelKernelUnits::deg); + const double p90deg(90.0 * Gaudi::Units::deg), m90deg(-90.0 * Gaudi::Units::deg), p180deg(180.0 * Gaudi::Units::deg); } diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h index b61bbc46678f..14de776de45e 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h @@ -7,7 +7,7 @@ #include "VP1Base/VP1Controller.h" #include "VP1CaloSystems/VP1CaloCells.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <QByteArray> #include <QString> #include <map> @@ -114,7 +114,7 @@ class VP1CaloCellController : public VP1Controller //For verbose output: template <class T> static QString toString( const T& t ) { return VP1Controller::toString(t); }//unhide base methods static QString toString(const VP1CCIntervalMap& m) { return "VP1CCIntervalMap of size "+QString::number(m.count()); } - static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(GeoModelKernelUnits::cm/GeoModelKernelUnits::GeV))+" cm/GeV>"; } + static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(Gaudi::Units::cm/Gaudi::Units::GeV))+" cm/GeV>"; } static QString toString(const VP1CC_GlobalCuts& cuts) { return "VP1CC global cuts: sideA=" + QString(cuts.sideA?"True":"False") + ", sideC=" + QString(cuts.sideC?"True":"False") + ", allowedEta=" + VP1Controller::toString(cuts.allowedEta) + ", allowedPhi=" + VP1Controller::toString(cuts.allowedEta); } // // FIXME:You have to compile Qwt with Qt5. LCG's Qwt is compiled with Qt4 only... diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h index 7b00191e1d95..b6afc456c7bf 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h @@ -12,7 +12,7 @@ #include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoDefinitions.h" -#include "GeoModelKernel/Units.h" +#include "GaudiKernel/SystemOfUnits.h" #include <map> #include <set> @@ -187,7 +187,7 @@ class VP1CaloCell const VP1CC_GlobalCuts& ) = 0; double cellDepth(const QPair<bool,double>& scale, const double& energy) - { return std::max(1.0*GeoModelKernelUnits::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); } + { return std::max(1.0*Gaudi::Units::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); } virtual bool isInsideClipVolume(const VP1CC_GlobalCuts& globalCuts) ; // by default uses radius to determine this diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx index c275a81ab16e..52655ba56dfd 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx @@ -39,9 +39,7 @@ */ #include <QVector> - -#include "CLHEP/Units/SystemOfUnits.h" - +#include "GaudiKernel/SystemOfUnits.h" #include <map> // -------------------- Imp ------------------------------- @@ -1137,7 +1135,7 @@ VP1CCIntervalMap VP1CaloCellController::selectionIntervals() const QPair<bool,double> VP1CaloCellController::scale() const { - double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/log(1+10*GeoModelKernelUnits::GeV) : m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/(10*GeoModelKernelUnits::GeV); + double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*Gaudi::Units::m/log(1+10*Gaudi::Units::GeV) : m_d->ui_visopts.dspbxScale->value()*Gaudi::Units::m/(10*Gaudi::Units::GeV); return QPair<bool,double>(m_d->ui_visopts.chbxLogscale->isChecked(),scl); } diff --git a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx index dec8091d1fe4..7a1985019af7 100644 --- a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx +++ b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx @@ -14,7 +14,6 @@ #include "GeoModelKernel/GeoTessellatedSolid.h" #include "GeoModelKernel/GeoFacet.h" #include "GeoModelKernel/GeoGenericTrap.h" -#include "GeoModelKernel/Units.h" #include "GeoSpecialShapes/LArCustomShape.h" #include "GeoSpecialShapes/LArWheelCalculator.h" #include "VP1HEPVis/nodes/SoTubs.h" @@ -27,6 +26,7 @@ #include "VP1HEPVis/nodes/SoPolyhedron.h" #include "VP1HEPVis/VP1HEPVisUtils.h" #include "VP1Utils/SbPolyhedrizeAction.h" +#include "GaudiKernel/SystemOfUnits.h" SoVisualizeAction::SoVisualizeAction() : m_shape(0) @@ -155,11 +155,11 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) static const double eta_low = 1.375; - // static const double zWheelRefPoint = 3689.5*GeoModelKernelUnits::mm; //=endg_z0 - static const double dMechFocaltoWRP = 3691. *GeoModelKernelUnits::mm; //=endg_z1 - // static const double dElecFocaltoWRP = 3689. *GeoModelKernelUnits::mm; //=endg_dcf - static const double dWRPtoFrontFace = 11. *GeoModelKernelUnits::mm; - static const double rOuterCutoff = 2034. *GeoModelKernelUnits::mm; //=endg_rlimit + // static const double zWheelRefPoint = 3689.5*Gaudi::Units::mm; //=endg_z0 + static const double dMechFocaltoWRP = 3691. *Gaudi::Units::mm; //=endg_z1 + // static const double dElecFocaltoWRP = 3689. *Gaudi::Units::mm; //=endg_dcf + static const double dWRPtoFrontFace = 11. *Gaudi::Units::mm; + static const double rOuterCutoff = 2034. *Gaudi::Units::mm; //=endg_rlimit SoLAr::initClass(); @@ -182,7 +182,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) rInner[1] = zWheelBackFace * tanThetaInner; // Note that there is a 3mm gap between the outer surface of the // inner wheel and the inner surface of the outer wheel. - double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm; // In DB EMECGEOMETRY.DCRACK + double HalfGapBetweenWheels = 0.15*Gaudi::Units::cm; // In DB EMECGEOMETRY.DCRACK rOuter[0] = zWheelFrontFace * tanThetaMid - HalfGapBetweenWheels; rOuter[1] = zWheelBackFace * tanThetaMid - HalfGapBetweenWheels; solar->fRmin.setValues(0,2,rInner); @@ -202,7 +202,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) double zWheelBackFace = zWheelFrontFace + calc->GetWheelThickness(); // Note that there is a 3mm gap between the outer surface of the // inner wheel and the inner surface of the outer wheel. - double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm; // In DB! (EMECGEOMETRY.DCRACK); + double HalfGapBetweenWheels = 0.15*Gaudi::Units::cm; // In DB! (EMECGEOMETRY.DCRACK); rInner[0] = zWheelFrontFace * tanThetaMid + HalfGapBetweenWheels; rInner[2] = zWheelBackFace * tanThetaMid + HalfGapBetweenWheels; rOuter[0] = zWheelFrontFace * tanThetaOuter; -- GitLab From c490188a5619169d8ceaae263b1f2c4587720736 Mon Sep 17 00:00:00 2001 From: John Kenneth Anders <john.kenneth.anders@cern.ch> Date: Thu, 24 Jan 2019 14:08:56 +0000 Subject: [PATCH 102/192] Merge branch 'tilecal-for-21.0' into '21.0' additional plotting option added See merge request atlas/athena!20022 (cherry picked from commit 45b0480b53a190574840ab389345d011447e7561) cbb1d2f3 additional plotting option added --- .../CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 .../share/PlotCalibFromCool.py | 269 +++++++++++++----- 2 files changed, 192 insertions(+), 77 deletions(-) mode change 100755 => 100644 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100755 new mode 100644 diff --git a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py index 28502519ed69..beb29e9eefc7 100755 --- a/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py +++ b/TileCalorimeter/TileCalib/TileCalibBlobPython/share/PlotCalibFromCool.py @@ -9,7 +9,7 @@ import getopt,sys,os,string,math,re -os.environ['TERM'] = 'linux' +os.environ['TERM'] = 'linux' def usage(): print "How to use: ",sys.argv[0]," [OPTION] ... " @@ -37,11 +37,12 @@ def usage(): print "-c, --chan= specify channel to use for 1D plots, default is 0" print "-g, --gain=, -a, --adc= specify adc(gain) to use, default is 0 (low gain)" print "-v, --val=, -i, --ind= specify index of value to use, default is 0 " + print "-C, --cut= specify additional cut on displayed values" print "-s, --schema= specify schema to use, like 'COOLONL_TILE/CONDBR2' or 'sqlite://;schema=tileSqlite.db;dbname=CONDBR2' or tileSqlite.db" -letters = "hr:l:s:t:f:a:g:b:e:o:Pp:Tv:i:m:c:I:A:N:X:Y:Z:n" -words = ["help","run=","lumi=","schema=","tag=","folder=","adc=","gain=","print","module=","opt=","chan=","begin=","end=","tree","val=","ind=","part=","modmin=","modmax=","chmin=","chmax=","gmin=","gmax=","norm"] +letters = "hr:l:s:t:f:a:g:b:e:o:Pp:Tv:i:m:c:I:A:N:X:Y:Z:C:n" +words = ["help","run=","lumi=","schema=","tag=","folder=","adc=","gain=","print","module=","opt=","chan=","begin=","end=","tree","val=","ind=","part=","modmin=","modmax=","chmin=","chmax=","gmin=","gmax=","cut=","norm"] try: options,args = getopt.getopt(sys.argv[1:],letters,words) except getopt.GetoptError, err: @@ -53,7 +54,7 @@ except getopt.GetoptError, err: -# defaults +# defaults schema = 'COOLOFL_TILE/CONDBR2' folderPath = "/TILE/OFL02/CALIB/CIS/LIN" tag = "UPD4" @@ -63,7 +64,7 @@ vsbin = False plotopt= "dist" save_tree = False print_msg = False -opt2d = False +opt2d = False partname = "LBA" modulename = "LBA01" modmin=0 @@ -71,7 +72,7 @@ modmax=9999 chanmin=0 chanmax=9999 gainmin=0 -gainmax=1 +gainmax=0 mod_n = 0 chan_n = 0 gain_n = 0 @@ -83,6 +84,7 @@ lumiNum = 0 one_run = False multi = False norm = False +cut = None for o, a in options: if o in ("-f","--folder"): @@ -114,30 +116,34 @@ for o, a in options: val_n = int(a) elif o in ("-p","--part"): partname = a - opt2d = True + modulename = partname+"00" elif o in ("-I","--modmin"): modmin = int(a) elif o in ("-A","--modmax"): modmax = int(a) elif o in ("-N","--chmin"): chanmin = int(a) + chan_n = chanmin elif o in ("-X","--chmax"): chanmax = int(a) elif o in ("-Y","--gmin"): gainmin = int(a) + gain_n = gainmin elif o in ("-Z","--gmax"): gainmax = int(a) elif o in ("-o","--opt"): plotopt = a + elif o in ("-C","--cut"): + cut = a elif o in ("-T","--tree"): - save_tree = True + save_tree = True elif o in ("-P","--print"): - print_msg = True + print_msg = True elif o in ("-n","--norm"): - norm = True + norm = True elif o in ("-h","--help"): usage() - sys.exit(2) + sys.exit(2) else: assert False, "unhandeled option" @@ -152,15 +158,18 @@ elif plotopt == "2d": opt2d = True; one_run = True chan_n=max(0,chan_n) gain_n=max(0,gain_n) val_n=max(0,val_n) - -if opt2d: +modmin=max(1,modmin) +modmax=min(64,modmax) +chanmin=max(0,chanmin) +chanmax=min(47,chanmax) +gainmin=max(0,gainmin) +gainmax=min(5,gainmax) # up to 6 gains for integrators +nval=1 + +if opt2d: partname=partname[:3] modulename=partname+"00" - modmin=max(1,modmin) - modmax=min(64,modmax) - chanmin=max(0,chanmin) - chanmax=min(47,chanmax) -else: +else: if len(modulename) < 5 or len(modulename) > 5: print "Wrong module name:",modulename sys.exit(2) @@ -168,20 +177,15 @@ else: modnum=modulename[3:] if modnum.isdigit(): mod_n=int(modnum) - if mod_n<1 or mod_n>64: + if mod_n<0 or mod_n>64: print "Wrong module name:",modulename sys.exit(2) - modmin=mod_n - modmax=mod_n + elif mod_n>0: + modmin=mod_n + modmax=mod_n else: print "Wrong module name:",modulename sys.exit(2) - if plotopt != "print": - chanmin=chan_n - chanmax=chan_n -if plotopt != "print": - gainmin=gain_n - gainmax=gain_n part_dict = {'AUX':0,'LBA':1,'LBC':2,'EBA':3,'EBC':4,'ALL':5} if partname in part_dict: @@ -193,14 +197,49 @@ else: else: print "Wrong module name:",modulename sys.exit(2) +many=False +if modmin!=modmax: + many=True + modulename="%s%2.2d-%s%2.2d" % (partname,modmin,partname,modmax) +else: + mod_n=modmin + modulename="%s%2.2d" % (partname,mod_n) + +if chanmin!=chanmax: + many=True + channame="%2.2d-%2.2d" % (chanmin,chanmax) +else: + chan_n=chanmin + channame="%2.2d" % (chan_n) + +if gainmin!=gainmax: + many=True + gain_n = -1 + if one_run and plotopt == "dist": print "Switching to noline mode" noline = True plotopt = "noline" +if many: + many=(line or noline) + +if not many and gain_n==-1: + gain_n=gainmin + +if gain_n == -1: + gainname = "AllG" +elif gain_n == 0: + gainname = "LG" +elif gain_n == 1: + gainname = "HG" +else: + gainname = "G"+str(gain_n) +if val_n>0: gainname += " val[%d]" % (val_n) + import ROOT -from ROOT import TCanvas, TH1D, TH2D, TGraph, TTree +from ROOT import TCanvas, TH1D, TH2D, TGraph, TTree, TLegend from ROOT import gROOT from ROOT import kTRUE from array import array @@ -225,6 +264,10 @@ for fp in folderPath: log.info("Initializing folder %s with tag %s" % (fp, ft)) folderTag += [ft] multi=(len(folderPath)>1) +if multi and many: + print "Can not calculate product of "+" ".join(folderPath)+" in multi-channel mode" + sys.exit(2) + #=== Get list of IOVs for given drawer or for comments record if ros!=-1: @@ -331,7 +374,7 @@ if begin != be or end != en: end=en iovList=iovList[ib:ie] -if one_run: +if one_run: if opt2d and not (line or noline): iovList=iovList[:1] print "Plotting values for (Run,Lumi) = (%i,%i) " % (runNum,lumiNum) @@ -348,8 +391,8 @@ if one_run: print iovList if not line and runNum!=iovList[-1][0][0]: iovList=iovList[:-1] - -if not one_run: + +if not one_run: print "Plotting Runs: %i to %i" % (begin, end) print len(iovList),"different IOVs in total" if iovList[0][0][0]!=begin or iovList[-1][0][0]!=end: @@ -370,13 +413,14 @@ titsuff="" if one_run or opt2d: if lumiNum<=0: titsuff=" Run " + str(runNum) - else: + else: titsuff=" Run " + str(runNum) + " LB " + str(lumiNum) titsuff+=" Tag " + " ".join(folderTag) rlt=titsuff.replace(" ","_").replace("_Tag","") +gtitle = modulename +" " + " Channel" +("s " if (chanmin!=chanmax) else " ") + channame +" " + gainname + titsuff if opt2d: fname="%s_g%d_v%d%s_%s" % ( partname,gain_n,val_n,rlt,plotopt) -else: fname="%s_ch%2.2d_g%d_v%d%s_%s" % ( modulename,chan_n,gain_n,val_n,rlt,plotopt) +else: fname="%s_ch%s_g%d_v%d%s_%s" % ( modulename,channame,gain_n,val_n,rlt,plotopt) if save_tree: tree_file = ROOT.TFile(fname+".root","RECREATE") @@ -385,6 +429,7 @@ run_n = np.zeros(1, dtype = float) lumi_n = np.zeros(1, dtype = float) channel_n = np.zeros(1, dtype = float) module_n = np.zeros(1, dtype = int) +ros_n = np.zeros(1, dtype = int) value = np.zeros(1, dtype = float) scale = np.zeros(1, dtype = float) @@ -392,6 +437,7 @@ tree.Branch("runnumber",run_n,'runnumber/D') tree.Branch("luminum",lumi_n,'luminum/D') tree.Branch("channel",channel_n,'channel/D') tree.Branch("module",module_n,'module/I') +tree.Branch("ros",ros_n,'ros/I') tree.Branch("labels", labels) tree.Branch("vals", vals) if multi: tree.Branch("value", value,'value/D') @@ -407,7 +453,7 @@ labels.clear() one_iov = (len(iovList)<2) for iovs in iovList: - + if one_iov: run = runNum lumi = lumiNum @@ -431,8 +477,9 @@ for iovs in iovList: labels.clear() vals.clear() value[0]=1. - + for ros in xrange(rosmin,rosmax): + ros_n[0] = ros for mod in xrange(modmin-1, min(modmax,TileCalibUtils.getMaxDrawer(ros))): module_n[0] = mod modName = TileCalibUtils.getDrawerString(ros,mod) @@ -453,7 +500,7 @@ for iovs in iovList: vals.push_back(flt.getData(chn, adc, val)) if val==0: value[0] *= flt.getData(chn, adc, val) - if print_msg: + if print_msg: if multi: print fp,msg else: @@ -467,7 +514,7 @@ for iovs in iovList: scale[0]=vals[val_n] first=False tree.Fill() - if not line: + if not line or many: labels.clear() vals.clear() value[0] = 1. @@ -513,23 +560,22 @@ ROOT.gStyle.SetOptStat(0) if one_run: cut_cond = "runnumber == " + str(runNum) else: - cut_cond = "runnumber >= " + str(begin) + " && " + "runnumber <= " + str(veryEnd) - -##### Which gain to choose -if gain_n == 0: - gainvalue = "LG" -elif gain_n == 1: - gainvalue = "HG" -else: - gainvalue = "G"+str(gain_n) + cut_cond = "runnumber >= " + str(begin) + " && " + "runnumber <= " + str(veryEnd) ##### Which value to choose if multi: - data = "value" + data = "value" +elif many: + data = "vals[%d]" else: - data = "vals[" + str(val_n) + "]" + data = "vals[" + str(val_n) + "]" + +if cut: + if not "val" in cut: cut = data + cut + cut_cond = "(" + cut_cond + ") && (" + cut + ")" + if norm: - data += "/scale" + data += "/scale" if (line or noline) and not one_run: data += ":runnumber" @@ -543,43 +589,112 @@ elif one_run: canv = TCanvas("PlotCalib","plotCalib",0,0,1600,800) -if opt2d: +if opt2d: hhh = TH2D("hhh","hhh",modmax-modmin+1,modmin-0.5,modmax+0.5,chanmax-chanmin+1,chanmin-0.5,chanmax+0.5) -if vsbin: tree.Draw(data,cut_cond,"goff",15) -else: tree.Draw(data,cut_cond,"goff") - -if (not opt2d and tree.GetSelectedRows() <= 1) or tree.GetSelectedRows() <= 0: - print "Not enough points to plot" - sys.exit(2) +if not many and not opt2d: + print "Plotting",data + print "With cut",cut_cond + if vsbin: tree.Draw(data,cut_cond,"goff",15) + else: tree.Draw(data,cut_cond,"goff") -if vsbin: - if tree.GetSelectedRows() >= 15: - print "Maximum number of bins is 15" + if tree.GetSelectedRows() <= 0: + print "Not enough points to plot" + sys.exit(2) + if vsbin: + if tree.GetSelectedRows() >= 15: + print "Maximum number of bins is 15" if line or noline: - gr = TGraph(tree.GetSelectedRows(),tree.GetV2(),tree.GetV1()) - gr.SetTitle(modulename +" " + " Channel "+ str(chan_n) +" " + gainvalue + titsuff) - gr.SetMarkerStyle(20) - gr.SetMarkerSize(1.3) - gr.SetMarkerColor(2) - gr.SetLineColor(2) - gr.GetXaxis().SetNoExponent(kTRUE) - if one_run: gr.GetXaxis().SetTitle("Lumi") - else: gr.GetXaxis().SetTitle("Runs") - if noline: gr.Draw("ap") - else: gr.Draw("apl") + if many: + first=True + color=1 + grall=[] + vmin=1.e+38 + vmax=-1.e+38 + cut0 = cut_cond + data1 = data + leg = TLegend(0.7,0.7,0.9,0.9) + for ros in xrange(rosmin,rosmax): + for mod in xrange(modmin-1, modmax): + for chn in xrange(chanmin,chanmax+1): + for adc in xrange(gainmin,gainmax+1): + if "%d" in data: + data1 = data.replace("%d",str((adc-gainmin)*nval+val_n)) + if "%d" in cut_cond: + cut0 = cut_cond.replace("%d",str((adc-gainmin)*nval+val_n)) + cut1 = "(ros == %d && module == %d && channel == %d) && %s" % (ros,mod,chn,cut0) + tree.Project("htemp",data1,cut1) + if tree.GetSelectedRows() > 0: + color = color + 1 + gr = TGraph(tree.GetSelectedRows(),tree.GetV2(),tree.GetV1()) + yy=gr.GetY() + for ii in xrange(len(yy)): + vv=yy[ii] + if vv<vmin: vmin=vv + if vv>vmax: vmax=vv + grall += [gr] + leg.AddEntry(gr,"%s%2.2d ch %2.2d" % ( part_dict.keys()[part_dict.values().index(ros)],mod+1,chn),"lep") + gr.SetMarkerStyle(20) + gr.SetMarkerSize(1.3) + gr.SetMarkerColor(color) + gr.SetLineColor(color) + if first: + print "First plot:" + print "Plotting",data1 + print "With cut",cut1 + print "Note that in TTree module number starts from 0" + gr.SetTitle(gtitle) + gr.GetXaxis().SetNoExponent(kTRUE) + if one_run: gr.GetXaxis().SetTitle("Lumi") + else: gr.GetXaxis().SetTitle("Runs") + if noline: gr.Draw("ap") + else: gr.Draw("apl") + first=False + else: + if noline: gr.Draw("p") + else: gr.Draw("pl") + lg=len(grall) + if lg==0: + print "Plotting",data + print "With cut",cut_cond + print "Not enough points to plot" + sys.exit(2) + if lg>400: nc=20 + elif lg>144: nc=int(math.sqrt(lg)) + else: nc=int((lg-1)/12+1) + leg.SetNColumns(nc) + extra = (2+0.4*int(lg/nc+1)) + dv=(vmax-vmin)/10. + grall[0].SetMinimum(vmin-dv) + grall[0].SetMaximum(vmax+dv*extra) + if nc>8: nc=8 + leg.SetX1(0.9-0.1*nc) + leg.SetY1(0.9-0.8*(extra-1)/(11+extra)) + leg.Draw() + else: + gr = TGraph(tree.GetSelectedRows(),tree.GetV2(),tree.GetV1()) + gr.SetTitle(gtitle) + gr.SetMarkerStyle(20) + gr.SetMarkerSize(1.3) + gr.SetMarkerColor(2) + gr.SetLineColor(2) + gr.GetXaxis().SetNoExponent(kTRUE) + if one_run: gr.GetXaxis().SetTitle("Lumi") + else: gr.GetXaxis().SetTitle("Runs") + if noline: gr.Draw("ap") + else: gr.Draw("apl") elif opt2d: nentries = tree.GetEntries() hhh.SetName(modulename) - hhh.SetTitle(partname +" " + gainvalue + titsuff) + hhh.SetTitle(gtitle) hhh.GetYaxis().SetTitle("Channels") hhh.GetXaxis().SetTitle("Modules") if multi: - Matrix = [[1 for y in range(48)] for x in range(64)] + Matrix = [[1 for y in range(48)] for x in range(64)] for i in xrange(nentries): tree.GetEntry(i) if vals.size()>0: @@ -604,7 +719,7 @@ elif opt2d: else: h = ROOT.gDirectory.Get("htemp") h.SetName(modulename) - h.SetTitle(modulename +" " + " Channel "+str(chan_n) + " " + gainvalue + titsuff) + h.SetTitle(gtitle) h.SetLineColor(2) h.SetLineWidth(2) h.GetXaxis().SetTitle("Value") @@ -613,7 +728,7 @@ else: h.SetMarkerSize(1.4) h.SetMarkerColor(2) h.GetXaxis().SetTitle("Run") - if one_run: h.GetXaxis().SetTitle("Lumi"); h.SetTitle(modulename +" " + " Channel "+str(chan_n) +" " + gainvalue + titsuff) + if one_run: h.GetXaxis().SetTitle("Lumi"); h.SetTitle(gtitle) h.GetYaxis().SetTitle("") h.GetYaxis().SetTitleOffset(1.35) try: @@ -631,13 +746,13 @@ canv.Update() canv.Print(fname+".eps") canv.Print(fname+".png") -if save_tree: +if save_tree: tree_file.Write() tree_file.Close() - #=== display plot -os.system("display "+fname+".png") +#=== display plot +os.system("display "+fname+".png") # -- GitLab From 5d712cb2db77bd8f574bb4dffcd7902a4a0c4fb2 Mon Sep 17 00:00:00 2001 From: John Kenneth Anders <john.kenneth.anders@cern.ch> Date: Thu, 24 Jan 2019 14:11:42 +0000 Subject: [PATCH 103/192] Merge branch '21.0-fix_nightly_test_file' into '21.0' Remove non-existing input file from HI build test See merge request atlas/athena!20323 (cherry picked from commit 2a6d5c30be6e450a5b66fa3f1f9998c31068d2a2) 67246961 Remove non-existing input file from HI build test --- Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 .../TriggerTest/test/exec_athena_art_trigger_validation.sh | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100755 new mode 100644 diff --git a/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh b/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh index 01e24f2c124a..457f96fc52c8 100755 --- a/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh +++ b/Trigger/TrigValidation/TriggerTest/test/exec_athena_art_trigger_validation.sh @@ -35,7 +35,7 @@ fi ### if [[ $INPUT == "pbpb" ]]; then - export DS='["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc15_5TeV.420000.Hijing_PbPb_5p02TeV_MinBias_Flow_JJFV6.recon.RDO.e3754_s2633_r7161/RDO.06677682._000001.pool.root.1","/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc15_5TeV.420000.Hijing_PbPb_5p02TeV_MinBias_Flow_JJFV6.recon.RDO.e3754_s2633_r7161/RDO.06677682._000002.pool.root.1","/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc15_5TeV.420000.Hijing_PbPb_5p02TeV_MinBias_Flow_JJFV6.recon.RDO.e3754_s2633_r7161/RDO.06677682._000003.pool.root.1"]' + export DS='["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc15_5TeV.420000.Hijing_PbPb_5p02TeV_MinBias_Flow_JJFV6.recon.RDO.e3754_s2633_r7161/RDO.06677682._000002.pool.root.1","/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc15_5TeV.420000.Hijing_PbPb_5p02TeV_MinBias_Flow_JJFV6.recon.RDO.e3754_s2633_r7161/RDO.06677682._000003.pool.root.1"]' elif [[ $INPUT == "ftk" ]]; then export DS='["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/mc16_13TeV.410470.PhPy8EG_A14_ttbar_hdamp258p75_nonallhad.digit.RDO_FTK.e6337_e5984_s3126_d1480_d1471_tid15265974_00/RDO_FTK.15265974._004440.pool.root.1"]' -- GitLab From 53347be1b480595b864acbf8bd95a4fd47e75b01 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 24 Jan 2019 16:03:55 +0100 Subject: [PATCH 104/192] PROCTools: Fix import of RunTier0TestsTools. Need to include package in the import. --- Tools/PROCTools/python/RunTier0Tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/PROCTools/python/RunTier0Tests.py b/Tools/PROCTools/python/RunTier0Tests.py index 6c3318693282..04dbf6e8797a 100755 --- a/Tools/PROCTools/python/RunTier0Tests.py +++ b/Tools/PROCTools/python/RunTier0Tests.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration ## RunTier0Tests.py - Brief description of the purpose of this script (Has to be in PROC tools) # $Id$ @@ -12,7 +12,7 @@ import time import uuid import logging import glob -from RunTier0TestsTools import ciRefFileMap +from PROCTools.RunTier0TestsTools import ciRefFileMap ### Setup global logging logging.basicConfig(level=logging.INFO, -- GitLab From ab14566bbf6b5d8c7f2eca43ae81d29bb0e2d909 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 25 Jan 2019 04:52:08 +0100 Subject: [PATCH 105/192] xAODEventInfo: Thread-safety fixes. Fix issues found by the thread-safety static checker. --- .../xAOD/xAODEventInfo/Root/EventInfo_v1.cxx | 254 +++++++++--------- .../test/ut_xaodeventinfo_evtstore_test.cxx | 5 +- .../xAODEventInfo/ATLAS_CHECK_THREAD_SAFETY | 1 + .../xAODEventInfo/versions/EventInfo_v1.h | 16 +- 4 files changed, 142 insertions(+), 134 deletions(-) create mode 100644 Event/xAOD/xAODEventInfo/xAODEventInfo/ATLAS_CHECK_THREAD_SAFETY diff --git a/Event/xAOD/xAODEventInfo/Root/EventInfo_v1.cxx b/Event/xAOD/xAODEventInfo/Root/EventInfo_v1.cxx index 96e21f730351..3c431bbba8ed 100644 --- a/Event/xAOD/xAODEventInfo/Root/EventInfo_v1.cxx +++ b/Event/xAOD/xAODEventInfo/Root/EventInfo_v1.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ // $Id: EventInfo_v1.cxx 729717 2016-03-14 18:52:01Z ssnyder $ @@ -54,14 +54,14 @@ namespace xAOD { using xAODEventInfoPrivate::operator<<; EventInfo_v1::EventInfo_v1() - : SG::AuxElement(), m_streamTags(), m_updateStreamTags( false ), - m_subEvents(), m_updateSubEvents( false ), m_evtStore( 0 ) { + : SG::AuxElement(), m_streamTags(), + m_subEvents(), m_evtStore( 0 ) { } EventInfo_v1::EventInfo_v1( const EventInfo_v1& parent ) : SG::AuxElement(), m_streamTags(), - m_updateStreamTags( true ), m_subEvents(), m_updateSubEvents( true ), + m_subEvents(), m_evtStore( parent.m_evtStore ) { makePrivateStore( parent ); @@ -71,8 +71,10 @@ namespace xAOD { if (&rhs != this) { // Clear out the caches: - m_streamTags.clear(); m_updateStreamTags = true; - m_subEvents.clear(); m_updateSubEvents = true; + m_streamTags.store (std::vector< StreamTag >()); + m_streamTags.reset(); + m_subEvents.store (std::vector< SubEvent >()); + m_subEvents.reset(); // Copy the event store pointer: m_evtStore = rhs.m_evtStore; @@ -240,24 +242,24 @@ namespace xAOD { // // Accessor objects for the stream properties: // - static EventInfo_v1::Accessor< std::vector< std::string > > + static const EventInfo_v1::Accessor< std::vector< std::string > > names( "streamTagNames" ); - static EventInfo_v1::Accessor< std::vector< std::string > > + static const EventInfo_v1::Accessor< std::vector< std::string > > types( "streamTagTypes" ); - static EventInfo_v1::Accessor< std::vector< char > > + static const EventInfo_v1::Accessor< std::vector< char > > olb( "streamTagObeysLumiblock" ); - static EventInfo_v1::Accessor< std::vector< std::set< uint32_t > > > + static const EventInfo_v1::Accessor< std::vector< std::set< uint32_t > > > robsets( "streamTagRobs" ); - static EventInfo_v1::Accessor< std::vector< std::set< uint32_t > > > + static const EventInfo_v1::Accessor< std::vector< std::set< uint32_t > > > detsets( "streamTagDets" ); const std::vector< EventInfo_v1::StreamTag >& EventInfo_v1::streamTags() const { // Cache the new information if necessary: - if( m_updateStreamTags ) { - // The cache will be up to date after this: - m_updateStreamTags = false; + if( !m_streamTags.isValid() ) { + std::vector< StreamTag > tags; + // A little sanity check: if( ( names( *this ).size() != types( *this ).size() ) || ( names( *this ).size() != olb( *this ).size() ) || @@ -285,33 +287,36 @@ namespace xAOD { } else { std::cerr << detsets( *this ) << std::endl; } - return m_streamTags; } - // Clear the current cache: - m_streamTags.clear(); - // Fill up the cache: - for( size_t i = 0; i < names( *this ).size(); ++i ) { - static const std::set< uint32_t > dummySet; - m_streamTags.push_back( StreamTag( names( *this )[ i ], - types( *this )[ i ], - olb( *this )[ i ], - ( robsets.isAvailable( *this ) ? - robsets( *this )[ i ] : - dummySet ), - ( detsets.isAvailable( *this ) ? - detsets( *this )[ i ] : - dummySet ) ) ); + + else { + // Fill the tags. + for( size_t i = 0; i < names( *this ).size(); ++i ) { + static const std::set< uint32_t > dummySet; + tags.emplace_back( names( *this )[ i ], + types( *this )[ i ], + olb( *this )[ i ], + ( robsets.isAvailable( *this ) ? + robsets( *this )[ i ] : + dummySet ), + ( detsets.isAvailable( *this ) ? + detsets( *this )[ i ] : + dummySet ) ); + } } + + // Set the cache. + m_streamTags.set (std::move (tags)); } // Return the cached object: - return m_streamTags; + return *m_streamTags.ptr(); } void EventInfo_v1::setStreamTags( const std::vector< StreamTag >& value ) { // Update the cached information: - m_streamTags = value; + m_streamTags.store (value); // Clear the persistent information: names( *this ).clear(); types( *this ).clear(); olb( *this ).clear(); @@ -328,9 +333,6 @@ namespace xAOD { detsets( *this ).push_back( itr->dets() ); } - // The cache is now up to date: - m_updateStreamTags = false; - return; } @@ -416,97 +418,104 @@ namespace xAOD { // // Accessor objects for the sub-event properties: // - static SG::AuxElement::Accessor< std::vector< int16_t > > + static const SG::AuxElement::Accessor< std::vector< int16_t > > timeAcc( "subEventTime" ); - static SG::AuxElement::Accessor< std::vector< uint16_t > > + static const SG::AuxElement::Accessor< std::vector< uint16_t > > indexAcc( "subEventIndex" ); - static SG::AuxElement::Accessor< std::vector< ElementLink< EventInfoContainer_v1 > > > + static const SG::AuxElement::Accessor< std::vector< ElementLink< EventInfoContainer_v1 > > > linkAcc( "subEventLink" ); - static SG::AuxElement::Accessor< std::vector< uint16_t > > + static const SG::AuxElement::Accessor< std::vector< uint16_t > > typeAcc( "subEventType" ); + std::vector< EventInfo_v1::SubEvent > + EventInfo_v1::makeSubEvents() const + { + std::vector< SubEvent > subEvents; + + // Check if any of the information is available: + if( ( ! timeAcc.isAvailable( *this ) ) && + ( ! indexAcc.isAvailable( *this ) ) && + ( ! linkAcc.isAvailable( *this ) ) && + ( ! typeAcc.isAvailable( *this ) ) ) + { + // If not, return right away: + return subEvents; + } + // A little sanity check: + size_t size = 0; + if( timeAcc.isAvailable( *this ) ) { + size = timeAcc( *this ).size(); + } else if( indexAcc.isAvailable( *this ) ) { + size = indexAcc( *this ).size(); + } else if( linkAcc.isAvailable( *this ) ) { + size = linkAcc( *this ).size(); + } else if( typeAcc.isAvailable( *this ) ) { + size = typeAcc( *this ).size(); + } else { + std::cerr << "xAOD::EventInfo_v1 ERROR Logic error in subEvents()" + << std::endl; + return subEvents; + } + if( ( timeAcc.isAvailable( *this ) && + ( size != timeAcc( *this ).size() ) ) || + ( indexAcc.isAvailable( *this ) && + ( size != indexAcc( *this ).size() ) ) || + ( linkAcc.isAvailable( *this ) && + ( size != linkAcc( *this ).size() ) ) || + ( typeAcc.isAvailable( *this ) && + ( size != typeAcc( *this ).size() ) ) ) { + std::cerr << "xAOD::EventInfo_v1 ERROR Data corruption found in " + << "the sub-event information" << std::endl; + std::cerr << "subEventTime = " + << ( timeAcc.isAvailable( *this ) ? timeAcc( *this ) : + std::vector< int16_t >() ) << std::endl; + std::cerr << "subEventIndex = " + << ( indexAcc.isAvailable( *this ) ? indexAcc( *this ) : + std::vector< uint16_t >() ) << std::endl; + std::cerr << "subEventLink = " + << ( linkAcc.isAvailable( *this ) ? linkAcc( *this ) : + std::vector< ElementLink< EventInfoContainer_v1 > >() ) + << std::endl; + std::cerr << "subEventType = " + << ( typeAcc.isAvailable( *this ) ? typeAcc( *this ) : + std::vector< uint16_t >() ) << std::endl; + return subEvents; + } + // Fill up the cache: + for( size_t i = 0; i < size; ++i ) { + const int16_t time = + timeAcc.isAvailable( *this ) ? timeAcc( *this )[ i ] : 0; + const uint16_t index = + indexAcc.isAvailable( *this ) ? indexAcc( *this )[ i ] : 0; + const ElementLink< EventInfoContainer_v1 > link = + linkAcc.isAvailable( *this ) ? linkAcc( *this )[ i ] : + ElementLink< EventInfoContainer_v1 >(); + const PileUpType type = + ( typeAcc.isAvailable( *this ) ? + static_cast< PileUpType >( typeAcc( *this )[ i ] ) : + Unknown ); + subEvents.emplace_back( time, index, type, link ); + } + + return subEvents; + } + const std::vector< EventInfo_v1::SubEvent >& EventInfo_v1::subEvents() const { // Cache the new information if necessary: - if( m_updateSubEvents ) { - // The cache will be up to date after this: - m_updateSubEvents = false; - // Clear the current cache: - m_subEvents.clear(); - // Check if any of the information is available: - if( ( ! timeAcc.isAvailable( *this ) ) && - ( ! indexAcc.isAvailable( *this ) ) && - ( ! linkAcc.isAvailable( *this ) ) && - ( ! typeAcc.isAvailable( *this ) ) ) { - // If not, return right away: - return m_subEvents; - } - // A little sanity check: - size_t size = 0; - if( timeAcc.isAvailable( *this ) ) { - size = timeAcc( *this ).size(); - } else if( indexAcc.isAvailable( *this ) ) { - size = indexAcc( *this ).size(); - } else if( linkAcc.isAvailable( *this ) ) { - size = linkAcc( *this ).size(); - } else if( typeAcc.isAvailable( *this ) ) { - size = typeAcc( *this ).size(); - } else { - std::cerr << "xAOD::EventInfo_v1 ERROR Logic error in subEvents()" - << std::endl; - return m_subEvents; - } - if( ( timeAcc.isAvailable( *this ) && - ( size != timeAcc( *this ).size() ) ) || - ( indexAcc.isAvailable( *this ) && - ( size != indexAcc( *this ).size() ) ) || - ( linkAcc.isAvailable( *this ) && - ( size != linkAcc( *this ).size() ) ) || - ( typeAcc.isAvailable( *this ) && - ( size != typeAcc( *this ).size() ) ) ) { - std::cerr << "xAOD::EventInfo_v1 ERROR Data corruption found in " - << "the sub-event information" << std::endl; - std::cerr << "subEventTime = " - << ( timeAcc.isAvailable( *this ) ? timeAcc( *this ) : - std::vector< int16_t >() ) << std::endl; - std::cerr << "subEventIndex = " - << ( indexAcc.isAvailable( *this ) ? indexAcc( *this ) : - std::vector< uint16_t >() ) << std::endl; - std::cerr << "subEventLink = " - << ( linkAcc.isAvailable( *this ) ? linkAcc( *this ) : - std::vector< ElementLink< EventInfoContainer_v1 > >() ) - << std::endl; - std::cerr << "subEventType = " - << ( typeAcc.isAvailable( *this ) ? typeAcc( *this ) : - std::vector< uint16_t >() ) << std::endl; - return m_subEvents; - } - // Fill up the cache: - for( size_t i = 0; i < size; ++i ) { - const int16_t time = - timeAcc.isAvailable( *this ) ? timeAcc( *this )[ i ] : 0; - const uint16_t index = - indexAcc.isAvailable( *this ) ? indexAcc( *this )[ i ] : 0; - const ElementLink< EventInfoContainer_v1 > link = - linkAcc.isAvailable( *this ) ? linkAcc( *this )[ i ] : - ElementLink< EventInfoContainer_v1 >(); - const PileUpType type = - ( typeAcc.isAvailable( *this ) ? - static_cast< PileUpType >( typeAcc( *this )[ i ] ) : - Unknown ); - m_subEvents.push_back( SubEvent( time, index, type, link ) ); - } + if( !m_subEvents.isValid() ) { + m_subEvents.set (makeSubEvents()); } // Return the cached vector: - return m_subEvents; + return *m_subEvents.ptr(); } void EventInfo_v1::setSubEvents( const std::vector< SubEvent >& value ) { // Update the cached information: - m_subEvents = value; + m_subEvents.store (value); // Clear the persistent information: timeAcc( *this ).clear(); indexAcc( *this ).clear(); @@ -522,9 +531,6 @@ namespace xAOD { linkAcc( *this ).push_back( itr->link() ); } - // The cache is now up to date: - m_updateSubEvents = false; - return; } @@ -535,7 +541,9 @@ namespace xAOD { subEvents(); // Now, add the new sub-event: - m_subEvents.push_back( subEvent ); + std::vector<SubEvent> subEvents = *m_subEvents.ptr(); + subEvents.push_back( subEvent ); + m_subEvents.store (std::move (subEvents)); timeAcc( *this ).push_back( subEvent.time() ); indexAcc( *this ).push_back( subEvent.index() ); typeAcc( *this ).push_back( static_cast< uint16_t >( subEvent.type() ) ); @@ -547,13 +555,11 @@ namespace xAOD { void EventInfo_v1::clearSubEvents() { // Clear both the transient and persistent variables: - m_subEvents.clear(); + m_subEvents.store (std::vector<SubEvent>()); + m_subEvents.reset(); timeAcc( *this ).clear(); indexAcc( *this ).clear(); typeAcc( *this ).clear(); linkAcc( *this ).clear(); - // Things are definitely in sync right now: - m_updateSubEvents = false; - return; } @@ -775,9 +781,9 @@ namespace xAOD { void EventInfo_v1::setBeamPos( float x, float y, float z ) { // The accessor objects: - static Accessor< float > accX( "beamPosX" ); - static Accessor< float > accY( "beamPosY" ); - static Accessor< float > accZ( "beamPosZ" ); + static const Accessor< float > accX( "beamPosX" ); + static const Accessor< float > accY( "beamPosY" ); + static const Accessor< float > accZ( "beamPosZ" ); // Set the variables: accX( *this ) = x; @@ -794,9 +800,9 @@ namespace xAOD { void EventInfo_v1::setBeamPosSigma( float x, float y, float z ) { // The accessor objects: - static Accessor< float > accX( "beamPosSigmaX" ); - static Accessor< float > accY( "beamPosSigmaY" ); - static Accessor< float > accZ( "beamPosSigmaZ" ); + static const Accessor< float > accX( "beamPosSigmaX" ); + static const Accessor< float > accY( "beamPosSigmaY" ); + static const Accessor< float > accZ( "beamPosSigmaZ" ); // Set the variables: accX( *this ) = x; @@ -855,8 +861,8 @@ namespace xAOD { /// void EventInfo_v1::toTransient() { - m_updateStreamTags = true; - m_updateSubEvents = true; + m_streamTags.reset(); + m_subEvents.reset(); m_evtStore = 0; if( usingStandaloneStore() ) { diff --git a/Event/xAOD/xAODEventInfo/test/ut_xaodeventinfo_evtstore_test.cxx b/Event/xAOD/xAODEventInfo/test/ut_xaodeventinfo_evtstore_test.cxx index 0c1b9419d7ff..7695803a6a05 100644 --- a/Event/xAOD/xAODEventInfo/test/ut_xaodeventinfo_evtstore_test.cxx +++ b/Event/xAOD/xAODEventInfo/test/ut_xaodeventinfo_evtstore_test.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: ut_xaodeventinfo_evtstore_test.cxx 727083 2016-03-01 15:20:50Z krasznaa $ @@ -7,6 +7,7 @@ // System include(s): #include <memory> #include <iostream> +#include <unistd.h> // ROOT include(s): #include <TFile.h> @@ -162,7 +163,7 @@ int main() { // Close and delete the file: ifile->Close(); - SIMPLE_ASSERT( gSystem->Unlink( "eiTest.root" ) == 0 ); + SIMPLE_ASSERT( unlink( "eiTest.root" ) == 0 ); // Return gracefully: return 0; diff --git a/Event/xAOD/xAODEventInfo/xAODEventInfo/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODEventInfo/xAODEventInfo/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..15feeb732f84 --- /dev/null +++ b/Event/xAOD/xAODEventInfo/xAODEventInfo/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODEventInfo diff --git a/Event/xAOD/xAODEventInfo/xAODEventInfo/versions/EventInfo_v1.h b/Event/xAOD/xAODEventInfo/xAODEventInfo/versions/EventInfo_v1.h index 4ccede2cf6da..03485d7f53e1 100644 --- a/Event/xAOD/xAODEventInfo/xAODEventInfo/versions/EventInfo_v1.h +++ b/Event/xAOD/xAODEventInfo/xAODEventInfo/versions/EventInfo_v1.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: EventInfo_v1.h 727083 2016-03-01 15:20:50Z krasznaa $ @@ -21,6 +21,8 @@ extern "C" { #include "AthContainers/AuxElement.h" #include "AthContainers/DataVector.h" #include "AthLinks/ElementLink.h" +#include "CxxUtils/CachedValue.h" +#include "CxxUtils/checker_macros.h" // Forward declaration(s): class StoreGateSvc; @@ -460,7 +462,7 @@ namespace xAOD { #if not defined(__GCCXML__) and not defined(__ROOTCLING__) /// Get the pointer to the event store associated with this event - StoreGateSvc* evtStore() const; + StoreGateSvc* evtStore ATLAS_NOT_CONST_THREAD_SAFE () const; /// Set the pointer to the event store associated with this event void setEvtStore( StoreGateSvc* svc ); #endif // not genreflex or rootcint/rootcling @@ -473,14 +475,12 @@ namespace xAOD { void toTransient(); private: + std::vector< EventInfo_v1::SubEvent > makeSubEvents() const; + /// Cached stream tag objects - mutable std::vector< StreamTag > m_streamTags; - /// Flag for updating the cached stream tags if necessary - mutable bool m_updateStreamTags; + CxxUtils::CachedValue<std::vector< StreamTag > > m_streamTags; /// Cached sub-event objects - mutable std::vector< SubEvent > m_subEvents; - /// Flag for updating the cached sub-events if necessary - mutable bool m_updateSubEvents; + CxxUtils::CachedValue<std::vector< SubEvent> > m_subEvents; #ifndef __GCCXML__ /// Transient pointer to the StoreGateSvc instance associated with the -- GitLab From 7f1ec86ff07f138e32ab4a138d69ff3cd9b56099 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 24 Jan 2019 19:52:48 +0100 Subject: [PATCH 106/192] TileRecUtils: Make TileCellBuilder const-compatible. Rework TileCellBuilder so that the process() method can be made const. Working to make calo system reconstruction reentrant. --- .../TileRecUtils/TileCellBuilder.h | 196 ++++++------ .../share/TileCellBuilder_test.ref | 137 ++++---- .../TileRecUtils/src/TileCellBuilder.cxx | 302 ++++++++++-------- 3 files changed, 330 insertions(+), 305 deletions(-) diff --git a/TileCalorimeter/TileRecUtils/TileRecUtils/TileCellBuilder.h b/TileCalorimeter/TileRecUtils/TileRecUtils/TileCellBuilder.h index 06b97d359411..f029d4832686 100644 --- a/TileCalorimeter/TileRecUtils/TileRecUtils/TileCellBuilder.h +++ b/TileCalorimeter/TileRecUtils/TileRecUtils/TileCellBuilder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TILERECUTILS_TILECELLBUILDER_H @@ -77,12 +77,12 @@ class TileDQstatus; */ class TileDrawerEvtStatus { public: - int nChannels; - int nMaskedChannels; - int nBadQuality; - int nOverflow; - int nUnderflow; - int nSomeSignal; + int nChannels = 0; + int nMaskedChannels = 0; + int nBadQuality = 0; + int nOverflow = 0; + int nUnderflow = 0; + int nSomeSignal = 0; }; /** @@ -102,48 +102,33 @@ class TileDrawerRunStatus { @brief This class creates Cells from RawChannels and stores them in a container */ -class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { - friend class DoubleVectorIterator; +class TileCellBuilder + : public extends<AthAlgTool, ICaloCellMakerTool> +{ public: TileCellBuilder(const std::string& type, const std::string& name, const IInterface* parent); //!< Contructor virtual ~TileCellBuilder(); //!< Destructor - virtual StatusCode initialize(); //!< initialize mehtod + virtual StatusCode initialize() override; - void reset(bool fullSizeCont, bool printReset = true); //!< Method to reset the options of the TileCellContainer - - /** - This method sets the type and unit for the TileRAwChannels. It - might be called from TileROD_Decoder - otherwise it isn't needed - type and unit are available from - TileRawChannelContainer itself (see TileCellBuilder::process() below) - */ - void set_type_and_unit(TileFragHash::TYPE type = TileFragHash::Default - , TileRawChannelUnit::UNIT unit = TileRawChannelUnit::ADCcounts); - - virtual StatusCode finalize(); //!< finalize method + virtual StatusCode finalize() override; - virtual StatusCode process(CaloCellContainer* theCellContainer); // method to process all raw channels and store them in container + /// method to process all raw channels and store them in container + virtual StatusCode process(CaloCellContainer* theCellContainer) override; - template<class ITERATOR, class COLLECTION> - void build(const EventContext& ctx, - const ITERATOR & begin, const ITERATOR & end, COLLECTION * coll); //!< method to process raw channels from a given vector and store them in collection - - /** method to check if channels are good or bad. Puts zero if both channels are bad - or recovers from single-channel failure. It returns true if cell was changed, false otherwise - */ - bool maskBadChannel(TileCell* pCell, HWIdentifier hwid); - bool maskBadChannels(TileCell* pCell); + void reset(bool fullSizeCont, bool printReset = true); //!< Method to reset the options of the TileCellContainer //AlgTool InterfaceID static const InterfaceID& interfaceID(); - //static const InterfaceID& interfaceID() { return ICaloCellMakerTool; }; - protected: +private: // FIXME: Get rid of this abomination. friend class TileHid2RESrcID; + /// status of every drawer + typedef TileDrawerEvtStatus TileDrawerEvtStatusArray[5][64]; + // properties SG::ReadHandleKey<TileRawChannelContainer> m_rawChannelContainerKey{this, "TileRawChannelContainer", "TileRawChannelCnt", @@ -153,8 +138,11 @@ class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { "TileRawChannelCnt", "Input Tile DSP raw channel container key"}; - SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfo", - "EventInfo", "Input Event info key"}; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfo", + "EventInfo", + "EventInfo key"}; + + SG::ReadHandleKey<TileDQstatus> m_DQstatusKey{this, "TileDQstatus", "TileDQstatus", @@ -205,7 +193,6 @@ class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { const TileTBID* m_tileTBID; //!< Pointer to TileTBID const TileHWID* m_tileHWID; //!< Pointer to TileHWID const TileCablingService* m_cabling; //!< TileCabling instance - const TileDQstatus* m_DQstatus; ToolHandle<ITileBadChanTool> m_tileBadChanTool{this, "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"}; @@ -224,63 +211,104 @@ class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { const TileDetDescrManager* m_tileMgr; //!< Pointer to TileDetDescrManager const MbtsDetDescrManager* m_mbtsMgr; //!< Pointer to MbtsDetDescrManager - std::vector<TileCell*> m_allCells; //!< vector to of pointers to TielCells - std::unique_ptr<TileCellContainer> m_MBTSCells; //!< Pointer to MBTS cell container - std::unique_ptr<TileCellContainer> m_E4prCells; //!< Pointer to E4' cell container - - TileFragHash::TYPE m_RChType; //!< Type of TileRawChannels (Fit, OF2, etc.) - TileRawChannelUnit::UNIT m_RChUnit; //!< Unit for TileRawChannels (ADC, pCb, etc.) //unsigned int m_bsflags; //!< other flags stored in TileRawChannelContainer - float m_maxTimeCorr; //!< max possible time when time correction is applied - TileDrawerEvtStatus m_drawerEvtStatus[5][64]; //!< status of every drawer in every event - TileDrawerRunStatus m_drawerRunStatus[5][64]; //!< overall status of drawer in whole run - int m_eventErrorCounter[4]; //!< number of events with no errors(0), warnings(1), error(2), total(3) + // These were accumulated, but never actually used. + // They also spoil reentrancy, so leave them commented-out for now. + // If this information is needed in the future, these can be changed + // to use atomics. + //TileDrawerRunStatus m_drawerRunStatus[5][64]; //!< overall status of drawer in whole run + //int m_eventErrorCounter[4]; //!< number of events with no errors(0), warnings(1), error(2), total(3) std::vector<CaloAffectedRegionInfo> m_affectedRegionInfo_global; std::vector<CaloAffectedRegionInfo> m_affectedRegionInfo_current_run; + + struct VecParams + { + // Type of TileRawChannels (Fit, OF2, etc.) + TileFragHash::TYPE m_RChType; + + // Unit for TileRawChannels (ADC, pCb, etc.) + TileRawChannelUnit::UNIT m_RChUnit; + + // max possible time when time correction is applied + float m_maxTimeCorr = 75.0; + + // If true, amplitude is corrected by parabolic function (needed for OF without iterations) + bool m_correctAmplitude; + + // should time be corrected (deltat added from CondDB) + bool m_correctTime; + + // If true, assume OF2 method for amplitude correction, otherwise - OF1 + bool m_of2; + }; + + /// < method to process raw channels from a given vector and store them in collection + template<class ITERATOR, class COLLECTION> + void build (const EventContext& ctx, + TileDrawerEvtStatusArray& drawerEvtStatus, + VecParams& params, + const ITERATOR & begin, + const ITERATOR & end, + COLLECTION* coll, + TileCellContainer* MBTSCells, + TileCellContainer* E4prCells) const; + + /** method to check if channels are good or bad. Puts zero if both channels are bad + or recovers from single-channel failure. It returns true if cell was changed, false otherwise + */ + bool maskBadChannel (TileDrawerEvtStatusArray& drawerEvtStatus, + const TileDQstatus* DQstatus, + TileCell* pCell, HWIdentifier hwid) const; + bool maskBadChannels (TileDrawerEvtStatusArray& drawerEvtStatus, + const TileDQstatus* DQstatus, + TileCell* pCell) const; + void correctCell(TileCell* pCell, int correction, int pmt, int gain, float ener, float time, - unsigned char iqual, unsigned char qbit, int ch_type); //!< Compute calibrated energy, time, etc. for TileCell and adjust it. + unsigned char iqual, unsigned char qbit, int ch_type) const; //!< Compute calibrated energy, time, etc. for TileCell and adjust it. - unsigned char iquality(float qual) {//!< method to compute the cell quality + unsigned char iquality(float qual) const {//!< method to compute the cell quality return std::min(255, abs((int) qual)); } // keep quality within 8 bits make it "unsigned char" - unsigned char qbits(int ros, int drawer, bool count_over, bool good_time, bool good_ener, - bool overflow, bool underflow, bool good_overflowfit); //!< method to compute the cell quality bits + + /// method to compute the cell quality bits + unsigned char qbits (TileDrawerEvtStatusArray& drawerEvtStatus, + TileFragHash::TYPE RChType, + int ros, int drawer, + bool count_over, bool good_time, bool good_ener, + bool overflow, bool underflow, + bool good_overflowfit) const; bool isChanDCSgood (int ros, int drawer, int channel) const; template<typename T, typename V> class DoubleVectorIterator { + VecParams& m_params; T* m_first; - TileFragHash::TYPE m_typ1; - TileRawChannelUnit::UNIT m_uni1; - float m_cut1; - bool m_amp1; - bool m_tim1; - bool m_of21; + const VecParams& m_params1; T* m_second; - TileFragHash::TYPE m_typ2; - TileRawChannelUnit::UNIT m_uni2; - float m_cut2; - bool m_amp2; - bool m_tim2; - bool m_of22; - TileCellBuilder* m_ptr; + const VecParams& m_params2; int m_pos; typedef typename T::iterator itr_type; itr_type m_itr; public: - DoubleVectorIterator(T* f, TileFragHash::TYPE y1, TileRawChannelUnit::UNIT u1, float c1, bool a1, bool t1, bool o1 - , T* s, TileFragHash::TYPE y2, TileRawChannelUnit::UNIT u2, float c2, bool a2, bool t2, bool o2 - , TileCellBuilder* b, int p) - : m_first(f), m_typ1(y1), m_uni1(u1), m_cut1(c1), m_amp1(a1), m_tim1(t1), m_of21(o1) - , m_second(s), m_typ2(y2), m_uni2(u2), m_cut2(c2), m_amp2(a2), m_tim2(t2), m_of22(o2) - , m_ptr(b), m_pos(p) { + DoubleVectorIterator(VecParams& params, + T* f, + const VecParams& params1, + T* s, + const VecParams& params2, + int p) + : m_params(params), + m_first(f), + m_params1(params1), + m_second(s), + m_params2(params2), + m_pos(p) { if (m_first->begin() != m_first->end() && m_pos < 1) { m_pos = 0; @@ -289,12 +317,7 @@ class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { m_pos = 1; m_itr = m_second->begin(); // set parameters for second vector - m_ptr->m_RChType = m_typ2; - m_ptr->m_RChUnit = m_uni2; - m_ptr->m_maxTimeCorr = m_cut2; - m_ptr->m_correctAmplitude = m_amp2; - m_ptr->m_correctTime = m_tim2; - m_ptr->m_of2 = m_of22; + m_params = m_params2; } else { m_pos = 2; m_itr = m_second->end(); @@ -321,33 +344,18 @@ class TileCellBuilder: public AthAlgTool, virtual public ICaloCellMakerTool { m_itr = m_second->begin(); m_pos = 1; // set parameters for second vector - m_ptr->m_RChType = m_typ2; - m_ptr->m_RChUnit = m_uni2; - m_ptr->m_maxTimeCorr = m_cut2; - m_ptr->m_correctAmplitude = m_amp2; - m_ptr->m_correctTime = m_tim2; - m_ptr->m_of2 = m_of22; + m_params = m_params2; if (m_itr != m_second->end()) break; m_pos = 2; // recover parameters for first vector - m_ptr->m_RChType = m_typ1; - m_ptr->m_RChUnit = m_uni1; - m_ptr->m_maxTimeCorr = m_cut1; - m_ptr->m_correctAmplitude = m_amp1; - m_ptr->m_correctTime = m_tim1; - m_ptr->m_of2 = m_of21; + m_params = m_params1; break; case 1: if (m_itr != m_second->end()) ++m_itr; if (m_itr != m_second->end()) break; m_pos = 2; // recover parameters for first vector - m_ptr->m_RChType = m_typ1; - m_ptr->m_RChUnit = m_uni1; - m_ptr->m_maxTimeCorr = m_cut1; - m_ptr->m_correctAmplitude = m_amp1; - m_ptr->m_correctTime = m_tim1; - m_ptr->m_of2 = m_of21; + m_params = m_params1; break; default: break; diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref index 7d40749d01d5..60fbec87eb51 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref @@ -1,16 +1,15 @@ -Thu Jan 3 16:18:39 CET 2019 -Preloading tcmalloc_minimal.so +Thu Jan 10 12:55:28 EST 2019 Py:Athena INFO including file "AthenaCommon/Preparation.py" -Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3g/be87ec46e65] -- built on [2019-01-03T1609] +Py:Athena INFO using release [?-21.0.0] [i686-slc5-gcc43-dbg] [?/?] -- built on [?] 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 +SetGeometryVersion.py obtained major release version 21 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5435 configurables from 6 genConfDb files +Py:ConfigurableDb INFO Read module info for 3089 configurables from 2 genConfDb files Py:ConfigurableDb INFO No duplicates have been found: that's good ! -EventInfoMgtInit: Got release version Athena-22.0.1 +EventInfoMgtInit: Got release version sss-rel_0 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 @@ -23,12 +22,13 @@ 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 v30r5) - running on lxplus064.cern.ch on Thu Jan 3 16:18:56 2019 + Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) + running on karma on Thu Jan 10 12:55:33 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -36,7 +36,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 6912 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 7303 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 @@ -44,21 +44,20 @@ 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 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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus064.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +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 ] 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 -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 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 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 = PublicToolHandleArray([]) 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 IOVDbFolder INFO Read from meta data only for folder /TagInfo IOVDbSvc INFO Initialised with 3 connections and 14 folders @@ -83,7 +82,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 1871 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1590 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -137,7 +136,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 2398 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2389 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 @@ -176,7 +175,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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /home/sss/atlas/rootaccess/build/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 +187,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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt +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 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 +216,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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat +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 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 @@ -276,8 +275,8 @@ TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.Tile TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status tilecellbuilder... INFO ProxyOnlBch and ProxyOflBch will be used for bad channel status -ClassIDSvc INFO getRegistryEntries: read 504 CLIDRegistry entries for module ALL -ClassIDSvc INFO getRegistryEntries: read 4846 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1435 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 7021 CLIDRegistry entries for module ALL xAODMaker::Even... INFO Initializing - Package version: xAODEventInfoCnv-00-00-00 xAODMaker::Even... INFO Initializing - Package version: xAODEventInfoCnv-00-00-00 xAODMaker::Even...WARNING Beam conditions service not available @@ -287,22 +286,19 @@ xAODMaker::Even... INFO Will take information from the EventInfo object PyComponentMgr INFO Initializing PyComponentMgr... prepalg1 INFO Initializing prepalg1... testalg1 INFO Initializing testalg1... -ClassIDSvc INFO getRegistryEntries: read 389 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 314 CLIDRegistry entries for module ALL ToolSvc.tool1 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool1 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool1 INFO size of temp vector set to 5184 ToolSvc.tool1 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool1 INFO Storing E4' cells in E4prContainer ToolSvc.tool1 INFO TileCellBuilder initialization completed ToolSvc.tool2 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool2 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool2 INFO size of temp vector set to 5184 ToolSvc.tool2 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool2 INFO Storing E4' cells in E4prContainer ToolSvc.tool2 INFO TileCellBuilder initialization completed ToolSvc.tool5 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool5 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool5 INFO size of temp vector set to 5184 ToolSvc.tool5 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool5 INFO Storing E4' cells in E4prContainer ToolSvc.tool5 INFO TileCellBuilder initialization completed @@ -313,39 +309,33 @@ ToolSvc.tool6 INFO max time thr 100000 ns ToolSvc.tool6 INFO min time thr -100000 ns ToolSvc.tool6 INFO max qual thr 100000 ToolSvc.tool6 INFO min qual thr -100000 -ToolSvc.tool6 INFO size of temp vector set to 5184 ToolSvc.tool6 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool6 INFO Storing E4' cells in E4prContainer ToolSvc.tool6 INFO TileCellBuilder initialization completed ToolSvc.tool7 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool7 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool7 INFO size of temp vector set to 5184 ToolSvc.tool7 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool7 INFO Storing E4' cells in E4prContainer ToolSvc.tool7 INFO TileCellBuilder initialization completed ToolSvc.tool8 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool8.n... INFO Initializing... ToolSvc.tool8 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool8 INFO size of temp vector set to 5184 ToolSvc.tool8 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool8 INFO Storing E4' cells in E4prContainer ToolSvc.tool8 INFO TileCellBuilder initialization completed ToolSvc.tool9 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool9 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool9 INFO size of temp vector set to 5184 ToolSvc.tool9 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool9 INFO Storing E4' cells in E4prContainer ToolSvc.tool9 INFO TileCellBuilder initialization completed ToolSvc.tool10 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool10 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool10 INFO size of temp vector set to 5184 ToolSvc.tool10 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool10 INFO Storing E4' cells in E4prContainer ToolSvc.tool10 INFO TileCellBuilder initialization completed ToolSvc.tool11 INFO Storing MBTS cells in MBTSContainer ToolSvc.tool11.... INFO Initializing... ToolSvc.tool11 INFO none of thresholds set, all RawChannels will be converted to Cells -ToolSvc.tool11 INFO size of temp vector set to 5184 ToolSvc.tool11 INFO taking RawChannels from 'TileRawChannelCnt' ToolSvc.tool11 INFO Storing E4' cells in E4prContainer ToolSvc.tool11 INFO TileCellBuilder initialization completed @@ -372,8 +362,8 @@ IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LARAlign-IOVD IOVDbFolder INFO HVS tag OFLCOND-RUN12-SDR-35 resolved to LArCellPositionShift-ideal for folder /LAR/LArCellPositionShift IOVDbSvc INFO Disconnecting from COOLOFL_LAR/OFLP200 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 +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 CaloMgrDetDescrCnv INFO in createObj: creating a Calo Detector Manager object in the detector store CaloIdMgrDetDes... INFO in createObj: creating a CaloDescrManager object in the detector store ClassIDSvc INFO getRegistryEntries: read 193 CLIDRegistry entries for module ALL @@ -390,18 +380,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 /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +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 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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /home/sss/atlas/rootaccess/build/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 /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 +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 xAODMaker::Even...WARNING Algorithm::BeginRun is deprecated. Use Start instead AthenaEventLoopMgr INFO ===>>> start processing event #1, run #1 0 events processed so far <<<=== IOVDbSvc INFO Opening COOL connection for COOLOFL_TILE/OFLP200 @@ -425,8 +415,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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNoBad.oflBch" +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 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 @@ -436,8 +426,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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-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-work3g/build-x86_64-slc6-gcc62-opt/TileCalorimeter/TileRecUtils/unitTestRun/tilecellbuilder_bct2.bch" +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 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 @@ -447,10 +437,9 @@ 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 650 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 654 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 187 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 8 CLIDRegistry entries for module ALL -ClassIDSvc INFO getRegistryEntries: read 37 CLIDRegistry entries for module ALL AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== AthenaEventLoopMgr INFO ===>>> start processing event #2, run #1 1 events processed so far <<<=== ClassIDSvc INFO getRegistryEntries: read 15 CLIDRegistry entries for module ALL @@ -477,9 +466,9 @@ AthenaEventLoopMgr INFO ===>>> start processing event #12, run #1 11 events 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... +/home/sss/atlas... 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... +/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] ApplicationMgr INFO Application Manager Stopped successfully @@ -490,23 +479,23 @@ testalg1 INFO Finalizing testalg1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.18 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.16 ))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.04 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.03 ))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.03 ))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.13 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97884 (( 0.83 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.59 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 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.03 ))s -IOVDbSvc INFO bytes in (( 2.21 ))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/103344 (( 0.11 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97884 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.01 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.00 ))s +IOVDbSvc INFO bytes in (( 0.26 ))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.21 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 2.00 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.09 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.17 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -522,9 +511,9 @@ ToolSvc.tool1 INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 470 [ms] Ave/Min/Max= 235(+- 235)/ 0/ 470 [ms] #= 2 -cObj_ALL INFO Time User : Tot= 0.57 [s] Ave/Min/Max=0.0438(+-0.136)/ 0/ 0.51 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 46.6 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 340 [ms] Ave/Min/Max= 170(+- 160)/ 10/ 330 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 420 [ms] Ave/Min/Max= 32.3(+- 95.9)/ 0/ 360 [ms] #= 13 +ChronoStatSvc INFO Time User : Tot= 34.2 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx index ce788cf8b64d..ee8d28b9e08b 100644 --- a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx +++ b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /* */ @@ -48,7 +48,7 @@ const InterfaceID& TileCellBuilder::interfaceID( ) { //Constructor TileCellBuilder::TileCellBuilder(const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent) + : base_class(type, name, parent) , m_eneForTimeCut(35. * MeV) // keep time only for cells above 70 MeV (more than 35 MeV in at least one PMT to be precise) , m_eneForTimeCutMBTS(0.03675) // the same cut for MBTS, but in pC, corresponds to 3 ADC counts or 35 MeV , m_qualityCut(254) // cut on overflow in quality (if quality is 255 - assume that channel is bad) @@ -66,22 +66,16 @@ TileCellBuilder::TileCellBuilder(const std::string& type, const std::string& nam , m_tileTBID(0) , m_tileHWID(0) , m_cabling(0) - , m_DQstatus(0) , m_tileDCS("TileDCSTool") , m_tileMgr(0) , m_mbtsMgr(0) - , m_RChType(TileFragHash::Default) - , m_RChUnit(TileRawChannelUnit::ADCcounts) - , m_maxTimeCorr(75.0) , m_notUpgradeCabling(true) , m_run2(false) { - declareInterface<ICaloCellMakerTool>( this ); declareInterface<TileCellBuilder>( this ); - memset(m_drawerEvtStatus, 0, sizeof(m_drawerEvtStatus)); - memset(m_drawerRunStatus, 0, sizeof(m_drawerRunStatus)); - memset(m_eventErrorCounter, 0, sizeof(m_eventErrorCounter)); + //memset(m_drawerRunStatus, 0, sizeof(m_drawerRunStatus)); + //memset(m_eventErrorCounter, 0, sizeof(m_eventErrorCounter)); // never set energy to zero, but set it to some small number // this will help TopoCluster to assign proper weight to the cell if needed @@ -231,6 +225,7 @@ StatusCode TileCellBuilder::initialize() { } ATH_CHECK( m_dspRawChannelContainerKey.initialize(m_mergeChannels) ); + ATH_CHECK( m_eventInfoKey.initialize() ); ATH_MSG_INFO( "TileCellBuilder initialization completed" ); @@ -262,29 +257,10 @@ void TileCellBuilder::reset(bool /* fullSizeCont */, bool printReset) { // prepare empty vector for all cell pointers m_fullSizeCont = true; - m_allCells.resize(m_tileID->cell_hash_max(), 0); - m_MBTSCells = NULL; - m_E4prCells = NULL; - - ATH_MSG_INFO( "size of temp vector set to " << m_allCells.size() ); ATH_MSG_INFO( "taking RawChannels from '" << m_rawChannelContainerKey.key() << "'" ); } -void TileCellBuilder::set_type_and_unit(TileFragHash::TYPE type - , TileRawChannelUnit::UNIT unit) { - - // this method might be called from TileROD_Decoder - // otherwise it's not needed - type and unit are available from - // TileRawChannelContainer itself (see TileCellBuilder::process() below) - - m_RChType = type; - m_RChUnit = unit; - - ATH_MSG_INFO( "type of container is '" << m_RChType << "'" ); - ATH_MSG_INFO( "RawChannel unit [0=ADC, 1=pCb, 2=CspCb, 3=MeV] are '" << m_RChUnit << "'" ); -} - StatusCode TileCellBuilder::finalize() { ATH_MSG_INFO( "Finalizing" ); @@ -299,9 +275,9 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { //* Get TileRawChannels //** - memset(m_drawerEvtStatus, 0, sizeof(m_drawerEvtStatus)); + TileDrawerEvtStatusArray drawerEvtStatus; - SG::ReadHandle<TileRawChannelContainer> rawChannelContainer(m_rawChannelContainerKey); + SG::ReadHandle<TileRawChannelContainer> rawChannelContainer(m_rawChannelContainerKey, ctx); if (!rawChannelContainer.isValid()) { ATH_MSG_WARNING( " Could not find container " << m_rawChannelContainerKey.key() ); @@ -311,45 +287,52 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { ATH_MSG_DEBUG( "Container " << m_rawChannelContainerKey.key() << " with TileRawChannels found "); - m_RChType = rawChannelContainer->get_type(); - m_RChUnit = rawChannelContainer->get_unit(); + + VecParams params; + params.m_RChType = rawChannelContainer->get_type(); + params.m_RChUnit = rawChannelContainer->get_unit(); + params.m_correctAmplitude = m_correctAmplitude; + params.m_correctTime = m_correctTime; + params.m_of2 = m_of2; unsigned int bsflags = rawChannelContainer->get_bsflags(); - if (m_correctAmplitude || m_correctTime) { + if (params.m_correctAmplitude || params.m_correctTime) { int DataType = (bsflags & 0x30000000) >> 28; if (DataType < 3) { // real data bool of2 = ((bsflags & 0x4000000) != 0); - if (of2 != m_of2) { - m_of2 = of2; - ATH_MSG_WARNING( "OF2 flag in data is " << ((m_of2)?"True":"False")); + if (of2 != params.m_of2) { + params.m_of2 = of2; + ATH_MSG_WARNING( "OF2 flag in data is " << ((params.m_of2)?"True":"False")); } - m_maxTimeCorr = 63.9375; // 64-1/16 ns is hard limit in DSP - if (m_correctAmplitude && ((bsflags & 0x3000000) != 0)) { + params.m_maxTimeCorr = 63.9375; // 64-1/16 ns is hard limit in DSP + if (params.m_correctAmplitude && ((bsflags & 0x3000000) != 0)) { ATH_MSG_WARNING( "Using results of Opt filter with interations from DSP, disabling amplitude correction" ); - m_correctAmplitude = false; + params.m_correctAmplitude = false; } - if (m_correctTime && ((bsflags & 0x3000000) == 0)) { + if (params.m_correctTime && ((bsflags & 0x3000000) == 0)) { ATH_MSG_WARNING( "Using results of Opt filter without interations from DSP, disabling time correction" ); - m_correctTime = false; + params.m_correctTime = false; } } else { - m_maxTimeCorr = ((bsflags >> 27) & 1) ? 100.0 : 75.0; // 100 or 75 ns is the limit for 9 or 7 samples - if (m_correctAmplitude && ((bsflags & 0x6000) != 0)) { + params.m_maxTimeCorr = ((bsflags >> 27) & 1) ? 100.0 : 75.0; // 100 or 75 ns is the limit for 9 or 7 samples + if (params.m_correctAmplitude && ((bsflags & 0x6000) != 0)) { ATH_MSG_WARNING( "Amplitude correction was done already in optimal filter, disabling it here" ); - m_correctAmplitude = false; + params.m_correctAmplitude = false; } - if (m_correctTime && ((bsflags & 0x9000) != 0)) { + if (params.m_correctTime && ((bsflags & 0x9000) != 0)) { ATH_MSG_WARNING( "Time correction was done already in optimal filter or best phase is used, disabling it here" ); - m_correctTime = false; + params.m_correctTime = false; } } } + std::unique_ptr<TileCellContainer> MBTSCells; if (!m_MBTSContainerKey.key().empty()) { - m_MBTSCells = std::make_unique<TileCellContainer>(SG::VIEW_ELEMENTS); + MBTSCells = std::make_unique<TileCellContainer>(SG::VIEW_ELEMENTS); } + std::unique_ptr<TileCellContainer> E4prCells; if (!m_E4prContainerKey.key().empty()) { - m_E4prCells = std::make_unique<TileCellContainer>(SG::VIEW_ELEMENTS); + E4prCells = std::make_unique<TileCellContainer>(SG::VIEW_ELEMENTS); } SelectAllObject<TileRawChannelContainer> selAll(rawChannelContainer.cptr()); @@ -363,7 +346,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { ATH_MSG_DEBUG( "Merging " << m_rawChannelContainerKey.key() << " and " << m_dspRawChannelContainerKey.key() ); - SG::ReadHandle<TileRawChannelContainer> dspRawChannelContainer(m_dspRawChannelContainerKey); + SG::ReadHandle<TileRawChannelContainer> dspRawChannelContainer(m_dspRawChannelContainerKey, ctx); if (!dspRawChannelContainer.isValid()) { // no DSP channels, build cells from primary container @@ -392,11 +375,11 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { TileRawChannelUnit::UNIT dspUnit = dspContainer->get_unit(); unsigned int dspFlags = dspContainer->get_bsflags(); int DataType = (dspFlags & 0x30000000) >> 28; - float dspTimeCut = m_maxTimeCorr; + float dspTimeCut = params.m_maxTimeCorr; bool dspCorrectAmplitude = false, dspCorrectTime = false, dspOf2 = true; if (DataType < 3) { // real data dspOf2 = ((dspFlags & 0x4000000) != 0); - if (dspOf2 != m_of2) ATH_MSG_DEBUG( "OF2 flag in DSPcontainer is " << ((dspOf2)?"True":"False")); + if (dspOf2 != params.m_of2) ATH_MSG_DEBUG( "OF2 flag in DSPcontainer is " << ((dspOf2)?"True":"False")); dspTimeCut = 63.9375; // 64-1/16 ns is hard limit in DSP dspCorrectAmplitude = ((dspFlags & 0x3000000) == 0); dspCorrectTime = ((dspFlags & 0x3000000) != 0); @@ -463,19 +446,31 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { dspVec.push_back(*dspItr); } + VecParams params1 = params; + VecParams params2; + params2.m_RChType = dspType; + params2.m_RChUnit = dspUnit; + params2.m_maxTimeCorr = dspTimeCut; + params2.m_correctAmplitude = dspCorrectAmplitude; + params2.m_correctTime = dspCorrectTime; + params2.m_of2 = dspOf2; + // build here with special iterator over 2 vectors DoubleVectorIterator<std::vector<const TileRawChannel *>, const TileRawChannel *> vecBeg( - &oflVec, m_RChType, m_RChUnit, m_maxTimeCorr, m_correctAmplitude, m_correctTime, m_of2, - &dspVec, dspType, dspUnit, dspTimeCut, dspCorrectAmplitude, dspCorrectTime, dspOf2, this, 0); + params, + &oflVec, params1, + &dspVec, params2, 0); DoubleVectorIterator<std::vector<const TileRawChannel *>, const TileRawChannel *> vecEnd( - &oflVec, m_RChType, m_RChUnit, m_maxTimeCorr, m_correctAmplitude, m_correctTime, m_of2, - &dspVec, dspType, dspUnit, dspTimeCut, dspCorrectAmplitude, dspCorrectTime, dspOf2, this, 2); + params, + &oflVec, params1, + &dspVec, params2, 2); ATH_MSG_DEBUG("Build raw channels from two vectors:" << " offline vector size = " << oflVec.size() << ", dsp vector size = " << dspVec.size() ); - build(ctx, vecBeg, vecEnd, theCellContainer); + build (ctx, drawerEvtStatus, params, vecBeg, vecEnd, theCellContainer, + MBTSCells.get(), E4prCells.get()); begin = end; } @@ -503,17 +498,18 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { } ATH_MSG_DEBUG( " Calling build() method for rawChannels from " << m_rawChannelContainerKey.key() ); - build(ctx, begin, end, theCellContainer); + build (ctx, drawerEvtStatus, params, begin, end, theCellContainer, + MBTSCells.get(), E4prCells.get()); } if (!m_MBTSContainerKey.key().empty()) { - SG::WriteHandle<TileCellContainer> MBTSContainer(m_MBTSContainerKey); - ATH_CHECK( MBTSContainer.record(std::move(m_MBTSCells)) ); + SG::WriteHandle<TileCellContainer> MBTSContainer(m_MBTSContainerKey, ctx); + ATH_CHECK( MBTSContainer.record(std::move(MBTSCells)) ); } if (!m_E4prContainerKey.key().empty()) { - SG::WriteHandle<TileCellContainer> E4prContainer(m_E4prContainerKey); - ATH_CHECK( E4prContainer.record(std::move(m_E4prCells)) ); + SG::WriteHandle<TileCellContainer> E4prContainer(m_E4prContainerKey, ctx); + ATH_CHECK( E4prContainer.record(std::move(E4prCells)) ); } CaloCell_ID::SUBCALO caloNum = CaloCell_ID::TILE; @@ -542,8 +538,8 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { int drConsecNum = 0; for (int p = 1; p < 5; ++p) { - TileDrawerEvtStatus * evt = m_drawerEvtStatus[p]; - TileDrawerRunStatus * run = m_drawerRunStatus[p]; + TileDrawerEvtStatus * evt = drawerEvtStatus[p]; + //TileDrawerRunStatus * run = m_drawerRunStatus[p]; int drAbsent = 0; int drMasked = 0; int drConsec = 0; @@ -556,11 +552,11 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { if (evt[d].nChannels == 0) { ++drConsec; ++drAbsent; - ++(run[d].drawerAbsent); + //++(run[d].drawerAbsent); } else if (evt[d].nMaskedChannels >= evt[d].nChannels) { ++drConsec; ++drMasked; - ++(run[d].drawerMasked); + //++(run[d].drawerMasked); } else { if (drConsec > drConsecMax) { drConsecMax = drConsec; @@ -571,7 +567,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { } drConsec = 0; if (evt[d].nMaskedChannels > 0) { - ++(run[d].channelsMasked); + //++(run[d].channelsMasked); } if (evt[d].nBadQuality) ++hasBadQ; if (evt[d].nOverflow) ++hasOver; @@ -613,7 +609,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { flag |= fl << (p - 1); } - // number of cosecutively masked modules (if it's > 15 we have error already set) + // number of consecutively masked modules (if it's > 15 we have error already set) flag |= (std::min(15, drConsecMaxMax) << 16); if (drConsecMaxMax > 1 && error < xAOD::EventInfo::Warning) { @@ -632,12 +628,12 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { std::cout<<"partition flag 0x0"<<std::hex<<flag<<std::dec<<" error "<<error<<std::endl; #endif - ++m_eventErrorCounter[error]; // error index is 0 or 1 or 2 here - ++m_eventErrorCounter[3]; // count separately total number of events + //++m_eventErrorCounter[error]; // error index is 0 or 1 or 2 here + //++m_eventErrorCounter[3]; // count separately total number of events // retrieve EventInfo - SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey); + SG::ReadHandle<xAOD::EventInfo> eventInfo(m_eventInfoKey, ctx); if (eventInfo.isValid()) { @@ -655,7 +651,8 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { } } - } else { + } + else { ATH_MSG_WARNING( " cannot retrieve EventInfo, will not set Tile information " ); } @@ -667,7 +664,7 @@ StatusCode TileCellBuilder::process(CaloCellContainer * theCellContainer) { //************************************************************************ void TileCellBuilder::correctCell(TileCell* pCell, int correction, int pmt, int gain - , float ener, float time, unsigned char iqual, unsigned char qbit, int ch_type) { + , float ener, float time, unsigned char iqual, unsigned char qbit, int ch_type) const { //************************************************************************ // Merge two pmts in one cell if needed @@ -696,14 +693,22 @@ void TileCellBuilder::correctCell(TileCell* pCell, int correction, int pmt, int } } -unsigned char TileCellBuilder::qbits(int ros, int drawer, bool count_over - , bool good_time, bool good_ener, bool overflow, bool underflow, bool overfit) { - - ++m_drawerEvtStatus[ros][drawer].nChannels; +unsigned char TileCellBuilder::qbits (TileDrawerEvtStatusArray& drawerEvtStatus, + TileFragHash::TYPE RChType, + int ros, + int drawer, + bool count_over, + bool good_time, + bool good_ener, + bool overflow, + bool underflow, + bool overfit) const +{ + ++drawerEvtStatus[ros][drawer].nChannels; // new feature in rel 17.2.7 - count underflows and overflows if (count_over) { - if (overflow) ++m_drawerEvtStatus[ros][drawer].nOverflow; - if (underflow) ++m_drawerEvtStatus[ros][drawer].nUnderflow; + if (overflow) ++drawerEvtStatus[ros][drawer].nOverflow; + if (underflow) ++drawerEvtStatus[ros][drawer].nUnderflow; } #ifdef ALLOW_DEBUG_COUT if (overflow) std::cout << "channel with overflow " << ((count_over)?"":"MBTS") << std::endl; @@ -712,14 +717,14 @@ unsigned char TileCellBuilder::qbits(int ros, int drawer, bool count_over #endif unsigned char qbit = (overfit) ? (TileFragHash::FitFilter & TileCell::MASK_ALGO) - : (m_RChType & TileCell::MASK_ALGO); + : (RChType & TileCell::MASK_ALGO); if (good_time) qbit |= TileCell::MASK_TIME; if (overflow || underflow) qbit |= TileCell::MASK_OVER; if (good_ener) { qbit |= TileCell::MASK_AMPL; if (count_over) { - ++m_drawerEvtStatus[ros][drawer].nSomeSignal; + ++drawerEvtStatus[ros][drawer].nSomeSignal; } } @@ -727,7 +732,11 @@ unsigned char TileCellBuilder::qbits(int ros, int drawer, bool count_over } // masking for MBTS with single channel -bool TileCellBuilder::maskBadChannel(TileCell* pCell, HWIdentifier hwid) { +bool +TileCellBuilder::maskBadChannel (TileDrawerEvtStatusArray& drawerEvtStatus, + const TileDQstatus* DQstatus, + TileCell* pCell, HWIdentifier hwid) const +{ int ros = m_tileHWID->ros(hwid); int drawer = m_tileHWID->drawer(hwid); int chan = m_tileHWID->channel(hwid); @@ -738,22 +747,22 @@ bool TileCellBuilder::maskBadChannel(TileCell* pCell, HWIdentifier hwid) { // check quality first bool bad = ((int) pCell->qual1() > m_qualityCut); if (bad) { - ++m_drawerEvtStatus[ros][drawer].nBadQuality; + ++drawerEvtStatus[ros][drawer].nBadQuality; } else { // check bad status in DB bad = chStatus.isBad(); // Now checking the DQ status - if (!bad && m_notUpgradeCabling) { - bad = !(m_DQstatus->isAdcDQgood(ros, drawer, chan, gain) + if (!bad && m_notUpgradeCabling && DQstatus) { + bad = !(DQstatus->isAdcDQgood(ros, drawer, chan, gain) && isChanDCSgood(ros, drawer, chan)); } } if (bad) { // only one channel in this cell and it is bad - ++m_drawerEvtStatus[ros][drawer].nMaskedChannels; + ++drawerEvtStatus[ros][drawer].nMaskedChannels; //pCell->setEnergy(m_zeroEnergy,0.0,TileID::LOWGAIN,CaloGain::INVALIDGAIN); // reset energy completely, indicate problem putting low gain //pCell->setTime(0.0); // reset time completely @@ -781,7 +790,10 @@ bool TileCellBuilder::maskBadChannel(TileCell* pCell, HWIdentifier hwid) { // masking for normal cells -bool TileCellBuilder::maskBadChannels(TileCell* pCell) { +bool TileCellBuilder::maskBadChannels (TileDrawerEvtStatusArray& drawerEvtStatus, + const TileDQstatus* DQstatus, + TileCell* pCell) const +{ bool single_PMT_C10 = false; const CaloDetDescrElement* caloDDE = pCell->caloDDE(); @@ -802,15 +814,15 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { // check quality first bool bad1 = ((int) pCell->qual1() > m_qualityCut); if (bad1) { - ++m_drawerEvtStatus[ros1][drawer1].nBadQuality; + ++drawerEvtStatus[ros1][drawer1].nBadQuality; } else { // check bad status in DB bad1 = (gain1 < 0) || chStatus1.isBad(); // Now checking the DQ status - if (!bad1 && m_notUpgradeCabling) { - bad1 = !(m_DQstatus->isAdcDQgood(ros1, drawer1, chan1, gain1) + if (!bad1 && m_notUpgradeCabling && DQstatus) { + bad1 = !(DQstatus->isAdcDQgood(ros1, drawer1, chan1, gain1) && isChanDCSgood(ros1, drawer1, chan1)); } } @@ -820,7 +832,7 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { if (bad1) { // only one channel in this cell and it is bad - ++m_drawerEvtStatus[ros1][drawer1].nMaskedChannels; + ++drawerEvtStatus[ros1][drawer1].nMaskedChannels; if (gain1 == CaloGain::INVALIDGAIN) { pCell->setEnergy(m_zeroEnergy, 0.0, TileID::LOWGAIN, CaloGain::INVALIDGAIN); // reset energy completely, indicate problem putting low gain @@ -854,15 +866,15 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { // check quality first bool bad2 = ((int) pCell->qual2() > m_qualityCut); if (bad2) { - ++m_drawerEvtStatus[ros2][drawer2].nBadQuality; + ++drawerEvtStatus[ros2][drawer2].nBadQuality; } else { // check bad status in DB bad2 = (gain2 < 0) || chStatus2.isBad(); // Now checking the DQ status - if (!bad2 && m_notUpgradeCabling) { - bad2 = !(m_DQstatus->isAdcDQgood(ros2, drawer2, chan2, gain2) + if (!bad2 && m_notUpgradeCabling && DQstatus) { + bad2 = !(DQstatus->isAdcDQgood(ros2, drawer2, chan2, gain2) && isChanDCSgood(ros2, drawer2, chan2)); } } @@ -898,7 +910,7 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { pCell->setEnergy(pCell->ene2()/2., pCell->ene2()/2., gain2, gain2); //bad1 = bad2; bad1 = true; - --m_drawerEvtStatus[ros1][drawer1].nMaskedChannels; // since it's fake masking, decrease counter by 1 in advance + --drawerEvtStatus[ros1][drawer1].nMaskedChannels; // since it's fake masking, decrease counter by 1 in advance } } else { if (m_run2 || !chStatus2.isBad()) { @@ -911,14 +923,14 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { pCell->setEnergy(pCell->ene1()/2., pCell->ene1()/2., gain1, gain1); //bad2 = bad1; bad2 = true; - --m_drawerEvtStatus[ros2][drawer2].nMaskedChannels; // since it's fake masking, decrease counter by 1 in advance + --drawerEvtStatus[ros2][drawer2].nMaskedChannels; // since it's fake masking, decrease counter by 1 in advance } } } if (bad1 && bad2) { // both channels are bad - ++m_drawerEvtStatus[ros1][drawer1].nMaskedChannels; - ++m_drawerEvtStatus[ros2][drawer2].nMaskedChannels; + ++drawerEvtStatus[ros1][drawer1].nMaskedChannels; + ++drawerEvtStatus[ros2][drawer2].nMaskedChannels; if (gain1 == CaloGain::INVALIDGAIN || gain2 == CaloGain::INVALIDGAIN) { if (gain1 == CaloGain::INVALIDGAIN) gain1 = 0; // this is TileID::LOWGAIN; - commented out to make Coverity happy @@ -935,7 +947,7 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { } else if (bad1 && !bad2) { // first channel is bad - ++m_drawerEvtStatus[ros1][drawer1].nMaskedChannels; + ++drawerEvtStatus[ros1][drawer1].nMaskedChannels; float ene2 = pCell->ene2(); pCell->setEnergy(ene2, ene2, gain2, gain2); // use energy/gain from second pmt for both pmts @@ -958,7 +970,7 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { } else if (!bad1 && bad2) { // second channel is bad - ++m_drawerEvtStatus[ros2][drawer2].nMaskedChannels; + ++drawerEvtStatus[ros2][drawer2].nMaskedChannels; float ene1 = pCell->ene1(); pCell->setEnergy(ene1, ene1, gain1, gain1); // use energy/gain from first pmt for both pmts @@ -1008,11 +1020,19 @@ bool TileCellBuilder::maskBadChannels(TileCell* pCell) { template<class ITERATOR, class COLLECTION> -void TileCellBuilder::build(const EventContext& ctx, - const ITERATOR & begin, const ITERATOR & end, COLLECTION * coll) { - +void TileCellBuilder::build (const EventContext& ctx, + TileDrawerEvtStatusArray& drawerEvtStatus, + VecParams& params, + const ITERATOR & begin, + const ITERATOR & end, + COLLECTION* coll, + TileCellContainer* MBTSCells, + TileCellContainer* E4prCells) const +{ + // Now retrieve the TileDQstatus + const TileDQstatus* DQstatus = nullptr; if(m_notUpgradeCabling) { - m_DQstatus = SG::makeHandle (m_DQstatusKey, ctx).get(); + DQstatus = SG::makeHandle (m_DQstatusKey, ctx).get(); } /* zero all counters and sums */ @@ -1034,6 +1054,8 @@ void TileCellBuilder::build(const EventContext& ctx, //* existing ones). Add each new TileCell to the output collection //** + std::vector<TileCell*> allCells (m_tileID->cell_hash_max(), nullptr); + for (ITERATOR rawItr = begin; rawItr != end; ++rawItr) { const TileRawChannel* pChannel = (*rawItr); @@ -1052,19 +1074,19 @@ void TileCellBuilder::build(const EventContext& ctx, float time = pChannel->uncorrTime(); // take uncorrected time (if available) float amp = pChannel->amplitude(); - TileRawChannelUnit::UNIT oldUnit = m_RChUnit; - if (m_correctAmplitude && time > m_timeMinThresh && time < m_timeMaxThresh) { // parabolic correction - if (m_RChUnit > TileRawChannelUnit::OnlineADCcounts) { // convert from online units to ADC counts + TileRawChannelUnit::UNIT oldUnit = params.m_RChUnit; + if (params.m_correctAmplitude && time > m_timeMinThresh && time < m_timeMaxThresh) { // parabolic correction + if (params.m_RChUnit > TileRawChannelUnit::OnlineADCcounts) { // convert from online units to ADC counts oldUnit = TileRawChannelUnit::ADCcounts; - amp = m_tileToolEmscale->undoOnlCalib(drawerIdx, channel, gain, amp, m_RChUnit); + amp = m_tileToolEmscale->undoOnlCalib(drawerIdx, channel, gain, amp, params.m_RChUnit); if (amp > m_ampMinThresh) // amp cut in ADC counts - amp *= TileRawChannelBuilder::correctAmp(time,m_of2); - } else if (m_RChUnit == TileRawChannelUnit::ADCcounts - || m_RChUnit == TileRawChannelUnit::OnlineADCcounts) { + amp *= TileRawChannelBuilder::correctAmp(time,params.m_of2); + } else if (params.m_RChUnit == TileRawChannelUnit::ADCcounts + || params.m_RChUnit == TileRawChannelUnit::OnlineADCcounts) { if (amp > m_ampMinThresh) - amp *= TileRawChannelBuilder::correctAmp(time,m_of2); + amp *= TileRawChannelBuilder::correctAmp(time,params.m_of2); } else { - ATH_MSG_ERROR( "Units in raw channel container is " << m_RChUnit ); + ATH_MSG_ERROR( "Units in raw channel container is " << params.m_RChUnit ); ATH_MSG_ERROR( "But amplitude correction works only with ADC counts " ); ATH_MSG_ERROR( "Please, disable CIS calibration in optimal filter " ); } @@ -1073,10 +1095,10 @@ void TileCellBuilder::build(const EventContext& ctx, float qual = pChannel->quality(); // check that time was really reconstructed - bool good_time = (fabs(time) < m_maxTimeCorr); - bool non_zero_time = (m_RChType == TileFragHash::OptFilterDspCompressed) + bool good_time = (fabs(time) < params.m_maxTimeCorr); + bool non_zero_time = (params.m_RChType == TileFragHash::OptFilterDspCompressed) ? ((qual > 2.99 && qual < 4.01)) - : ((qual > 0.0 || m_RChType == TileFragHash::OptFilterDsp)); + : ((qual > 0.0 || params.m_RChType == TileFragHash::OptFilterDsp)); // new feature in rel 17.2.7 - pedestal keeps information about overflow and underflow // if there is an underflow, 10000 is added to pedestal value @@ -1112,7 +1134,7 @@ void TileCellBuilder::build(const EventContext& ctx, } // apply time correction if needed - if (m_correctTime && good_time && non_zero_time) + if (params.m_correctTime && good_time && non_zero_time) time -= m_tileToolTiming->getSignalPhase(drawerIdx, channel, gain); else time = pChannel->time(); @@ -1140,7 +1162,7 @@ void TileCellBuilder::build(const EventContext& ctx, if (index == -3) { // E4' cells - if (m_E4prCells) { // do something with them only if container exists + if (E4prCells) { // do something with them only if the container exists ++nE4pr; // convert ADC counts to MeV. like for normal cells @@ -1150,7 +1172,8 @@ void TileCellBuilder::build(const EventContext& ctx, eE4prTot += ener; unsigned char iqual = iquality(qual); // for E4' cell qbit use only non_zero_time flag and check that energy is above standatd energy threshold in MeV - unsigned char qbit = qbits(ros, drawer, true, non_zero_time, (fabs(ener) > m_eneForTimeCut) + unsigned char qbit = qbits(drawerEvtStatus, params.m_RChType, + ros, drawer, true, non_zero_time, (fabs(ener) > m_eneForTimeCut) , overflow, underflow, overfit); CaloGain::CaloGain cgain = (gain == TileID::HIGHGAIN) ? CaloGain::TILEONEHIGH @@ -1183,17 +1206,18 @@ void TileCellBuilder::build(const EventContext& ctx, msg(MSG::VERBOSE) << endmsg; } - if (m_maskBadChannels && maskBadChannel(pCell, adc_id)) + if (m_maskBadChannels && maskBadChannel(drawerEvtStatus, DQstatus, + pCell, adc_id)) ATH_MSG_VERBOSE ( "cell with id=" << m_tileTBID->to_string(cell_id) << " bad channel masked, new energy=" << pCell->energy() ); - m_E4prCells->push_back(pCell); // store cell in container + E4prCells->push_back(pCell); // store cell in container } } else if (index == -2) { // MBTS cells - if (m_MBTSCells) { // do something with them only if contaier existst + if (MBTSCells) { // do something with them only if contaier existst ++nMBTS; // convert ADC counts to pCb and not to MeV @@ -1203,7 +1227,8 @@ void TileCellBuilder::build(const EventContext& ctx, eMBTSTot += ener; unsigned char iqual = iquality(qual); // for MBTS qbit use AND of good_time and non_zero_time and check that energy is above MBTS energy threshold in pC - unsigned char qbit = qbits(ros, drawer, false, (good_time && non_zero_time) + unsigned char qbit = qbits(drawerEvtStatus, params.m_RChType, + ros, drawer, false, (good_time && non_zero_time) , (fabs(ener) > m_eneForTimeCutMBTS), overflow, underflow, overfit); CaloGain::CaloGain cgain = (gain == TileID::HIGHGAIN) ? CaloGain::TILEONEHIGH @@ -1236,11 +1261,12 @@ void TileCellBuilder::build(const EventContext& ctx, msg(MSG::VERBOSE) << endmsg; } - if (m_maskBadChannels && maskBadChannel(pCell, adc_id)) + if (m_maskBadChannels && maskBadChannel(drawerEvtStatus, DQstatus, + pCell, adc_id)) ATH_MSG_VERBOSE ( "cell with id=" << m_tileTBID->to_string(cell_id) << " bad channel masked, new energy=" << pCell->energy() ); - m_MBTSCells->push_back(pCell); // store cell in container + MBTSCells->push_back(pCell); // store cell in container } } else if (index != -1) { // connected channel @@ -1252,7 +1278,8 @@ void TileCellBuilder::build(const EventContext& ctx, unsigned char iqual = iquality(qual); // for normal cell qbit use only non_zero_time flag and check that energy is above standatd energy threshold in MeV - unsigned char qbit = qbits(ros, drawer, true, non_zero_time, (fabs(ener) > m_eneForTimeCut) + unsigned char qbit = qbits(drawerEvtStatus, params.m_RChType, + ros, drawer, true, non_zero_time, (fabs(ener) > m_eneForTimeCut) , overflow, underflow, overfit); @@ -1265,7 +1292,7 @@ void TileCellBuilder::build(const EventContext& ctx, int index2 = m_tileID->cell_hash(cell_id2); TileCell* pCell2 = tileCellsP.nextElementPtr(); ++nCell; - m_allCells[index2] = pCell2; + allCells[index2] = pCell2; const CaloDetDescrElement* dde2 = m_tileMgr->get_cell_element(index2); pCell2->set(dde2, cell_id2); pCell2->setEnergy_nonvirt(0, 0, CaloGain::INVALIDGAIN, CaloGain::INVALIDGAIN); @@ -1281,13 +1308,13 @@ void TileCellBuilder::build(const EventContext& ctx, } - TileCell* pCell = m_allCells[index]; + TileCell* pCell = allCells[index]; if (pCell) { ++nTwo; correctCell(pCell, 2, pmt, gain, ener, time, iqual, qbit, 0); // correct & merge 2 PMTs in one cell } else { ++nCell; - m_allCells[index] = pCell = tileCellsP.nextElementPtr(); + allCells[index] = pCell = tileCellsP.nextElementPtr(); const CaloDetDescrElement* dde = m_tileMgr->get_cell_element(index); pCell->set(dde, cell_id); pCell->setEnergy_nonvirt(0, 0, CaloGain::INVALIDGAIN, CaloGain::INVALIDGAIN); @@ -1320,7 +1347,8 @@ void TileCellBuilder::build(const EventContext& ctx, if (msgLvl(MSG::VERBOSE)) { unsigned char iqual = iquality(qual); - unsigned char qbit = qbits(0, drawer, false, non_zero_time, false, overflow, underflow, overfit); //fake ros number here + unsigned char qbit = qbits(drawerEvtStatus, params.m_RChType, + 0, drawer, false, non_zero_time, false, overflow, underflow, overfit); //fake ros number here msg(MSG::VERBOSE) << " channel with adc_id=" << m_tileHWID->to_string(adc_id) << " is not connected" << endmsg; @@ -1338,7 +1366,7 @@ void TileCellBuilder::build(const EventContext& ctx, } } if (msgLvl(MSG::VERBOSE)) { - if ((m_correctTime && good_time && non_zero_time) || pChannel->sizeTime() > 1) { + if ((params.m_correctTime && good_time && non_zero_time) || pChannel->sizeTime() > 1) { msg(MSG::VERBOSE) << " OF_time = " << pChannel->uncorrTime() << " corr_time = " << time << endmsg; } @@ -1348,14 +1376,14 @@ void TileCellBuilder::build(const EventContext& ctx, //** // Now store all TileCells //** - for (unsigned int index = 0; index < m_allCells.size(); ++index) { + for (unsigned int index = 0; index < allCells.size(); ++index) { - TileCell * pCell = m_allCells[index]; + TileCell * pCell = allCells[index]; if (pCell) { // cell exists if (m_maskBadChannels) - if (maskBadChannels(pCell)) + if (maskBadChannels (drawerEvtStatus, DQstatus, pCell)) ATH_MSG_VERBOSE ( "cell with id=" << m_tileID->to_string(pCell->ID(), -2) << " bad channels masked, new energy=" << pCell->energy() ); @@ -1375,7 +1403,7 @@ void TileCellBuilder::build(const EventContext& ctx, } - m_allCells[index] = 0; // clear pointer for next event + allCells[index] = 0; // clear pointer for next event } else if (m_fakeCrackCells) { // can be true only for full-size container pCell = tileCellsP.nextElementPtr(); @@ -1416,10 +1444,10 @@ void TileCellBuilder::build(const EventContext& ctx, << " nFake=" << nFake << " eneTot=" << eCellTot; - if (m_MBTSCells) + if (MBTSCells) msg(MSG::DEBUG) << " nMBTS=" << nMBTS << " eMBTS=" << eMBTSTot; - if (m_E4prCells) + if (E4prCells) msg(MSG::DEBUG) << " nE4pr=" << nE4pr << " eE4pr=" << eE4prTot; -- GitLab From 5dbe85eb6fb1d75e7e60085c430e182f65b9c5dc Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Thu, 24 Jan 2019 16:29:47 +0100 Subject: [PATCH 107/192] FastCaloSim: Making FastShowerCellBuilderTool const. Change from IAtRndmGenSvc to IAthRNGSvc for MT-compatibility. Remove uses of gRandom. Results change due to differences in how RNGs are seeded. --- .../FastCaloSim/FastShowerCellBuilderTool.h | 8 +- .../share/FastShowerCellBuilderTool_test.py | 134 +++++++++--------- .../share/FastShowerCellBuilderTool_test.ref | 27 ++-- .../src/FastShowerCellBuilderTool.cxx | 21 +-- .../src/ParticleEnergyParametrization.cxx | 11 +- 5 files changed, 99 insertions(+), 102 deletions(-) diff --git a/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h b/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h index d0219ddee68b..9e6a05ff2dd6 100755 --- a/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h +++ b/Simulation/FastShower/FastCaloSim/FastCaloSim/FastShowerCellBuilderTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef FASTSHOWER_CELLBUILDERTOOL_H @@ -12,7 +12,7 @@ #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/IIncidentListener.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "AthenaKernel/IAthRNGSvc.h" #include "FastCaloSim/BasicCellBuilderTool.h" //#include "TruthHelper/GenAccessIO.h" #include "FastSimulationEvent/GenParticleEnergyDepositMap.h" @@ -148,8 +148,8 @@ private: FastShower::LongitudinalShape* m_longshape; */ ServiceHandle<IPartPropSvc> m_partPropSvc; - ServiceHandle<IAtRndmGenSvc> m_rndmSvc; - CLHEP::HepRandomEngine* m_randomEngine{}; + ServiceHandle<IAthRNGSvc> m_rndmSvc; + ATHRNG::RNGWrapper* m_randomEngine = nullptr; std::string m_randomEngineName{"FastCaloSimRnd"}; //!< Name of the random number stream //CaloDepthTool* m_calodepth; diff --git a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.py b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.py index bc0583c43992..98021ba93a52 100644 --- a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.py +++ b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration. +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration. # # File: FastCaloSim/share/FastShowerCellBuilderTool_test.py # Author: scott snyder @@ -44,74 +44,74 @@ topSequence = AlgSequence() theApp.EvtMax=1 + exp_cells = { - (0, -3, 1, 0, 2, 29) : 1082.3, + (0, -3, 1, 0, 2, 29) : 873.8, (0, -3, 1, 0, 2, 30) : 593.1, - (0, -3, 1, 0, 3, 28) : 2893.1, - (0, -3, 1, 0, 3, 29) : 85573.6, - (0, -3, 1, 0, 3, 30) : 19897.8, - (0, -3, 1, 0, 4, 28) : 1775.3, - (0, -3, 1, 0, 4, 29) : 13901.8, - (0, -3, 1, 0, 4, 30) : 4405.1, - (0, -3, 1, 0, 5, 29) : 650.2, - (0, -3, 1, 0, 5, 30) : 508.4, - (0, -3, 2, 0, 3, 29) : 557.1, - (0, -2, 0, 0, 0, 28) : 765.0, - (0, -2, 1, 1, 2, 28) : 5965.7, - (0, -2, 2, 1, 2, 113) : 1617.0, - (0, -2, 2, 1, 2, 114) : 2100.8, - (0, -1, 0, 0, 59, 28) : 871.8, - (0, -1, 0, 0, 60, 28) : 1184.4, - (0, 1, 0, 0, 59, 25) : 282.9, - (0, 1, 0, 0, 60, 25) : 208.4, - (0, 2, 0, 0, 0, 24) : 567.1, - (0, 2, 0, 0, 0, 25) : 4319.5, - (0, 2, 0, 0, 1, 25) : 810.2, - (0, 2, 1, 1, 1, 25) : 745.2, - (0, 2, 1, 1, 2, 25) : 13066.6, - (0, 2, 1, 4, 28, 37) : 540.0, - (0, 2, 1, 4, 29, 37) : 910.3, - (0, 2, 1, 4, 30, 37) : 788.2, - (0, 2, 1, 4, 31, 37) : 610.1, - (0, 2, 1, 4, 32, 37) : 266.0, - (0, 2, 2, 1, 1, 101) : 324.4, - (0, 2, 2, 1, 2, 100) : 1023.7, - (0, 2, 2, 1, 2, 101) : 6262.3, - (0, 2, 2, 1, 2, 102) : 636.3, - (0, 2, 2, 1, 3, 101) : 428.5, - (0, 2, 2, 1, 29, 149) : 683.1, - (0, 2, 2, 1, 29, 150) : 1136.9, - (0, 2, 2, 1, 29, 151) : 265.4, - (0, 2, 2, 1, 30, 148) : 410.7, - (0, 2, 2, 1, 30, 149) : 6159.1, - (0, 2, 2, 1, 30, 150) : 9094.0, - (0, 2, 2, 1, 30, 151) : 757.1, - (0, 2, 2, 1, 31, 148) : 248.7, - (0, 2, 2, 1, 31, 149) : 1078.7, - (0, 2, 2, 1, 31, 150) : 1348.1, - (0, 2, 2, 1, 31, 151) : 396.7, - (0, 2, 2, 1, 32, 150) : 165.0, - (0, 2, 3, 0, 13, 149) : 6118.8, - (0, 2, 3, 0, 13, 150) : 12741.9, - (0, 2, 3, 0, 13, 151) : 1333.6, - (0, 2, 3, 0, 14, 149) : 853.6, - (0, 2, 3, 0, 14, 150) : 1421.6, - (0, 2, 3, 0, 14, 151) : 617.1, - (1, 2, 0, 0, 6, 36) : 191.8, - (1, 2, 0, 0, 6, 37) : 2026.1, - (1, 2, 0, 0, 6, 38) : 103.9, - (1, 2, 0, 0, 7, 37) : 432.4, - (1, 2, 1, 0, 6, 36) : 1347.2, - (1, 2, 1, 0, 6, 37) : 13680.3, - (1, 2, 1, 0, 6, 38) : 1055.9, - (1, 2, 1, 0, 7, 36) : 568.6, - (1, 2, 1, 0, 7, 37) : 9250.3, - (1, 2, 1, 0, 7, 38) : 589.0, - (1, 2, 2, 0, 6, 37) : 1702.3, - (1, 2, 2, 0, 7, 37) : 1321.2, - (3, 3, -1, 28, 15, 3) : 2566.1, - (3, 3, 1, 24, 15, 3) : 690.3, - (3, 3, 1, 25, 15, 3) : 9414.4, + (0, -3, 1, 0, 3, 28) : 3003.6, + (0, -3, 1, 0, 3, 29) : 83002.8, + (0, -3, 1, 0, 3, 30) : 19794.6, + (0, -3, 1, 0, 4, 28) : 1847.6, + (0, -3, 1, 0, 4, 29) : 14195.6, + (0, -3, 1, 0, 4, 30) : 4444.7, + (0, -3, 1, 0, 5, 29) : 382.2, + (0, -3, 1, 0, 5, 30) : 321.8, + (0, -3, 2, 0, 3, 29) : 260.3, + (0, -2, 0, 0, 0, 28) : 787.8, + (0, -2, 1, 1, 1, 28) : 546.6, + (0, -2, 1, 1, 2, 28) : 5108.6, + (0, -2, 2, 1, 2, 113) : 1382.2, + (0, -2, 2, 1, 2, 114) : 1784.3, + (0, -1, 0, 0, 59, 28) : 515.6, + (0, -1, 0, 0, 60, 28) : 520.8, + (0, 1, 0, 0, 59, 25) : 69.6, + (0, 1, 0, 0, 60, 25) : 22.92, + (0, 2, 0, 0, 0, 24) : 34.7, + (0, 2, 0, 0, 0, 25) : 191.5, + (0, 2, 0, 0, 1, 25) : 30.1, + (0, 2, 1, 1, 1, 25) : 572.2, + (0, 2, 1, 1, 2, 25) : 12659.3, + (0, 2, 2, 1, 1, 101) : 581.2, + (0, 2, 2, 1, 2, 100) : 1557.3, + (0, 2, 2, 1, 2, 101) : 9685.9, + (0, 2, 2, 1, 2, 102) : 1053.7, + (0, 2, 2, 1, 3, 101) : 716.1, + (0, 2, 2, 1, 29, 149) : 1217.4, + (0, 2, 2, 1, 29, 150) : 2093.2, + (0, 2, 2, 1, 29, 151) : 461.8, + (0, 2, 2, 1, 30, 148) : 492.0, + (0, 2, 2, 1, 30, 149) : 6877.1, + (0, 2, 2, 1, 30, 150) : 12497.6, + (0, 2, 2, 1, 30, 151) : 1600.2, + (0, 2, 2, 1, 31, 148) : 378.3, + (0, 2, 2, 1, 31, 149) : 1359.0, + (0, 2, 2, 1, 31, 150) : 2037.2, + (0, 2, 2, 1, 31, 151) : 651.7, + (0, 2, 2, 1, 32, 150) : 294.3, + (0, 2, 3, 0, 13, 148) : 859.8, + (0, 2, 3, 0, 13, 149) : 6645.7, + (0, 2, 3, 0, 13, 150) : 13592.1, + (0, 2, 3, 0, 13, 151) : 2535.4, + (0, 2, 3, 0, 14, 148) : 561.8, + (0, 2, 3, 0, 14, 149) : 2037.4, + (0, 2, 3, 0, 14, 150) : 3168.5, + (0, 2, 3, 0, 14, 151) : 982.9, + (1, 2, 0, 0, 6, 36) : 1028.7, + (1, 2, 0, 0, 6, 37) : 10040.6, + (1, 2, 0, 0, 6, 38) : 1319.7, + (1, 2, 0, 0, 7, 36) : 1187.8, + (1, 2, 0, 0, 7, 37) : 5799.3, + (1, 2, 0, 0, 8, 37) : 1021.9, + (1, 2, 1, 0, 6, 36) : 288.7, + (1, 2, 1, 0, 6, 37) : 1598.3, + (1, 2, 1, 0, 6, 38) : 94.8, + (1, 2, 1, 0, 7, 36) : 330.9, + (1, 2, 1, 0, 7, 37) : 887.8, + (1, 2, 1, 0, 7, 38) : 525.4, + (3, 3, -1, 28, 15, 3) : 4606.0, + (3, 3, -1, 29, 15, 3) : 623.9, + (3, 3, 1, 24, 15, 3) : 1149.3, + (3, 3, 1, 25, 15, 3) : 5667.7, } diff --git a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref index 980c6beba375..287f1ae08c5a 100644 --- a/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref +++ b/Simulation/FastShower/FastCaloSim/share/FastShowerCellBuilderTool_test.ref @@ -1,4 +1,4 @@ -Fri Dec 28 15:03:54 EST 2018 +Thu Jan 3 00:21:53 EST 2019 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 including file "AthenaCommon/Atlas.UnixStandardJob.py" @@ -70,7 +70,7 @@ Py:FastCaloSimFactory::configure: INFO all values: |-PartPropSvc = ServiceHandle('PartPropSvc') |-ParticleParametrizationFileName = '/home/sss/nobackup/atlas/ReleaseData/v20/FastCaloSim/v1/ParticleEnergyParametrization.root' | (default: '') -|-RandomService = ServiceHandle('AtDSFMTGenSvc') +|-RandomService = ServiceHandle('AthRNGSvc') |-RandomStreamName = 'FastCaloSimRnd' |-StoreFastShowerInfo = False |-phi0_em = -1000.0 @@ -86,7 +86,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) - running on karma on Fri Dec 28 15:03:57 2018 + running on karma on Thu Jan 3 00:21:56 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -374,10 +374,7 @@ CaloIdMgrDetDes... INFO Finished CaloIdMgrDetDes... INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv PartPropSvc INFO No table format type specified for "PDGTABLE.MeV". Assuming PDG found 298 particles -AtDSFMTGenSvc INFO Initializing AtDSFMTGenSvc - package version RngComps-00-00-00 - INITIALISING RANDOM NUMBER STREAMS. -AtDSFMTGenSvc INFO will be reseeded for every event -AtDSFMTGenSvc WARNING INITIALISING FastCaloSimRnd stream with DEFAULT seeds 3591 2309736 +AthRNGSvc INFO Creating engine ToolSvc.tool1/FastCaloSimRnd AtlasFieldSvc INFO initialize() ... AtlasFieldSvc INFO maps will be chosen reading COOL folder /GLOBAL/BField/Maps ClassIDSvc INFO getRegistryEntries: read 1128 CLIDRegistry entries for module ALL @@ -555,6 +552,7 @@ TileBadChannels... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; N TileBadChannels... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; TileBadChannels... INFO No drawer trips probabilities found in DB ClassIDSvc INFO getRegistryEntries: read 1104 CLIDRegistry entries for module ALL +AthRNGSvc SUCCESS ToolSvc.tool1/FastCaloSimRnd 3630501711 90 3261692434 1073680638 823030377 1073723668 1868930291 1073677174 911996003 1073290479 3711715511 1072694548 2140068716 1072735951 539460630 1073178241 2282305494 1072708986 1641530683 1073202302 2631242835 1073321911 3961765294 1073467950 2626127931 1073272628 2396189536 1073590622 2374465580 1073564482 3416006862 1072800960 1352814095 1073333945 1932808853 1073111336 2004821113 1072722654 164197198 1072846416 751909680 1073721900 808721476 1073468761 690859097 1073483009 418699027 1073306662 1789296916 1073624469 2971093188 1072984953 2555298921 1072770453 3853840956 1073055738 3487439144 1073639698 1894545311 1072884286 626513571 1073631692 3421835136 1073307636 3985124064 1073729249 2607246495 1073094204 4090506844 1073695039 2410441688 1073487241 1069374412 1073423736 1760407317 1072765560 2827875924 1072827462 4146416168 1073037450 3197924302 1073718189 3551167333 1073676036 4115234429 1073230966 98903944 1073088578 4282482954 1073314928 2143692400 1073136393 3296550475 1072843872 3558803953 1073270281 3103842852 1073235469 1882909869 1073459859 916240561 1073339674 536539632 1073614296 1409495660 1073448151 358001842 1073483642 739667300 1073521338 3746187847 1072960505 2594847495 1073654670 3231825006 1073250176 3554125300 1073441586 889397564 1073010193 3102313462 1073424387 912563430 1073190059 2833054885 1073176909 2869107047 1073201355 4064975915 1073425934 3842344805 1073237417 2249570334 1073294265 933655068 1073661856 2823826967 1072983053 3187935985 1073666738 2012177277 1073511885 3705303978 1073354273 2263991526 1072860629 714897335 1073409664 3791090286 1072885706 3668090129 1072928433 4177473366 1073400077 4103000642 1072762422 1446170605 1072828225 2626904048 1073096349 787048638 1073597594 911588237 1072953144 271870086 1073290978 1047360370 1073346157 1872092527 1072822122 2841293698 1073002754 365773320 1073623173 3533126773 1073023548 1827082166 1073011537 769948162 1072741453 716869697 1073421964 950558058 1073688175 3654654741 1073077866 2148938756 1073636271 4042145415 1073729005 2295127568 1073051710 2538781685 1073500775 1382221002 1073134056 84184398 1072699157 1424487447 1073581512 419336873 1073657082 3569483343 1073003194 4070398286 1073300428 4070981007 1072944187 756286778 1073738055 2998212970 1073014133 462886270 1072731246 3544532359 1073371748 3720216818 1073530166 857383700 1073027294 2603143961 1073033720 3719393042 1073014678 3871031172 1073611172 3167825463 1073413837 3430927282 1073037455 2813514352 1073187562 1890932001 1072709290 3303417437 1073036901 1339564205 1073642312 2538448638 1073008042 1026462913 1073603981 1900392973 1072983365 4219218825 1073730572 729915534 1072743555 1592137825 1073699851 3580755983 1073180566 3646051161 1073621980 1888726728 1072884180 2759076898 1072988631 781657975 1072742798 539597383 1072933770 2862823903 1073461460 137639100 1073419163 1282995020 1073635629 2773321850 1073015233 864373926 1072783317 2945299790 1073564429 942801054 1073065933 469421843 1073736865 1205751158 1072817032 2557468817 1073741663 284681309 1073694428 3705796569 1073080815 2784424690 1073534939 87996075 1073165948 4251187390 1073694412 4133058395 1073171507 4148682519 1072914063 1438363651 1073586842 379154910 1072847866 1590169437 1072855295 3490089895 1073313887 2705421280 1073085513 1607354295 1072886471 2501280363 1073136524 1603739927 1072957178 1195334651 1072864186 3489732441 1073038891 1352657795 1072828769 19676344 1073018085 3103839646 1073314627 959564690 1073526279 1963499755 1073449889 250981548 1073668260 1777143703 1072842316 1134371421 1073057027 3860630533 1072887996 3065684433 1072813724 2169295742 1072773648 3514099379 1072862237 2637450043 1072749923 1458646333 1072947546 3991056209 1073352675 398024247 1073245696 456978228 1073685482 1275860529 1073446874 1104928121 1073349174 2709807511 1073414285 1001292837 1073391486 333779909 1072985692 3296251806 1073229593 4052332837 1073177524 3347382464 1072811729 1993826165 1072826950 2930738656 1072797162 3421648372 1073246843 159529425 1073067140 1822199323 1072821862 947562513 1072788222 2999108474 1073410975 3001267519 1073014979 2200426417 1072697229 3839301019 1073211197 653930178 1072821156 347931826 1073260473 3220160560 1072908029 2060537181 1073148903 1819201266 1072725052 752057633 1073712872 1284664544 1073018908 4061523052 1073715276 1678059209 1073120880 1563127687 1073397828 1073017791 1073448950 2160732782 1072736393 98102556 1073574247 2980862331 1073495372 10947338 1073388566 235712746 1073130536 1428538253 1073444911 1034331703 1073135276 1193514266 1073399517 2047530239 1073256035 1763468142 1073656778 95599117 1072831138 510292077 1073359403 2867275526 1073739478 1688604336 1073128745 1834286853 1073632701 1912869948 1073622452 2874594033 1073549554 2314352708 1073707463 1928987767 1073355679 156479999 1073107923 427377340 1073604020 3759005145 1073008275 2186399455 1073470828 27260339 1073631507 2972862105 1072875544 3306058547 1073674887 4243502 1073068761 4219093378 1072818031 2557302325 1073596249 296768555 1073125110 541062411 1073558141 8361674 1072788178 2747074052 1072706485 833875430 1072882109 2173602389 1072846141 1462039115 1073037234 1842330282 1073192077 1623547146 1072931134 718827894 1072939088 2939061236 1073584483 1164526291 1073138367 3530317869 1073444316 1933624563 1072996789 3306818729 1073206511 3465916374 1073208069 770688873 1073187945 1190230823 1072729827 2978207685 1073260241 1919240575 1072738920 4133661157 1073166622 3541555338 1073639985 3200451429 1073296053 2148722180 1073548242 2744498149 1073643883 1743594613 1073269305 3265447442 1073042739 3018353724 1073682837 1469213866 1073277068 4004154164 1073405891 1275293170 1072905879 4237407126 1073252636 808418950 1073598273 3352491937 1072753050 2120097613 1072889002 579900871 1073040505 3264609359 1073727315 741502134 1073187984 1392942119 1073154740 3769930099 1073043915 3825224772 1072940924 1112532450 1072821755 2547148240 1073167418 1931659309 1073124486 2849541086 1072819160 240941813 1072803712 3038640263 1073301050 963999170 1072908536 1707506099 1073606863 1877868468 1072821515 1065662759 1073287087 1700024633 1072995875 619690025 1073209278 2551852602 1072696157 2222723748 1072906116 1927104135 1073194953 2863380179 1073537077 2292713055 1072735008 2272466554 1073455406 2373215093 1073551764 3324063296 1073422970 2302478549 1073020979 1226262167 1073610915 3810494412 1072757930 3598016388 1072968968 3537807466 1072707226 1704779161 1073671798 3085424591 1073315979 585655719 1073193844 3060235115 1073091386 1863225538 1073616828 2550257447 1073138604 1041018708 1073698931 2550281390 1073091244 684679500 1073225758 1124361632 1072992252 3453512710 1072896846 2217085102 1073364366 2210679916 1072698927 313798325 1073055347 160295651 1073721031 2919317005 1073225837 2914657176 1073576644 3628120085 1073475641 1067340581 1073546013 340517196 1073724752 1127352683 1072769370 1492607570 1073392139 4135266509 1072867941 47699585 1072720565 2696229633 1072920700 4026883948 1073401517 1563530900 1073127246 2450531703 1073047787 3190069830 1073274034 654254270 1072925380 2415086862 1073508836 2610776490 1073236289 2122340525 1073009911 2785746802 1073338598 1350136126 1073311616 3970399521 1072852344 3106047532 1073554151 2582386806 1072695066 981697222 1072785304 3195759033 1073700288 2921106626 1073092172 183150695 1073252808 4099644845 1073456800 1288824535 1072940897 1563673146 1073411168 2496781743 1073338375 2962768285 1073223705 1576579287 1072922059 550057400 1073582928 2862331727 1073242743 2852012108 1072891435 2627580467 1073358635 3211577202 1073355904 3039848443 1073447954 3913185655 1073199284 2600647611 1073686940 827096734 1073585076 1554652000 1073406528 4165811413 1073244527 441484542 1072780555 2536639643 1073409915 2310341371 1073452160 114457467 1073379111 2815515709 1073106406 3442879574 1072805611 2247673049 1072875215 1461815981 1073341895 67919517 1073612505 4179474298 1072753058 2515614785 1073709826 124095440 1072847200 1645148762 1072916829 830435430 1073499794 3629871842 1073005476 2223287807 1073122271 3292803050 1072761672 3826188126 1073616228 3721761610 1073580536 3707133827 1073494701 1950134628 1072919780 1522092269 1073542864 1655081062 1073465610 811524494 1072839924 3516415211 1073710058 4222427839 2995058703 2624364569 3711061605 ToolSvc.tool1 INFO CaloEntrance not found ToolSvc.tool1 INFO CaloEntrance not found ToolSvc.tool1 INFO CaloEntrance not found @@ -577,10 +575,9 @@ testalg1 INFO Finalizing testalg1... IncidentProcAlg2 INFO Finalize AtlasTrackingGe... INFO finalize() successful. AtlasFieldSvc INFO finalize() successful -AtDSFMTGenSvc INFO FINALISING PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /EXT/DCS/MAGNETS/SENSORDATA (AttrListColl) db-read 1/2 objs/chan/bytes 4/4/20 (( 0.07 ))s +IOVDbFolder INFO Folder /EXT/DCS/MAGNETS/SENSORDATA (AttrListColl) db-read 1/2 objs/chan/bytes 4/4/20 (( 0.06 ))s IOVDbFolder INFO Folder /GLOBAL/BField/Maps (AttrListColl) db-read 1/1 objs/chan/bytes 3/3/202 (( 0.06 ))s IOVDbFolder INFO Folder /GLOBAL/TrackingGeo/LayerMaterialV2 (PoolRef) db-read 1/1 objs/chan/bytes 1/1/231 (( 0.00 ))s IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.06 ))s @@ -596,12 +593,12 @@ IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1 IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.00 ))s IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/195 (( 0.00 ))s -IOVDbSvc INFO bytes in (( 0.30 ))s +IOVDbSvc INFO bytes in (( 0.29 ))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.06 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.10 ))s -IOVDbSvc INFO Connection COOLOFL_GLOBAL/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.07 ))s -IOVDbSvc INFO Connection COOLOFL_DCS/OFLP200 : nConnect: 2 nFolders: 1 ReadTime: (( 0.07 ))s +IOVDbSvc INFO Connection COOLOFL_GLOBAL/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.06 ))s +IOVDbSvc INFO Connection COOLOFL_DCS/OFLP200 : nConnect: 2 nFolders: 1 ReadTime: (( 0.06 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -622,9 +619,9 @@ ToolSvc.Trackin... INFO finalize() successful *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 250 [ms] Ave/Min/Max= 83.3(+- 91)/ 0/ 210 [ms] #= 3 -cObj_ALL INFO Time User : Tot= 350 [ms] Ave/Min/Max= 20.6(+- 57.6)/ 0/ 240 [ms] #= 17 -ChronoStatSvc INFO Time User : Tot= 30.5 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 240 [ms] Ave/Min/Max= 80(+- 86.4)/ 0/ 200 [ms] #= 3 +cObj_ALL INFO Time User : Tot= 320 [ms] Ave/Min/Max= 18.8(+- 52.9)/ 0/ 220 [ms] #= 17 +ChronoStatSvc INFO Time User : Tot= 29.4 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx index a6f9d6b9db12..b8e20225b957 100755 --- a/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx +++ b/Simulation/FastShower/FastCaloSim/src/FastShowerCellBuilderTool.cxx @@ -35,6 +35,7 @@ //#include "TruthHelper/IsGenNonInteracting.h" #include "PathResolver/PathResolver.h" +#include "AthenaKernel/RNGWrapper.h" #include "CaloEvent/CaloCellContainer.h" #include "CaloDetDescr/CaloDetDescrManager.h" @@ -115,7 +116,7 @@ FastShowerCellBuilderTool::FastShowerCellBuilderTool(const std::string& type, co , m_DB_dirname(0) , m_coolhistsvc("CoolHistSvc", name) , m_partPropSvc("PartPropSvc", name) - , m_rndmSvc("AtDSFMTGenSvc", name) + , m_rndmSvc("AthRNGSvc", name) , m_extrapolator("") , m_caloSurfaceHelper("") , m_calo_tb_coord("TBCaloCoordinate") @@ -381,7 +382,7 @@ StatusCode FastShowerCellBuilderTool::initialize() ATH_CHECK(m_rndmSvc.retrieve()); //Get own engine with own seeds: - m_randomEngine = m_rndmSvc->GetEngine(m_randomEngineName); + m_randomEngine = m_rndmSvc->getEngine(this, m_randomEngineName); if (!m_randomEngine) { ATH_MSG_ERROR("Could not get random engine '" << m_randomEngineName << "'"); return StatusCode::FAILURE; @@ -1176,7 +1177,7 @@ FastShowerCellBuilderTool::process_particle(CaloCellContainer* theCellContainer, FastShowerInfoContainer* fastShowerInfoContainer, TRandom3& rndm, Stats& stats, - const EventContext& /*ctx*/) const + const EventContext& ctx) const { // no intersections with Calo layers found : abort; if(!hitVector || !hitVector->size()) { @@ -1874,8 +1875,9 @@ FastShowerCellBuilderTool::process_particle(CaloCellContainer* theCellContainer, } */ + CLHEP::HepRandomEngine* engine = m_randomEngine->getEngine (ctx); double rndfactor=-1; - while(rndfactor<=0) rndfactor=CLHEP::RandGaussZiggurat::shoot(m_randomEngine,1.0,smaple_err/sqrt(ecell/1000)); + while(rndfactor<=0) rndfactor=CLHEP::RandGaussZiggurat::shoot(engine,1.0,smaple_err/sqrt(ecell/1000)); ecell*=rndfactor; // if(ecell<0) ecell=0; // log<<" Esmear="<<ecell<<endmsg; @@ -2553,19 +2555,18 @@ StatusCode FastShowerCellBuilderTool::process(CaloCellContainer* theCellContaine return StatusCode::SUCCESS; } -StatusCode FastShowerCellBuilderTool::setupEvent (const EventContext& /*ctx*/, +StatusCode FastShowerCellBuilderTool::setupEvent (const EventContext& ctx, TRandom3& rndm) const { - m_rndmSvc->print(m_randomEngineName); + m_rndmSvc->printEngineState(this,m_randomEngineName); unsigned int rseed=0; + CLHEP::HepRandomEngine* engine = m_randomEngine->getEngine(ctx); while(rseed==0) { - rseed=(unsigned int)( CLHEP::RandFlat::shoot(m_randomEngine) * std::numeric_limits<unsigned int>::max() ); + rseed=(unsigned int)( CLHEP::RandFlat::shoot(engine) * std::numeric_limits<unsigned int>::max() ); } - gRandom->SetSeed(rseed); rndm.SetSeed(rseed); - //if(gRandom) log<<" seed(gRandom="<<gRandom->ClassName()<<")="<<gRandom->GetSeed(); - // log<<" seed(rndm="<<rndm.ClassName()<<")="<<rndm.GetSeed(); + //log<<" seed(rndm="<<rndm.ClassName()<<")="<<rndm.GetSeed(); //log<< endmsg; return StatusCode::SUCCESS; diff --git a/Simulation/FastShower/FastCaloSim/src/ParticleEnergyParametrization.cxx b/Simulation/FastShower/FastCaloSim/src/ParticleEnergyParametrization.cxx index 4d1a30ff11f4..df3f7af3d11c 100755 --- a/Simulation/FastShower/FastCaloSim/src/ParticleEnergyParametrization.cxx +++ b/Simulation/FastShower/FastCaloSim/src/ParticleEnergyParametrization.cxx @@ -242,7 +242,6 @@ C Error return } void ParticleEnergyParametrization::DiceParticle(ParticleEnergyShape& p,TRandom& rand) const { - TRandom& rand2 = *gRandom; if(!m_Ecal_vs_dist) { p.E=0; p.Ecal=0; @@ -250,7 +249,7 @@ void ParticleEnergyParametrization::DiceParticle(ParticleEnergyShape& p,TRandom& p.dist000=0; return; } - GetRandom2 (rand2, *m_Ecal_vs_dist, p.dist_in, p.Ecal); + GetRandom2 (rand, *m_Ecal_vs_dist, p.dist_in, p.Ecal); int distbin=m_Ecal_vs_dist->FindBin(p.dist_in); if(distbin<1) distbin=1; if(distbin>m_Ecal_vs_dist->GetNbinsX()) distbin=m_Ecal_vs_dist->GetNbinsX(); @@ -258,11 +257,11 @@ void ParticleEnergyParametrization::DiceParticle(ParticleEnergyShape& p,TRandom& double xmin= m_Ecal_vs_dist->GetXaxis()->GetBinLowEdge(distbin); double xmax= m_Ecal_vs_dist->GetXaxis()->GetBinUpEdge(distbin); - //p.dist_in = GetRandomInBinRange(rand2, xmin,xmax ,(TH1F*)m_h_layer_d_fine); + //p.dist_in = GetRandomInBinRange(rand, xmin,xmax ,(TH1F*)m_h_layer_d_fine); if(m_h_layer_d_fine) { //cout<<" fine hist ptr="<<m_h_layer_d_fine<<endl; //cout<<" fine hist="<<m_h_layer_d_fine->GetName()<<" : "<<m_h_layer_d_fine->GetTitle()<<endl; - p.dist_in = GetRandomInBinRange(rand2, xmin,xmax ,(TH1*) m_h_layer_d_fine); + p.dist_in = GetRandomInBinRange(rand, xmin,xmax ,(TH1*) m_h_layer_d_fine); } const ParticleEnergyParametrizationInDistbin* shapeindist=DistPara(distbin); @@ -320,7 +319,7 @@ void ParticleEnergyParametrization::DiceParticle(ParticleEnergyShape& p,TRandom& p.fcal_layer[i]=0; TH1* h1=shapeindist->m_ElayerProp[i]; if(h1) { - double f=GetRandom(rand2, *h1)+shapeindist->m_mean(i); + double f=GetRandom(rand, *h1)+shapeindist->m_mean(i); if(f<0) f=0; p.fcal_layer[i]=f; p.fcal_tot+=f; @@ -333,7 +332,7 @@ void ParticleEnergyParametrization::DiceParticle(ParticleEnergyShape& p,TRandom& // p.fcal_layer[i]=0; TH1* h1=shapeindist->m_ElayerProp[i]; if(h1) { - double f=GetRandom(rand2, *h1)+shapeindist->m_mean(i); + double f=GetRandom(rand, *h1)+shapeindist->m_mean(i); if(f<0) f=0; // p.fcal_layer[i]=f; p.fcal_tot_uncor+=f; -- GitLab From f62be3d13b505a042d0bf8ce720c69b66dcacb98 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 18 Jan 2019 16:40:53 +0100 Subject: [PATCH 108/192] TrigCostRootAnalysis: Comply with ATLAS naming conventions. Update some comments containing identifiers that were renamed earlier. --- .../TrigCostRootAnalysis/Root/Config.cxx | 6 ++-- .../Root/CounterRatesChain.cxx | 2 +- .../TrigCostRootAnalysis/Root/MonitorBase.cxx | 4 +-- .../Root/MonitorRates.cxx | 8 ++--- .../Root/MonitorRatesUpgrade.cxx | 30 +++++++++---------- .../Root/MonitorSliceCPU.cxx | 2 +- .../Root/RatesChainItem.cxx | 2 +- .../Root/TrigConfInterface.cxx | 14 ++++----- .../Root/TrigCostData_Calculations.cxx | 6 ++-- .../Root/TrigXMLService.cxx | 6 ++-- 10 files changed, 40 insertions(+), 40 deletions(-) diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/Config.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/Config.cxx index fce9ed7a8bad..647e07654474 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/Config.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/Config.cxx @@ -1057,7 +1057,7 @@ namespace TrigCostRootAnalysis { break; case '1': - // I'm setting the _patternsNoLumiWeight strings + // I'm setting the patternsNoLumiWeight strings patternsNoLumiWeight.push_back(std::string(optarg)); while (optind < argc) { if (std::string(argv[optind]).substr(0, 1) == "-") { //We're back to arguments @@ -1068,7 +1068,7 @@ namespace TrigCostRootAnalysis { break; case '2': - // I'm setting the _patternsNoMuLumiWeight strings + // I'm setting the patternsNoMuLumiWeight strings patternsNoMuLumiWeight.push_back(std::string(optarg)); while (optind < argc) { if (std::string(argv[optind]).substr(0, 1) == "-") { //We're back to arguments @@ -1079,7 +1079,7 @@ namespace TrigCostRootAnalysis { break; case '3': - // I'm setting the _patternsNoBunchLumiWeight strings + // I'm setting the patternsNoBunchLumiWeight strings patternsNoBunchLumiWeight.push_back(std::string(optarg)); while (optind < argc) { if (std::string(argv[optind]).substr(0, 1) == "-") { //We're back to arguments diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/CounterRatesChain.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/CounterRatesChain.cxx index 2b897d9aeb7d..8a52ae7e8b4f 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/CounterRatesChain.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/CounterRatesChain.cxx @@ -105,7 +105,7 @@ namespace TrigCostRootAnalysis { L2->getLumiExtrapolationFactor(m_costData->getLumi(), m_disableEventLumiExtrapolation); //if (getName() == "HLT_cscmon_L1All") Info("DEBUG", "WL1:%f, NL1:%s, 1-L1: %f, HLT:%f, total: %f, lumi%f", // m_lowerRates->getLastWeight(), m_lowerRates->getName().c_str(), 1. - L1Weight, - // L2->getPSWeight(_includeExpress), L2->getPSWeight(_includeExpress) * ( 1. - L1Weight ), + // L2->getPSWeight(includeExpress), L2->getPSWeight(includeExpress) * ( 1. - L1Weight ), // L2->getLumiExtrapolationFactor() ); m_cachedWeight = L2->getPSWeight(includeExpress) * (1. - L1Weight); } else { // A L1Chain diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorBase.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorBase.cxx index 771a7e4de662..13d52df40e8f 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorBase.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorBase.cxx @@ -97,7 +97,7 @@ namespace TrigCostRootAnalysis { } /** - * @ param _pass Set which pass through the input files are we on. + * @ param pass Set which pass through the input files are we on. */ void MonitorBase::setPass(UInt_t pass) { m_pass = pass; @@ -253,7 +253,7 @@ namespace TrigCostRootAnalysis { * @param name reference to the name of counter collection to add (will be created if does not exist) * @param lumiBlockNumber Current LB, used for bookkeeping for this CounterCollection * @param lumiLength Length of current LB, used for bookkeeping for this CounterCollection - * @param _type Conf key specifying the type of this CounterCollection which may be queried later. + * @param type Conf key specifying the type of this CounterCollection which may be queried later. */ void MonitorBase::addToCollectionsToProcess(const std::string& name, UInt_t lumiBlockNumber, Float_t lumiLength, const ConfKey_t type) { diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRates.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRates.cxx index cd3be03cff69..e6fd547bdbf4 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRates.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRates.cxx @@ -405,9 +405,9 @@ namespace TrigCostRootAnalysis { CounterBaseRates* L1Counter = nullptr; if (itCm != counterMap->end()) L1Counter = (CounterBaseRates*) itCm->second; - //bool _hasL1Seed = kTRUE; + //bool hasL1Seed = kTRUE; if (L1Name == Config::config().getStr(kBlankString)) { - //_hasL1Seed = kFALSE; + //hasL1Seed = kFALSE; L1Counter = m_globalRateL1Counter; } @@ -452,7 +452,7 @@ namespace TrigCostRootAnalysis { // Then at the end it subtracts this rate from the global rate. So we need to add *all* chains *but* this one. CounterBaseRates* thisChainsUniqueCounter = 0; - if (Config::config().getInt(kDoUniqueRates) == kTRUE /*&& _hasL1Seed == kTRUE*/) { + if (Config::config().getInt(kDoUniqueRates) == kTRUE /*&& hasL1Seed == kTRUE*/) { for (CounterMapIt_t itA = counterMap->begin(); itA != counterMap->end(); ++itA) { CounterBaseRates* counter = static_cast<CounterBaseRates*>(itA->second); if (counter->getStrDecoration(kDecType) != "UniqueHLT") continue; @@ -617,7 +617,7 @@ namespace TrigCostRootAnalysis { // Debug // std::stringstream ss; - // for (UInt_t _group = 0; _group < chainGroups.size(); ++_group) ss << chainGroups.at(_group) << " "; + // for (UInt_t group = 0; group < chainGroups.size(); ++group) ss << chainGroups.at(group) << " "; // ss << TrigConfInterface::getChainCPSGroup(i); // Info("MonitorRates::createGroupCounters","Chain %s in groups: %s", TrigConfInterface::getChainName(i).c_str(), // ss.str().c_str()); diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRatesUpgrade.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRatesUpgrade.cxx index e624ae4514b3..6d0533b0095c 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRatesUpgrade.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorRatesUpgrade.cxx @@ -262,8 +262,8 @@ namespace TrigCostRootAnalysis { if (t == 15) triggerLogic.addCondition("TE", 1, sE, 0, 0, 49); if (t == 16) triggerLogic.addCondition("HT", 1, sE, 0, 0, 49); - auto _it = m_upgradeChains.insert(ChainInfo(name.str(), 1, triggerLogic, group.str(), "", 1., 1.)); - TriggerLogic* tl = const_cast<TriggerLogic*>(&(_it->m_triggerLogic)); //Why is this const in the first + auto it = m_upgradeChains.insert(ChainInfo(name.str(), 1, triggerLogic, group.str(), "", 1., 1.)); + TriggerLogic* tl = const_cast<TriggerLogic*>(&(it->m_triggerLogic)); //Why is this const in the first // place? RatesChainItem* L1 = new RatesChainItem(name.str(), /*chainLevel=*/ 1, 1.); @@ -276,7 +276,7 @@ namespace TrigCostRootAnalysis { } for (std::multiset<ChainInfo>::iterator it = m_upgradeChains.begin(); it != m_upgradeChains.end(); ++it) { - //for (auto _item : m_upgradeChains) { + //for (auto item : m_upgradeChains) { if (it->m_level == 2) { continue; // not doing HLT yet } @@ -373,18 +373,18 @@ namespace TrigCostRootAnalysis { // for (int jE = 10; jE <= 25; jE += 5) { // for (int TE = 250; TE <= 500; TE += 50) { - // std::string _chainName = "L1_4J" + std::to_string(jE) + "__AND__L1_TE" + std::to_string(TE); - // CounterRatesIntersection* _L1Chain = new CounterRatesIntersection(m_costData, _chainName, ID++, 10, + // std::string chainName = "L1_4J" + std::to_string(jE) + "__AND__L1_TE" + std::to_string(TE); + // CounterRatesIntersection* L1Chain = new CounterRatesIntersection(m_costData, chainName, ID++, 10, // (MonitorBase*)this); // Mint new counter - // _L1Chain->decorate(kDecRatesGroupName, "Intersection" ); - // _L1Chain->decorate(kDecPrescaleStr, "-"); - // _L1Chain->decorate(kDecType, "Intersection"); - // _L1Chain->addL1Item( m_chainItemsL1["L1_4J" + std::to_string(jE)] ); - // _L1Chain->addL1Item( m_chainItemsL1["L1_TE" + std::to_string(TE)] ); + // L1Chain->decorate(kDecRatesGroupName, "Intersection" ); + // L1Chain->decorate(kDecPrescaleStr, "-"); + // L1Chain->decorate(kDecType, "Intersection"); + // L1Chain->addL1Item( m_chainItemsL1["L1_4J" + std::to_string(jE)] ); + // L1Chain->addL1Item( m_chainItemsL1["L1_TE" + std::to_string(TE)] ); // assert( m_chainItemsL1.count("L1_4J" + std::to_string(jE)) + m_chainItemsL1.count("L1_TE" + // std::to_string(TE)) == 2); - // (*counterMap)[_chainName] = static_cast<CounterBase*>(_L1Chain); // Insert into the counterMap - // Info("MonitorRatesUpgrade::createL1Counters","Made a L1 counter for: %s", _L1Chain->getName().c_str() ); + // (*counterMap)[chainName] = static_cast<CounterBase*>(L1Chain); // Insert into the counterMap + // Info("MonitorRatesUpgrade::createL1Counters","Made a L1 counter for: %s", L1Chain->getName().c_str() ); // } // } @@ -724,11 +724,11 @@ namespace TrigCostRootAnalysis { //if ( fabs( m_eventsToMix - round(m_eventsToMix) ) < 0.1) m_eventsToMix = round(m_eventsToMix); - ////static Int_t _debug2 = 0; - // if (++_debug2 < 20) Info("MonitorRatesUpgrade::newEvent", "Mixing %i events (f %f)", (Int_t) + ////static Int_t debug2 = 0; + // if (++debug2 < 20) Info("MonitorRatesUpgrade::newEvent", "Mixing %i events (f %f)", (Int_t) // round(m_eventsToMix), m_eventsToMix); // // Add pileup - // for (Int_t _pu = 0; _pu < (Int_t) round(m_eventsToMix); ++_pu) { // Cast to int rounds down + // for (Int_t pu = 0; pu < (Int_t) round(m_eventsToMix); ++pu) { // Cast to int rounds down // UInt_t pileupLottery = m_R3.Integer( m_pileupDatabase.size() ); // m_thisEventPtr->add( m_pileupDatabase.at( pileupLottery ) ); // } diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorSliceCPU.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorSliceCPU.cxx index bc8bfb74a267..d66c6289d741 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorSliceCPU.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/MonitorSliceCPU.cxx @@ -142,7 +142,7 @@ namespace TrigCostRootAnalysis { /** * Construct new counter of correct derived type, pass back as base type. * This function must be implemented by all derived monitor types. - * @see MonitorBase::addCounter( const std::string &_name, Int_t _ID ) + * @see MonitorBase::addCounter( const std::string &_name, Int_t ID ) * @param name Cost reference to name of counter. * @param ID Reference to ID number of counter. * @returns Base class pointer to new counter object of correct serived type. diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/RatesChainItem.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/RatesChainItem.cxx index f2ba8657c291..e2173479e915 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/RatesChainItem.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/RatesChainItem.cxx @@ -369,7 +369,7 @@ namespace TrigCostRootAnalysis { } /** - * @param _eventTOBs A TOBAccumulator of all TOBs in this event or pseudo-event (simulated high pileup TOB overlay). + * @param eventTOBs A TOBAccumulator of all TOBs in this event or pseudo-event (simulated high pileup TOB overlay). * Note - this function call requires a TriggerLogic pointer to be set, this logic will be used against the set of *TOBs */ diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigConfInterface.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigConfInterface.cxx index d82ed86d6d99..37a2b0197519 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigConfInterface.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigConfInterface.cxx @@ -526,7 +526,7 @@ namespace TrigCostRootAnalysis { if (Config::config().debug()) Info("TrigConfInterface::dump", "Saving trigger configuration to %s", fileName.c_str()); - //std::ofstream _foutHtml( std::string(fileName + ".htm").c_str() ); + //std::ofstream foutHtml( std::string(fileName + ".htm").c_str() ); std::ofstream foutJson(fileName.c_str()); JsonExport* json = new JsonExport(); @@ -541,9 +541,9 @@ namespace TrigCostRootAnalysis { // CHAIN for (UInt_t c = 0; c < getTCT()->GetChainN(); ++c) { Bool_t isL1 = kFALSE; - //std::string _counter = "</b>, Counter:<i>"; + //std::string counter = "</b>, Counter:<i>"; if (getTCT()->GetChainLevel(c) == 1) { - //_counter = "</b>, CTPID:<i>"; + //counter = "</b>, CTPID:<i>"; isL1 = kTRUE; } else if (jsonDoingL1 == kTRUE) { //switch over to HLT @@ -552,16 +552,16 @@ namespace TrigCostRootAnalysis { jsonDoingL1 = kFALSE; } //foutHtml << "<hr>" << std::endl; - //foutHtml << "<li>Trigger Chain: Name:<b>" << getTCT()->GetChainName(c) << _counter << + //foutHtml << "<li>Trigger Chain: Name:<b>" << getTCT()->GetChainName(c) << counter << // getTCT()->GetChainCounter(c) << "</i></li>" << std::endl; std::string chainName = getTCT()->GetChainName(c); json->addNode(foutJson, chainName + " (PS:" + floatToString(getTCT()->GetPrescale(chainName), 2) + ")", "C"); // foutHtml << "<li>Prescale:<i>" << getPrescale( getTCT()->GetChainName(c) ) << "</i></li>" << std::endl; // if (getTCT()->GetChainGroupNameSize(c)) { // foutHtml << "<li>Groups:<i>"; - // for (UInt_t _g = 0; _g < getTCT()->GetChainGroupNameSize(c); ++_g) { - // foutHtml << getTCT()->GetChainGroupName( c, _g ); - // if (_g != getTCT()->GetChainGroupNameSize(c) - 1) foutHtml << ","; + // for (UInt_t g = 0; g < getTCT()->GetChainGroupNameSize(c); ++g) { + // foutHtml << getTCT()->GetChainGroupName( c, g ); + // if (g != getTCT()->GetChainGroupNameSize(c) - 1) foutHtml << ","; // } // foutHtml << "</i></li>" << std::endl; // } diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigCostData_Calculations.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigCostData_Calculations.cxx index 27f170278938..08659abc664b 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigCostData_Calculations.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigCostData_Calculations.cxx @@ -632,13 +632,13 @@ namespace TrigCostRootAnalysis { /** * As algs are already stored under sequences (hence - vector<vector<stuff>>) we cannot go deeper. * But algs can have many ROI. So we use a linking index to connect seq_alg_roi_index() with a location in seq_roi(). - * At this location we find a vector with size getSeqAlgNRoI(_seq, _alg) which contains a list of ROI ID - * These can be accessed in the D3PD by calling getRoIIndexFromId( _roiID ) and then looking at the returned D3PD + * At this location we find a vector with size getSeqAlgNRoI(seq, alg) which contains a list of ROI ID + * These can be accessed in the D3PD by calling getRoIIndexFromId( roiID ) and then looking at the returned D3PD *index location. * * Given this complexity, it is probably better to look at the example below. * - * @see getRoIIndexFromId( _roiID ) + * @see getRoIIndexFromId( roiID ) * @param n Sequence index in D3PD. * @param a Algorithm index in sequence. * @param roi Which ROI to get the ID for - this still needs to be mapped to the location in the D3PD using diff --git a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigXMLService.cxx b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigXMLService.cxx index e62829106226..647e40267420 100644 --- a/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigXMLService.cxx +++ b/Trigger/TrigCost/TrigCostRootAnalysis/Root/TrigXMLService.cxx @@ -83,8 +83,8 @@ namespace TrigCostRootAnalysis { if (mr == Config::config().getInt(kRunNumber)) { Fatal("TrigXMLService::TrigXMLService", "If doing MultiRun, provide the 'primary' run's inputs first, followed by the additional runs whose run numbers were speificed to --multiRun"); - //Bool_t _primaryRunOpenedFirstBeforeMultiRunInputFiles = kFALSE; - //assert(_primaryRunOpenedFirstBeforeMultiRunInputFiles); + //Bool_t primaryRunOpenedFirstBeforeMultiRunInputFiles = kFALSE; + //assert(primaryRunOpenedFirstBeforeMultiRunInputFiles); std::abort(); } parseRunXML(mr, kFALSE); @@ -1259,7 +1259,7 @@ namespace TrigCostRootAnalysis { * Read (if not already imported) the XML rates and bunch groups for this run. * Return the weight for this event and store the event's bunch group setting using the config service. * @param pass Which pass through the file(s), only increment counters on first pass - * @param _bcid Current event BCID + * @param bcid Current event BCID * @return The event weight from the EnhancedBias XML. */ Float_t TrigXMLService::getEventWeight(UInt_t eventNumber, UInt_t lb, UInt_t pass) { -- GitLab From 3f321cae997bc63da47266eb8100284e9c58cece Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Thu, 24 Jan 2019 16:18:54 +0100 Subject: [PATCH 109/192] TrkExStraightLineIntersector: Add a simple unit test. Add a simple unit test for StraightLineIntersector. --- .../CMakeLists.txt | 4 + .../share/StraightLineIntersector_test.ref | 18 ++ .../test/StraightLineIntersector_test.cxx | 210 ++++++++++++++++++ 3 files changed, 232 insertions(+) create mode 100644 Tracking/TrkExtrapolation/TrkExStraightLineIntersector/share/StraightLineIntersector_test.ref create mode 100644 Tracking/TrkExtrapolation/TrkExStraightLineIntersector/test/StraightLineIntersector_test.cxx diff --git a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/CMakeLists.txt b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/CMakeLists.txt index 19840485b2b9..2ccff9b6bfe0 100644 --- a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/CMakeLists.txt +++ b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/CMakeLists.txt @@ -12,6 +12,7 @@ atlas_depends_on_subdirs( PUBLIC Tracking/TrkExtrapolation/TrkExUtils PRIVATE GaudiKernel + AtlasTest/TestTools Tracking/TrkDetDescr/TrkSurfaces Tracking/TrkEvent/TrkParameters ) @@ -28,3 +29,6 @@ atlas_add_component( TrkExStraightLineIntersector # Install files from the package: atlas_install_headers( TrkExStraightLineIntersector ) +atlas_add_test( StraightLineIntersector_test + SOURCES test/StraightLineIntersector_test.cxx + LINK_LIBRARIES TrkExUtils TestTools GaudiKernel ) diff --git a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/share/StraightLineIntersector_test.ref b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/share/StraightLineIntersector_test.ref new file mode 100644 index 000000000000..f178777ac4fc --- /dev/null +++ b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/share/StraightLineIntersector_test.ref @@ -0,0 +1,18 @@ +StraightLineIntersector_test +ApplicationMgr SUCCESS +==================================================================================================================================== + Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) + running on karma on Tue Jan 22 09:34:25 2019 +==================================================================================================================================== +ApplicationMgr INFO Application Manager Configured successfully +EventLoopMgr WARNING Unable to locate service "EventSelector" +EventLoopMgr WARNING No events will be processed from external input. +HistogramPersis...WARNING Histograms saving not required. +ApplicationMgr INFO Application Manager Initialized successfully +ApplicationMgr Ready +ToolSvc.Trk::St... INFO StraightLineIntersector::initialize() - package version TrkExStraightLineIntersector-00-00-00 +test_plane +test_line +test_cylinder +test_disc +test_perigee diff --git a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/test/StraightLineIntersector_test.cxx b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/test/StraightLineIntersector_test.cxx new file mode 100644 index 000000000000..cd1b87138450 --- /dev/null +++ b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/test/StraightLineIntersector_test.cxx @@ -0,0 +1,210 @@ +/* + * Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + */ +/** + * @file TrkExStraightLineIntersector/test/StraghtLineIntersector_test.cxx + * @author scott snyder <snyder@bnl.gov> + * @date Jan, 2019 + * @brief Regression tests for StraightLineIntersector + */ + +#undef NDEBUG +#include "TrkExInterfaces/IIntersector.h" +#include "TestTools/initGaudi.h" +#include "TestTools/FLOATassert.h" +#include "GaudiKernel/ToolHandle.h" +#include <iostream> +#include <cassert> +#include <cmath> + + +void assertVec3D (const Amg::Vector3D& a, const Amg::Vector3D& b) +{ + FLOAT_EQassert (a.x(), b.x()); + FLOAT_EQassert (a.y(), b.y()); + FLOAT_EQassert (a.z(), b.z()); +} + + +Amg::Vector3D unit (double x, double y, double z) +{ + return Amg::Vector3D (x, y, z).unit(); +} + + +std::unique_ptr<Amg::Transform3D> transf (const Amg::Vector3D& pos, + const Amg::Vector3D& norm) +{ + Trk::CurvilinearUVT c (norm); + Amg::RotationMatrix3D curvilinearRotation; + curvilinearRotation.col(0) = c.curvU(); + curvilinearRotation.col(1) = c.curvV(); + curvilinearRotation.col(2) = c.curvT(); + auto transf = std::make_unique<Amg::Transform3D>(); + *transf = curvilinearRotation; + transf->pretranslate(pos); + return transf; +} + + +void test_plane (Trk::IIntersector& tool) +{ + std::cout << "test_plane\n"; + Amg::Vector3D pos1 { 0, 0, 100 }; + Amg::Vector3D norm1 { 0, 1, 1 }; + Trk::PlaneSurface plane1 (transf (pos1, norm1)); + Amg::Vector3D pos2 { 0, 0, 200 }; + Trk::PlaneSurface plane2 (transf (pos2, norm1)); + + Trk::TrackSurfaceIntersection isect0 + (Amg::Vector3D{0,0,0}, unit(1,1,1), 0); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1 + (tool.intersectSurface (plane1, &isect0, 1)); + assertVec3D (isect1->position(), {50, 50, 50}); + assertVec3D (isect1->direction(), {1/sqrt(3.), 1/sqrt(3.), 1/sqrt(3.)}); + FLOAT_EQassert (isect1->pathlength(), 50*sqrt(3.)); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1a + (tool.intersectSurface (plane2, isect1.get(), 1)); + assertVec3D (isect1a->position(), {100, 100, 100}); + assertVec3D (isect1a->direction(), {1/sqrt(3.), 1/sqrt(3.), 1/sqrt(3.)}); + FLOAT_EQassert (isect1a->pathlength(), 100*sqrt(3.)); + + Trk::TrackSurfaceIntersection isect2 + (Amg::Vector3D{0,0,0}, unit(0,0,-1), 0); + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect3 + (tool.intersectSurface (plane1, &isect2, 1)); + assertVec3D (isect3->position(), {0, 0, 100}); + assertVec3D (isect3->direction(), {0, 0, -1}); + FLOAT_EQassert (isect3->pathlength(), -100); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect3a + (tool.intersectSurface (plane2, isect3.get(), 1)); + assertVec3D (isect3a->position(), {0, 0, 200}); + assertVec3D (isect3a->direction(), {0, 0, -1}); + FLOAT_EQassert (isect3a->pathlength(), -200); +} + + +void test_line (Trk::IIntersector& tool) +{ + std::cout << "test_line\n"; + Amg::Vector3D pos1 { 0, 0, 100 }; + Amg::Vector3D norm1 { 0, 1, 0 }; + Trk::StraightLineSurface line1 (transf (pos1, norm1)); + Amg::Vector3D pos2 { 0, 0, 200 }; + Trk::StraightLineSurface line2 (transf (pos2, norm1)); + + Trk::TrackSurfaceIntersection isect0 + (Amg::Vector3D{0,0,0}, unit(1,0,1), 0); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1 + (tool.intersectSurface (line1, &isect0, 1)); + assertVec3D (isect1->position(), {50, 0, 50}); + assertVec3D (isect1->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect1->pathlength(), 50*sqrt(2.)); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect2 + (tool.intersectSurface (line2, isect1.get(), 1)); + assertVec3D (isect2->position(), {100, 0, 100}); + assertVec3D (isect2->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect2->pathlength(), 100*sqrt(2.)); +} + + +void test_cylinder (Trk::IIntersector& tool) +{ + std::cout << "test_cylinder\n"; + + Amg::Vector3D pos1 { 0, 0, 0 }; + Amg::Vector3D norm1 { 0, 0, 1 }; + Trk::CylinderSurface cyl1 (transf (pos1, norm1).release(), 50, 100); + Trk::CylinderSurface cyl2 (transf (pos1, norm1).release(), 200, 100); + + Trk::TrackSurfaceIntersection isect0 + (Amg::Vector3D{0,0,0}, unit(1,0,1), 0); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1 + (tool.intersectSurface (cyl1, &isect0, 1)); + assertVec3D (isect1->position(), {50, 0, 50}); + assertVec3D (isect1->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect1->pathlength(), 50*sqrt(2.)); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect2 + (tool.intersectSurface (cyl2, isect1.get(), 1)); + assertVec3D (isect2->position(), {200, 0, 200}); + assertVec3D (isect2->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect2->pathlength(), 200*sqrt(2.)); +} + + +void test_disc (Trk::IIntersector& tool) +{ + std::cout << "test_disc\n"; + + Amg::Vector3D pos1 { 0, 0, 75 }; + Amg::Vector3D norm1 { 0, 0, 1 }; + Trk::DiscSurface disc1 (transf (pos1, norm1)); + Amg::Vector3D pos2 { 0, 0, 200 }; + Trk::DiscSurface disc2 (transf (pos2, norm1)); + + Trk::TrackSurfaceIntersection isect0 + (Amg::Vector3D{0,0,0}, unit(1,0,1), 0); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1 + (tool.intersectSurface (disc1, &isect0, 1)); + assertVec3D (isect1->position(), {75, 0, 75}); + assertVec3D (isect1->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect1->pathlength(), 75*sqrt(2.)); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect2 + (tool.intersectSurface (disc2, isect1.get(), 1)); + assertVec3D (isect2->position(), {200, 0, 200}); + assertVec3D (isect2->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect2->pathlength(), 200*sqrt(2.)); +} + + +void test_perigee (Trk::IIntersector& tool) +{ + std::cout << "test_perigee\n"; + + Amg::Vector3D pos1 { 0, 0, 80 }; + Amg::Vector3D norm1 { 0, 1, 0 }; + Trk::PerigeeSurface perigee1 (transf (pos1, norm1)); + Amg::Vector3D pos2 { 0, 0, 200 }; + Trk::PerigeeSurface perigee2 (transf (pos2, norm1)); + + Trk::TrackSurfaceIntersection isect0 + (Amg::Vector3D{0,0,0}, unit(1,0,1), 0); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect1 + (tool.intersectSurface (perigee1, &isect0, 1)); + assertVec3D (isect1->position(), {40, 0, 40}); + assertVec3D (isect1->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect1->pathlength(), 40*sqrt(2.)); + + std::unique_ptr<const Trk::TrackSurfaceIntersection> isect2 + (tool.intersectSurface (perigee2, isect1.get(), 1)); + assertVec3D (isect2->position(), {100, 0, 100}); + assertVec3D (isect2->direction(), {1/sqrt(2.), 0, 1/sqrt(2.)}); + FLOAT_EQassert (isect2->pathlength(), 100*sqrt(2.)); +} + + +int main() +{ + std::cout << "StraightLineIntersector_test\n"; + ISvcLocator* svcloc = nullptr; + Athena_test::initGaudi (svcloc); + ToolHandle<Trk::IIntersector> tool ("Trk::StraightLineIntersector"); + assert( tool.retrieve().isSuccess() ); + + test_plane (*tool); + test_line (*tool); + test_cylinder (*tool); + test_disc (*tool); + test_perigee (*tool); + return 0; +} -- GitLab From 0eeb94bc3e3e96035af9efa4a39cab11ad117da9 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 25 Jan 2019 00:51:34 +0100 Subject: [PATCH 110/192] DiTauRec: Migrate to using VarHandles. Use Read/Write handles instead of direct SG access. Also general cleanup. Make tool methods const and the algorithm reentrant. --- Reconstruction/DiTauRec/DiTauRec/CellFinder.h | 11 ++- .../DiTauRec/DiTauRec/DiTauBuilder.h | 25 ++++--- .../DiTauRec/DiTauRec/DiTauToolBase.h | 12 +-- .../DiTauRec/DiTauRec/DiTauTrackFinder.h | 18 ++--- Reconstruction/DiTauRec/DiTauRec/ElMuFinder.h | 21 +++--- .../DiTauRec/DiTauRec/IDVarCalculator.h | 12 ++- .../DiTauRec/DiTauRec/SeedJetBuilder.h | 18 +++-- .../DiTauRec/DiTauRec/SubjetBuilder.h | 13 ++-- .../DiTauRec/DiTauRec/VertexFinder.h | 26 ++++--- .../DiTauRec/python/DiTauBuilder.py | 3 +- Reconstruction/DiTauRec/src/CellFinder.cxx | 14 +--- Reconstruction/DiTauRec/src/DiTauBuilder.cxx | 74 ++++++------------- Reconstruction/DiTauRec/src/DiTauToolBase.cxx | 15 +--- .../DiTauRec/src/DiTauTrackFinder.cxx | 54 ++++---------- Reconstruction/DiTauRec/src/ElMuFinder.cxx | 44 +++-------- .../DiTauRec/src/IDvarCalculator.cxx | 19 ++--- .../DiTauRec/src/SeedJetBuilder.cxx | 28 +++---- Reconstruction/DiTauRec/src/SubjetBuilder.cxx | 14 +--- Reconstruction/DiTauRec/src/VertexFinder.cxx | 63 ++++++---------- 19 files changed, 180 insertions(+), 304 deletions(-) diff --git a/Reconstruction/DiTauRec/DiTauRec/CellFinder.h b/Reconstruction/DiTauRec/DiTauRec/CellFinder.h index 31b0c43cc689..c6cf526005ac 100644 --- a/Reconstruction/DiTauRec/DiTauRec/CellFinder.h +++ b/Reconstruction/DiTauRec/DiTauRec/CellFinder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_CELLFINDER_H @@ -25,14 +25,13 @@ public: //------------------------------------------------------------- virtual ~CellFinder(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - virtual void cleanup(DiTauCandidateData *) { } + virtual void cleanup(DiTauCandidateData *) override { } private: diff --git a/Reconstruction/DiTauRec/DiTauRec/DiTauBuilder.h b/Reconstruction/DiTauRec/DiTauRec/DiTauBuilder.h index b251aa67a666..f0081719297d 100644 --- a/Reconstruction/DiTauRec/DiTauRec/DiTauBuilder.h +++ b/Reconstruction/DiTauRec/DiTauRec/DiTauBuilder.h @@ -1,30 +1,37 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_DITAUBUILDER_H #define DITAUREC_DITAUBUILDER_H 1 -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "AthenaBaseComps/AthAlgTool.h" +#include "StoreGate/WriteHandleKey.h" +#include "StoreGate/ReadHandleKey.h" +#include "xAODTau/DiTauJetContainer.h" +#include "xAODJet/JetContainer.h" #include "DiTauToolBase.h" #include "GaudiKernel/ToolHandle.h" -class DiTauBuilder: public ::AthAlgorithm { +class DiTauBuilder: public ::AthReentrantAlgorithm { public: DiTauBuilder( const std::string& name, ISvcLocator* pSvcLocator ); virtual ~DiTauBuilder(); - virtual StatusCode initialize(); - virtual StatusCode execute(); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute(const EventContext&) const override; + virtual StatusCode finalize() override; private: - std::string m_diTauContainerName; // ditau output container name - std::string m_diTauAuxContainerName; // ditau output aux container name - std::string m_seedJetName; // name for seed jet collection name + // ditau output container name + SG::WriteHandleKey<xAOD::DiTauJetContainer> m_diTauContainerName + { this, "DiTauContainer", "DiTauJets", "" }; + // name for seed jet collection name + SG::ReadHandleKey<xAOD::JetContainer> m_seedJetName + { this, "SeedJetName", "AntiKt10LCTopoJets", "" }; float m_minPt; // minimal jet seed pt float m_maxEta; // maximal jet seed eta float m_Rjet; // jet radius diff --git a/Reconstruction/DiTauRec/DiTauRec/DiTauToolBase.h b/Reconstruction/DiTauRec/DiTauRec/DiTauToolBase.h index cc88c1f76302..f437d9d683d4 100644 --- a/Reconstruction/DiTauRec/DiTauRec/DiTauToolBase.h +++ b/Reconstruction/DiTauRec/DiTauRec/DiTauToolBase.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TOOLBASE_DITAU_H @@ -42,18 +42,14 @@ //----------------------------------------------------------------- //! Execute - called for each Ditau candidate //----------------------------------------------------------------- - virtual StatusCode execute( DiTauCandidateData *data ); + virtual StatusCode execute( DiTauCandidateData *data, + const EventContext& ctx) const; //----------------------------------------------------------------- //! Cleanup - called for each Ditau rejected candidate //----------------------------------------------------------------- virtual void cleanup( DiTauCandidateData *data ); - //----------------------------------------------------------------- - //! Event finalizer - called at the end of each event - //----------------------------------------------------------------- - virtual StatusCode eventFinalize( DiTauCandidateData *data ); - //----------------------------------------------------------------- //! Finalizer //----------------------------------------------------------------- @@ -70,4 +66,4 @@ }; - #endif // TOOLBASE_DITAU_H \ No newline at end of file + #endif // TOOLBASE_DITAU_H diff --git a/Reconstruction/DiTauRec/DiTauRec/DiTauTrackFinder.h b/Reconstruction/DiTauRec/DiTauRec/DiTauTrackFinder.h index 4c6f7043f473..5d1dc38ee558 100644 --- a/Reconstruction/DiTauRec/DiTauRec/DiTauTrackFinder.h +++ b/Reconstruction/DiTauRec/DiTauRec/DiTauTrackFinder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_TRACKFINDER_H @@ -8,6 +8,7 @@ #include "DiTauToolBase.h" #include "GaudiKernel/ToolHandle.h" +#include "StoreGate/ReadHandleKey.h" #include "xAODTracking/Vertex.h" #include "xAODTracking/TrackParticle.h" @@ -31,12 +32,10 @@ public: //------------------------------------------------------------- virtual ~DiTauTrackFinder(); - virtual StatusCode initialize(); - - virtual StatusCode execute(DiTauCandidateData * data); - - virtual StatusCode eventFinalize(DiTauCandidateData *data); + virtual StatusCode initialize() override; + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; virtual void cleanup(DiTauCandidateData *) { } @@ -55,11 +54,11 @@ public: const xAOD::Vertex*, std::vector<const xAOD::TrackParticle*>&, std::vector<const xAOD::TrackParticle*>&, - std::vector<const xAOD::TrackParticle*>& ); + std::vector<const xAOD::TrackParticle*>& ) const; DiTauTrackType diTauTrackType( const DiTauCandidateData*, const xAOD::TrackParticle*, - const xAOD::Vertex* ); + const xAOD::Vertex* ) const; @@ -67,7 +66,8 @@ public: private: float m_MaxDrJet; float m_MaxDrSubjet; - std::string m_TrackParticleContainerName; + SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrackParticleContainerName + { this, "TrackParticleContainer", "InDetTrackParticles", "" }; ToolHandle<Trk::ITrackSelectorTool> m_TrackSelectorTool; // ToolHandle< Trk::IParticleCaloExtensionTool > m_ParticleCaloExtensionTool; diff --git a/Reconstruction/DiTauRec/DiTauRec/ElMuFinder.h b/Reconstruction/DiTauRec/DiTauRec/ElMuFinder.h index b391a8ffba23..e114f613a3cc 100644 --- a/Reconstruction/DiTauRec/DiTauRec/ElMuFinder.h +++ b/Reconstruction/DiTauRec/DiTauRec/ElMuFinder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_ELMUFINDER_H @@ -7,11 +7,14 @@ #include "DiTauToolBase.h" +#include "StoreGate/ReadHandle.h" #include "GaudiKernel/ToolHandle.h" // #include "MuonSelectorTools/IMuonSelectionTool.h" // #include "MuonSelectorTools/errorcheck.h" #include "MuonSelectorTools/MuonSelectionTool.h" +#include "xAODEgamma/ElectronContainer.h" +#include "xAODMuon/MuonContainer.h" class ElMuFinder : public DiTauToolBase { public: @@ -28,21 +31,21 @@ public: //------------------------------------------------------------- virtual ~ElMuFinder(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - - virtual void cleanup(DiTauCandidateData *) { } + virtual void cleanup(DiTauCandidateData *) override { } private: - std::string m_elContName; + SG::ReadHandleKey<xAOD::ElectronContainer> m_elContName + { this, "ElectronContainer", "Electrons", "" }; float m_elMinPt; float m_elMaxEta; - std::string m_muContName; + SG::ReadHandleKey<xAOD::MuonContainer> m_muContName + { this, "MuonContainer", "Muons", "" }; float m_muMinPt; float m_muMaxEta; int m_muQual; diff --git a/Reconstruction/DiTauRec/DiTauRec/IDVarCalculator.h b/Reconstruction/DiTauRec/DiTauRec/IDVarCalculator.h index 16511d91eaf6..2fa83a432a75 100644 --- a/Reconstruction/DiTauRec/DiTauRec/IDVarCalculator.h +++ b/Reconstruction/DiTauRec/DiTauRec/IDVarCalculator.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_IDVARCALCULATOR_H @@ -25,14 +25,12 @@ public: //------------------------------------------------------------- virtual ~IDVarCalculator(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - - virtual void cleanup(DiTauCandidateData *) { } + virtual void cleanup(DiTauCandidateData *) override { } private: diff --git a/Reconstruction/DiTauRec/DiTauRec/SeedJetBuilder.h b/Reconstruction/DiTauRec/DiTauRec/SeedJetBuilder.h index 96cd09974b9d..63ecf9116a72 100644 --- a/Reconstruction/DiTauRec/DiTauRec/SeedJetBuilder.h +++ b/Reconstruction/DiTauRec/DiTauRec/SeedJetBuilder.h @@ -1,11 +1,13 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_SEEDJETBUILDER_H #define DITAUREC_SEEDJETBUILDER_H #include "DiTauToolBase.h" +#include "xAODJet/JetContainer.h" +#include "StoreGate/ReadHandle.h" class SeedJetBuilder : public DiTauToolBase { @@ -23,16 +25,16 @@ public: //------------------------------------------------------------- virtual ~SeedJetBuilder(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - virtual void cleanup(DiTauCandidateData *) { } + virtual void cleanup(DiTauCandidateData *) override { } private: - std::string m_jetContainerName; + SG::ReadHandleKey<xAOD::JetContainer> m_jetContainerName + { this, "JetCollection", "AntiKt10LCTopoJets", "" }; }; -#endif /* SEEDJETBUILDER_H */ \ No newline at end of file +#endif /* SEEDJETBUILDER_H */ diff --git a/Reconstruction/DiTauRec/DiTauRec/SubjetBuilder.h b/Reconstruction/DiTauRec/DiTauRec/SubjetBuilder.h index 9fa6c26aacb5..57dc5a27419e 100644 --- a/Reconstruction/DiTauRec/DiTauRec/SubjetBuilder.h +++ b/Reconstruction/DiTauRec/DiTauRec/SubjetBuilder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_SUBJETBUILDER_H @@ -24,13 +24,12 @@ public: //------------------------------------------------------------- virtual ~SubjetBuilder(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - virtual void cleanup(DiTauCandidateData *) { } + virtual void cleanup(DiTauCandidateData *) override { } private: @@ -43,4 +42,4 @@ private: }; -#endif /* SUBJETBUILDER_H */ \ No newline at end of file +#endif /* SUBJETBUILDER_H */ diff --git a/Reconstruction/DiTauRec/DiTauRec/VertexFinder.h b/Reconstruction/DiTauRec/DiTauRec/VertexFinder.h index 8bf4b0b22c2c..e43b0a0155ca 100644 --- a/Reconstruction/DiTauRec/DiTauRec/VertexFinder.h +++ b/Reconstruction/DiTauRec/DiTauRec/VertexFinder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef DITAUREC_VERTEXFINDER_H @@ -7,6 +7,8 @@ #include "DiTauToolBase.h" #include "JetEDM/TrackVertexAssociation.h" +#include "xAODTracking/VertexContainer.h" +#include "StoreGate/ReadHandleKey.h" class VertexFinder : public DiTauToolBase { public: @@ -23,13 +25,14 @@ public: //------------------------------------------------------------- virtual ~VertexFinder(); - virtual StatusCode initialize(); + virtual StatusCode initialize() override; - virtual StatusCode execute(DiTauCandidateData * data); + virtual StatusCode execute(DiTauCandidateData * data, + const EventContext& ctx) const override; - virtual StatusCode eventFinalize(DiTauCandidateData *data); - - ElementLink<xAOD::VertexContainer> getPV_TJVA(const xAOD::DiTauJet*, const xAOD::VertexContainer*); + ElementLink<xAOD::VertexContainer> getPV_TJVA(const xAOD::DiTauJet*, const xAOD::VertexContainer*, + float& maxJVF, + const EventContext& ctx) const; float getJetVertexFraction(const xAOD::Vertex*, const std::vector<const xAOD::TrackParticle*>&, const jet::TrackVertexAssociation*) const; @@ -37,12 +40,11 @@ public: private: - std::string m_primVtxContainerName; - std::string m_assocTracksName; - std::string m_trackVertexAssocName; - float m_maxJVF; - - + SG::ReadHandleKey<xAOD::VertexContainer> m_primVtxContainerName + { this, "PrimVtxContainerName", "PrimaryVertices", "" }; + std::string m_assocTracksName; + SG::ReadHandleKey<jet::TrackVertexAssociation> m_trackVertexAssocName + { this, "TrackVertexAssociation", "JetTrackVtxAssoc_forDiTaus", "" }; }; #endif /* VERTEXFINDER_H */ diff --git a/Reconstruction/DiTauRec/python/DiTauBuilder.py b/Reconstruction/DiTauRec/python/DiTauBuilder.py index eba03f923b39..0b3a307eca41 100644 --- a/Reconstruction/DiTauRec/python/DiTauBuilder.py +++ b/Reconstruction/DiTauRec/python/DiTauBuilder.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration import os @@ -74,7 +74,6 @@ class DiTauBuilder(Configured): DiTauBuilder = DiTauBuilder( name=self.name, DiTauContainer=_outputKey, - DiTauAuxContainer=_outputAuxKey, Tools=tools, SeedJetName=_jet_container, minPt=diTauFlags.diTauRecJetSeedPt(), diff --git a/Reconstruction/DiTauRec/src/CellFinder.cxx b/Reconstruction/DiTauRec/src/CellFinder.cxx index 912d0e94cd44..67618f55b2cb 100644 --- a/Reconstruction/DiTauRec/src/CellFinder.cxx +++ b/Reconstruction/DiTauRec/src/CellFinder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -56,20 +56,12 @@ StatusCode CellFinder::initialize() { return StatusCode::SUCCESS; } -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode CellFinder::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; -} - //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode CellFinder::execute(DiTauCandidateData * data) { +StatusCode CellFinder::execute(DiTauCandidateData * data, + const EventContext& /*ctx*/) const { ATH_MSG_DEBUG("execute CellFinder..."); diff --git a/Reconstruction/DiTauRec/src/DiTauBuilder.cxx b/Reconstruction/DiTauRec/src/DiTauBuilder.cxx index 7a0918ec5f3f..92ee2a0918e6 100644 --- a/Reconstruction/DiTauRec/src/DiTauBuilder.cxx +++ b/Reconstruction/DiTauRec/src/DiTauBuilder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "DiTauRec/DiTauBuilder.h" @@ -14,13 +14,12 @@ #include "xAODTau/DiTauJet.h" #include "xAODTau/DiTauJetContainer.h" #include "xAODTau/DiTauJetAuxContainer.h" +#include "StoreGate/WriteHandle.h" +#include "StoreGate/ReadHandle.h" DiTauBuilder::DiTauBuilder( const std::string& name, ISvcLocator* pSvcLocator ) : - AthAlgorithm( name, pSvcLocator ), - m_diTauContainerName("DiTauJets"), - m_diTauAuxContainerName("DiTauAuxJets."), - m_seedJetName("AntiKt10LCTopoJets"), + AthReentrantAlgorithm( name, pSvcLocator ), m_minPt(10000), m_maxEta(2.5), m_Rjet(1.0), @@ -28,9 +27,6 @@ DiTauBuilder::DiTauBuilder( const std::string& name, ISvcLocator* pSvcLocator ) m_Rcore(0.1), m_tools(this) { - declareProperty("DiTauContainer", m_diTauContainerName); - declareProperty("DiTauAuxContainer", m_diTauAuxContainerName); - declareProperty("SeedJetName", m_seedJetName); declareProperty("minPt", m_minPt); declareProperty("maxEta", m_maxEta); declareProperty("Rjet", m_Rjet); @@ -48,7 +44,6 @@ StatusCode DiTauBuilder::initialize() { ATH_MSG_INFO ("Initializing " << name() << "..."); // no tools allocated - StatusCode sc; if (m_tools.size() == 0) { ATH_MSG_ERROR("no tools given!"); return StatusCode::FAILURE; @@ -63,8 +58,7 @@ StatusCode DiTauBuilder::initialize() { unsigned int tool_count = 0; for (; itT != itTE; ++itT) { - sc = itT->retrieve(); - if (sc.isFailure()) { + if (itT->retrieve().isFailure()) { ATH_MSG_WARNING("Cannot find tool named <" << *itT << ">"); } else { ++tool_count; @@ -79,6 +73,8 @@ StatusCode DiTauBuilder::initialize() { return StatusCode::FAILURE; } + ATH_CHECK( m_diTauContainerName.initialize() ); + ATH_CHECK( m_seedJetName.initialize() ); return StatusCode::SUCCESS; } @@ -91,42 +87,22 @@ StatusCode DiTauBuilder::finalize() { } -StatusCode DiTauBuilder::execute() { +StatusCode DiTauBuilder::execute(const EventContext& ctx) const { ATH_MSG_DEBUG ("Executing " << name() << "..."); - StatusCode sc; - // ---------------------------------------------------------------------------- // preparing DiTau Candidate Container and storage in DiTauData // ---------------------------------------------------------------------------- DiTauCandidateData rDiTauData; - xAOD::DiTauJetContainer* pContainer = 0; - xAOD::DiTauJetAuxContainer * pAuxContainer = 0; - - pContainer = new xAOD::DiTauJetContainer(); - sc = evtStore()->record(pContainer, m_diTauContainerName); - if (sc.isFailure()) { - ATH_MSG_ERROR("could not record DiTauContainer"); - delete pContainer; - return StatusCode::FAILURE; - } - - pAuxContainer = new xAOD::DiTauJetAuxContainer(); - sc = evtStore()->record(pAuxContainer, m_diTauAuxContainerName); - if (sc.isFailure()) { - ATH_MSG_ERROR("could not record DiTauAuxContainer"); - delete pAuxContainer; - return StatusCode::FAILURE; - } - - pContainer->setStore(pAuxContainer); - + auto pContainer = std::make_unique<xAOD::DiTauJetContainer>(); + auto pAuxContainer = std::make_unique<xAOD::DiTauJetAuxContainer>(); + pContainer->setStore(pAuxContainer.get()); // set properties of DiTau Candidate rDiTauData.xAODDiTau = 0; - rDiTauData.xAODDiTauContainer = pContainer; // - rDiTauData.diTauAuxContainer = pAuxContainer; // + rDiTauData.xAODDiTauContainer = pContainer.get(); // + rDiTauData.diTauAuxContainer = pAuxContainer.get(); // rDiTauData.seed = 0; rDiTauData.seedContainer = 0; @@ -134,18 +110,18 @@ StatusCode DiTauBuilder::execute() { rDiTauData.Rsubjet = m_Rsubjet; rDiTauData.Rcore = m_Rcore; + SG::WriteHandle<xAOD::DiTauJetContainer> diTauContainerH + (m_diTauContainerName, ctx); + ATH_CHECK( diTauContainerH.record (std::move (pContainer), + std::move (pAuxContainer)) ); + // ---------------------------------------------------------------------------- // retrieve di-tau seed jets and loop over seeds // ---------------------------------------------------------------------------- - const xAOD::JetContainer* pSeedContainer; - sc = evtStore()->retrieve(pSeedContainer, m_seedJetName); - if (sc.isFailure() || !pSeedContainer) { - ATH_MSG_FATAL("could not find seed jets with key:" << m_seedJetName); - return StatusCode::FAILURE; - } + SG::ReadHandle<xAOD::JetContainer> pSeedContainer (m_seedJetName, ctx); - rDiTauData.seedContainer = pSeedContainer; + rDiTauData.seedContainer = pSeedContainer.get(); for (const auto* seed: *pSeedContainer) { ATH_MSG_DEBUG("Seed pt: "<< seed->pt() << " eta: "<< seed->eta()); @@ -162,9 +138,9 @@ StatusCode DiTauBuilder::execute() { rDiTauData.xAODDiTauContainer->push_back(rDiTauData.xAODDiTau); // handle di-tau candidate + StatusCode sc = StatusCode::SUCCESS; for (auto tool: m_tools) { - sc = tool->execute(&rDiTauData); - + sc = tool->execute(&rDiTauData, ctx); if (sc.isFailure()) break; } @@ -180,13 +156,7 @@ StatusCode DiTauBuilder::execute() { // // TODO: tool finalizers needed here // sc = StatusCode::SUCCESS; - ATH_MSG_DEBUG("execute tool finializers"); rDiTauData.xAODDiTau = 0; - for (auto tool: m_tools) { - sc = tool->eventFinalize(&rDiTauData); - if (!sc.isSuccess()) - return StatusCode::FAILURE; - } ATH_MSG_DEBUG("end execute()"); return StatusCode::SUCCESS; diff --git a/Reconstruction/DiTauRec/src/DiTauToolBase.cxx b/Reconstruction/DiTauRec/src/DiTauToolBase.cxx index 93c929d7e141..c88521637e4a 100644 --- a/Reconstruction/DiTauRec/src/DiTauToolBase.cxx +++ b/Reconstruction/DiTauRec/src/DiTauToolBase.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ //----------------------------------------------------------------------------- @@ -57,7 +57,8 @@ //------------------------------------------------------------------------- // Execute //------------------------------------------------------------------------- - StatusCode DiTauToolBase :: execute( DiTauCandidateData * ) + StatusCode DiTauToolBase :: execute( DiTauCandidateData *, + const EventContext& /*ctx*/) const { return StatusCode :: SUCCESS; } @@ -69,14 +70,6 @@ { } - //------------------------------------------------------------------------- - // Finalizer - //------------------------------------------------------------------------- - StatusCode DiTauToolBase :: eventFinalize( DiTauCandidateData * ) - { - return StatusCode :: SUCCESS; - } - //------------------------------------------------------------------------- // Finalizer //------------------------------------------------------------------------- @@ -107,4 +100,4 @@ ATH_MSG_VERBOSE("Retrieved tool " << tool); } return true; - } \ No newline at end of file + } diff --git a/Reconstruction/DiTauRec/src/DiTauTrackFinder.cxx b/Reconstruction/DiTauRec/src/DiTauTrackFinder.cxx index 6c7e05369ac4..9eb9b0a1d553 100644 --- a/Reconstruction/DiTauRec/src/DiTauTrackFinder.cxx +++ b/Reconstruction/DiTauRec/src/DiTauTrackFinder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -17,6 +17,7 @@ #include "tauRecTools/TrackSort.h" #include "tauRecTools/KineUtils.h" +#include "StoreGate/ReadHandle.h" #include "fastjet/PseudoJet.hh" @@ -31,14 +32,12 @@ DiTauTrackFinder::DiTauTrackFinder(const std::string& type, DiTauToolBase(type, name, parent), m_MaxDrJet(1.0), m_MaxDrSubjet(0.2), - m_TrackParticleContainerName("InDetTrackParticles"), m_TrackSelectorTool("") // m_ParticleCaloExtensionTool("") { declareInterface<DiTauToolBase > (this); declareProperty("MaxDrJet", m_MaxDrJet); declareProperty("MaxDrSubjet", m_MaxDrSubjet); - declareProperty("TrackParticleContainer", m_TrackParticleContainerName); declareProperty("TrackSelectorTool", m_TrackSelectorTool); // declareProperty("ParticleCaloExtensionTool", m_ParticleCaloExtensionTool); } @@ -56,33 +55,18 @@ DiTauTrackFinder::~DiTauTrackFinder() { StatusCode DiTauTrackFinder::initialize() { - if (m_TrackSelectorTool.retrieve().isFailure()) { - ATH_MSG_FATAL("could not retrieve track TrackSelectorTool"); - return StatusCode::FAILURE; - } - // if (m_ParticleCaloExtensionTool.retrieve().isFailure()) { - // ATH_MSG_FATAL("could not retrieve track ParticleCaloExtensionTool"); - // return StatusCode::FAILURE; - // } - - return StatusCode::SUCCESS; -} - -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode DiTauTrackFinder::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; + ATH_CHECK( m_TrackSelectorTool.retrieve() ); + ATH_CHECK( m_TrackParticleContainerName.initialize() ); + return StatusCode::SUCCESS; } //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode DiTauTrackFinder::execute(DiTauCandidateData * data) { - +StatusCode DiTauTrackFinder::execute(DiTauCandidateData * data, + const EventContext& ctx) const +{ ATH_MSG_DEBUG("execute DiTauTrackFinder..."); xAOD::DiTauJet *pDiTau = data->xAODDiTau; @@ -92,15 +76,9 @@ StatusCode DiTauTrackFinder::execute(DiTauCandidateData * data) { return StatusCode::FAILURE; } - StatusCode sc; - // retrieve track container - const xAOD::TrackParticleContainer* pTrackParticleCont = 0; - sc = evtStore()->retrieve(pTrackParticleCont, m_TrackParticleContainerName); - if (sc.isFailure() || !pTrackParticleCont) { - ATH_MSG_WARNING("could not find seed jets with key:" << m_TrackParticleContainerName); - return StatusCode::FAILURE; - } + SG::ReadHandle<xAOD::TrackParticleContainer> pTrackParticleCont + (m_TrackParticleContainerName, ctx); std::vector<const xAOD::TrackParticle*> tauTracks; // good tracks in subjets std::vector<const xAOD::TrackParticle*> isoTracks; // good tracks in isolation region @@ -117,7 +95,7 @@ StatusCode DiTauTrackFinder::execute(DiTauCandidateData * data) { } // get tracks - getTracksFromPV(data, pTrackParticleCont, pVertex, tauTracks, isoTracks, otherTracks); + getTracksFromPV(data, pTrackParticleCont.get(), pVertex, tauTracks, isoTracks, otherTracks); // clear track links before association pDiTau->clearTrackLinks(); @@ -164,19 +142,19 @@ StatusCode DiTauTrackFinder::execute(DiTauCandidateData * data) { // associate tau tracks for (const auto& track : tauTracks ) { ATH_MSG_DEBUG("adding subjet track. eta: " << track->eta() << " phi: " << track->phi()); - pDiTau->addTrack(pTrackParticleCont, track); + pDiTau->addTrack(pTrackParticleCont.get(), track); } // associate isolation tracks for (const auto& track : isoTracks ) { ATH_MSG_DEBUG("adding iso track. eta: " << track->eta() << " phi: " << track->phi()); - pDiTau->addIsoTrack(pTrackParticleCont, track); + pDiTau->addIsoTrack(pTrackParticleCont.get(), track); } // associate other tracks for (const auto& track : otherTracks ) { ATH_MSG_DEBUG("adding other track. eta: " << track->eta() << " phi: " << track->phi()); - pDiTau->addOtherTrack(pTrackParticleCont, track); + pDiTau->addOtherTrack(pTrackParticleCont.get(), track); } @@ -189,7 +167,7 @@ void DiTauTrackFinder::getTracksFromPV( const DiTauCandidateData* data, const xAOD::Vertex* pVertex, std::vector<const xAOD::TrackParticle*> &tauTracks, std::vector<const xAOD::TrackParticle*> &isoTracks, - std::vector<const xAOD::TrackParticle*> &otherTracks) { + std::vector<const xAOD::TrackParticle*> &otherTracks) const { for (const auto& track : *pTrackParticleCont ) { DiTauTrackType type = diTauTrackType(data, track, pVertex); @@ -211,7 +189,7 @@ void DiTauTrackFinder::getTracksFromPV( const DiTauCandidateData* data, DiTauTrackFinder::DiTauTrackType DiTauTrackFinder::diTauTrackType(const DiTauCandidateData* data, const xAOD::TrackParticle* track, - const xAOD::Vertex* pVertex) { + const xAOD::Vertex* pVertex) const { xAOD::DiTauJet *pDiTau = data->xAODDiTau; diff --git a/Reconstruction/DiTauRec/src/ElMuFinder.cxx b/Reconstruction/DiTauRec/src/ElMuFinder.cxx index a89833341ebd..94bab9e23049 100644 --- a/Reconstruction/DiTauRec/src/ElMuFinder.cxx +++ b/Reconstruction/DiTauRec/src/ElMuFinder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ @@ -15,6 +15,8 @@ #include "MuonSelectorTools/MuonSelectionTool.h" #include "tauRecTools/KineUtils.h" + +#include "StoreGate/ReadHandle.h" //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- @@ -23,19 +25,15 @@ ElMuFinder::ElMuFinder(const std::string& type, const std::string& name, const IInterface * parent) : DiTauToolBase(type, name, parent), - m_elContName("Electrons"), m_elMinPt(7000), m_elMaxEta(2.47), - m_muContName("Muons"), m_muMinPt(7000), m_muMaxEta(2.47), m_muQual(2) { declareInterface<DiTauToolBase > (this); - declareProperty("ElectronContainer", m_elContName); declareProperty("ElectronMinPt", m_elMinPt); declareProperty("ElectronMaxEta", m_elMaxEta); - declareProperty("MuonContainer", m_muContName); declareProperty("MuonMinPt", m_muMinPt); declareProperty("MuonMaxEta", m_muMaxEta); declareProperty("MuonQuality", m_muQual); @@ -54,23 +52,17 @@ ElMuFinder::~ElMuFinder() { StatusCode ElMuFinder::initialize() { - return StatusCode::SUCCESS; -} - -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode ElMuFinder::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; + ATH_CHECK( m_elContName.initialize() ); + ATH_CHECK( m_muContName.initialize() ); + return StatusCode::SUCCESS; } //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode ElMuFinder::execute(DiTauCandidateData * data) { +StatusCode ElMuFinder::execute(DiTauCandidateData * data, + const EventContext& ctx) const { ATH_MSG_DEBUG("execute ElMuFinder..."); @@ -81,24 +73,8 @@ StatusCode ElMuFinder::execute(DiTauCandidateData * data) { return StatusCode::FAILURE; } - StatusCode sc; - - const xAOD::ElectronContainer* pElCont = 0; - sc = evtStore()->retrieve(pElCont, m_elContName); - if (sc.isFailure() || !pElCont) { - ATH_MSG_WARNING("could not find electrons with key:" << m_elContName << - " Continue without electron and muon finding."); - return StatusCode::SUCCESS; - } - - const xAOD::MuonContainer* pMuCont = 0; - sc = evtStore()->retrieve(pMuCont, m_muContName); - if (sc.isFailure() || !pMuCont) { - ATH_MSG_WARNING("could not find muons with key:" << m_muContName << - " Continue without electron and muon finding."); - return StatusCode::SUCCESS; - } - + SG::ReadHandle<xAOD::ElectronContainer> pElCont (m_elContName, ctx); + SG::ReadHandle<xAOD::MuonContainer> pMuCont (m_muContName, ctx); // select electrons data->electrons.clear(); diff --git a/Reconstruction/DiTauRec/src/IDvarCalculator.cxx b/Reconstruction/DiTauRec/src/IDvarCalculator.cxx index 13362d1d47b1..abf9bcaa2338 100644 --- a/Reconstruction/DiTauRec/src/IDvarCalculator.cxx +++ b/Reconstruction/DiTauRec/src/IDvarCalculator.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ @@ -42,20 +42,12 @@ StatusCode IDVarCalculator::initialize() { return StatusCode::SUCCESS; } -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode IDVarCalculator::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; -} - //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode IDVarCalculator::execute(DiTauCandidateData * data) { +StatusCode IDVarCalculator::execute(DiTauCandidateData * data, + const EventContext& /*ctx*/) const { ATH_MSG_DEBUG("execute IDVarCalculator..."); @@ -85,10 +77,11 @@ StatusCode IDVarCalculator::execute(DiTauCandidateData * data) { } // cells if available + bool useCells = m_useCells;; std::vector<const CaloCell*> vSubjetCells = data->subjetCells; if (vSubjetCells.size()==0) { ATH_MSG_DEBUG("No cell information available."); - m_useCells = false; + useCells = false; } @@ -105,7 +98,7 @@ StatusCode IDVarCalculator::execute(DiTauCandidateData * data) { // ---------------------------------------------------------------------------- // write f_core // ---------------------------------------------------------------------------- - if (m_useCells == false) { + if (useCells == false) { ATH_MSG_DEBUG("no cells are used for ID variable calculation. Continue."); return StatusCode::SUCCESS; } diff --git a/Reconstruction/DiTauRec/src/SeedJetBuilder.cxx b/Reconstruction/DiTauRec/src/SeedJetBuilder.cxx index 1cea2c2f0bfe..008e585fa607 100644 --- a/Reconstruction/DiTauRec/src/SeedJetBuilder.cxx +++ b/Reconstruction/DiTauRec/src/SeedJetBuilder.cxx @@ -1,12 +1,13 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "DiTauRec/SeedJetBuilder.h" #include "DiTauRec/DiTauToolBase.h" - #include "DiTauRec/DiTauCandidateData.h" +#include "StoreGate/ReadHandle.h" + //------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------- @@ -14,11 +15,9 @@ SeedJetBuilder::SeedJetBuilder(const std::string& type, const std::string& name, const IInterface * parent) : - DiTauToolBase(type, name, parent), - m_jetContainerName("AntiKt10LCTopoJets") + DiTauToolBase(type, name, parent) { declareInterface<DiTauToolBase > (this); - declareProperty("JetCollection", m_jetContainerName); } //------------------------------------------------------------------------- @@ -33,22 +32,16 @@ SeedJetBuilder::~SeedJetBuilder() { //------------------------------------------------------------------------- StatusCode SeedJetBuilder::initialize() { - return StatusCode::SUCCESS; -} - -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode SeedJetBuilder::eventFinalize(DiTauCandidateData *) { - return StatusCode::SUCCESS; + ATH_CHECK( m_jetContainerName.initialize() ); + return StatusCode::SUCCESS; } //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode SeedJetBuilder::execute(DiTauCandidateData * data) { +StatusCode SeedJetBuilder::execute(DiTauCandidateData * data, + const EventContext& ctx) const { ATH_MSG_DEBUG("jet seed finder executing..."); @@ -75,11 +68,10 @@ StatusCode SeedJetBuilder::execute(DiTauCandidateData * data) { // retrieve jet container - const xAOD::JetContainer* pJetCont = nullptr; - ATH_CHECK(evtStore()->retrieve(pJetCont, m_jetContainerName)); + SG::ReadHandle<xAOD::JetContainer> pJetCont (m_jetContainerName, ctx); - pDiTau->setJet(pJetCont, pSeed); + pDiTau->setJet(pJetCont.get(), pSeed); if (pDiTau->jetLink().isValid()) { ATH_MSG_DEBUG("assciated seed jet with" diff --git a/Reconstruction/DiTauRec/src/SubjetBuilder.cxx b/Reconstruction/DiTauRec/src/SubjetBuilder.cxx index af00ffe8e21b..574d2f22f7b8 100644 --- a/Reconstruction/DiTauRec/src/SubjetBuilder.cxx +++ b/Reconstruction/DiTauRec/src/SubjetBuilder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -59,20 +59,12 @@ StatusCode SubjetBuilder::initialize() { return StatusCode::SUCCESS; } -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode SubjetBuilder::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; -} - //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode SubjetBuilder::execute(DiTauCandidateData * data) { +StatusCode SubjetBuilder::execute(DiTauCandidateData * data, + const EventContext& /*ctx*/) const { ATH_MSG_DEBUG("subjet builder executing..."); diff --git a/Reconstruction/DiTauRec/src/VertexFinder.cxx b/Reconstruction/DiTauRec/src/VertexFinder.cxx index e384456480bd..73f11eb2e674 100644 --- a/Reconstruction/DiTauRec/src/VertexFinder.cxx +++ b/Reconstruction/DiTauRec/src/VertexFinder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -10,6 +10,7 @@ #include "xAODTracking/VertexContainer.h" #include "xAODTracking/Vertex.h" +#include "StoreGate/ReadHandle.h" //------------------------------------------------------------------------- // Constructor @@ -19,15 +20,10 @@ VertexFinder::VertexFinder(const std::string& type, const std::string& name, const IInterface * parent) : DiTauToolBase(type, name, parent), - m_primVtxContainerName("PrimaryVertices"), - m_assocTracksName("GhostTrack"), - m_trackVertexAssocName("JetTrackVtxAssoc_forDiTaus"), - m_maxJVF(-100) + m_assocTracksName("GhostTrack") { declareInterface<DiTauToolBase > (this); - declareProperty("PrimVtxContainerName", m_primVtxContainerName); declareProperty("AssociatedTracks", m_assocTracksName); - declareProperty("TrackVertexAssociation", m_trackVertexAssocName); } //------------------------------------------------------------------------- @@ -43,23 +39,17 @@ VertexFinder::~VertexFinder() { StatusCode VertexFinder::initialize() { - return StatusCode::SUCCESS; -} - -//------------------------------------------------------------------------- -// Event Finalize -//------------------------------------------------------------------------- - -StatusCode VertexFinder::eventFinalize(DiTauCandidateData * ) { - - return StatusCode::SUCCESS; + ATH_CHECK( m_primVtxContainerName.initialize() ); + ATH_CHECK( m_trackVertexAssocName.initialize() ); + return StatusCode::SUCCESS; } //------------------------------------------------------------------------- // execute //------------------------------------------------------------------------- -StatusCode VertexFinder::execute(DiTauCandidateData * data) { +StatusCode VertexFinder::execute(DiTauCandidateData * data, + const EventContext& ctx) const { ATH_MSG_DEBUG("execute VertexFinder..."); @@ -67,15 +57,10 @@ StatusCode VertexFinder::execute(DiTauCandidateData * data) { // get the primary vertex container from StoreGate //do it here because of tau trigger - const xAOD::VertexContainer* vxContainer = 0; const xAOD::Vertex* vxPrimary = 0; - - StatusCode sc = evtStore()->retrieve(vxContainer, m_primVtxContainerName); - if (sc.isFailure() || vxContainer->size() == 0) { - ATH_MSG_WARNING("Container (" << m_primVtxContainerName << - ") not found in StoreGate."); - return StatusCode::FAILURE; - } + + SG::ReadHandle<xAOD::VertexContainer> vxContainer + (m_primVtxContainerName, ctx); // find default PrimaryVertex // see https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/VertexReselectionOnAOD @@ -96,19 +81,20 @@ StatusCode VertexFinder::execute(DiTauCandidateData * data) { } // associate vertex to tau - pDiTau->setVertex(vxContainer, vxPrimary); + pDiTau->setVertex(vxContainer.get(), vxPrimary); // try to find new PV with TJVA ATH_MSG_DEBUG("TJVA enabled -> try to find new PV for the tau candidate"); - ElementLink<xAOD::VertexContainer> newPrimaryVertexLink = getPV_TJVA(pDiTau, vxContainer); + float maxJVF = -100; + ElementLink<xAOD::VertexContainer> newPrimaryVertexLink = getPV_TJVA(pDiTau, vxContainer.get(), maxJVF, ctx); if (newPrimaryVertexLink.isValid()) { // set new primary vertex // will overwrite default one which was set above pDiTau->setVertexLink(newPrimaryVertexLink); // save highest JVF value - pDiTau->setDetail(xAOD::DiTauJetParameters::TauJetVtxFraction,static_cast<float>(m_maxJVF)); + pDiTau->setDetail(xAOD::DiTauJetParameters::TauJetVtxFraction,static_cast<float>(maxJVF)); ATH_MSG_DEBUG("TJVA vertex found and set"); } else { @@ -119,7 +105,9 @@ StatusCode VertexFinder::execute(DiTauCandidateData * data) { } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -ElementLink<xAOD::VertexContainer> VertexFinder::getPV_TJVA(const xAOD::DiTauJet* pDiTau, const xAOD::VertexContainer* vertices) +ElementLink<xAOD::VertexContainer> VertexFinder::getPV_TJVA(const xAOD::DiTauJet* pDiTau, const xAOD::VertexContainer* vertices, + float& maxJVF, + const EventContext& ctx) const { const xAOD::Jet* pJetSeed = (*pDiTau->jetLink()); @@ -133,26 +121,23 @@ ElementLink<xAOD::VertexContainer> VertexFinder::getPV_TJVA(const xAOD::DiTauJet } // Get the TVA object - const jet::TrackVertexAssociation* tva = NULL; - if (evtStore()->retrieve(tva, m_trackVertexAssocName).isFailure()) { - ATH_MSG_ERROR("Could not retrieve the TrackVertexAssociation from evtStore: " << m_trackVertexAssocName); - return ElementLink<xAOD::VertexContainer>(); - } + SG::ReadHandle<jet::TrackVertexAssociation> tva + (m_trackVertexAssocName, ctx); // Calculate Jet Vertex Fraction std::vector<float> jvf; jvf.resize(vertices->size()); for (size_t iVertex = 0; iVertex < vertices->size(); ++iVertex) { - jvf.at(iVertex) = getJetVertexFraction(vertices->at(iVertex),assocTracks,tva); + jvf.at(iVertex) = getJetVertexFraction(vertices->at(iVertex),assocTracks,tva.get()); } // Get the highest JVF vertex and store maxJVF for later use // Note: the official JetMomentTools/JetVertexFractionTool doesn't provide any possibility to access the JVF value, but just the vertex. - m_maxJVF=-100.; + maxJVF=-100.; size_t maxIndex = 0; for (size_t iVertex = 0; iVertex < jvf.size(); ++iVertex) { - if (jvf.at(iVertex) > m_maxJVF) { - m_maxJVF = jvf.at(iVertex); + if (jvf.at(iVertex) > maxJVF) { + maxJVF = jvf.at(iVertex); maxIndex = iVertex; } } -- GitLab From 97d47edb01f0d212ea5534402a3b4185ca0029f7 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Fri, 25 Jan 2019 08:30:16 +0100 Subject: [PATCH 111/192] Cleanup of several redundant includes --- .../InDetDetDescr/SCT_Cabling/src/SCT_CablingToolCB.cxx | 1 - .../EventTagUtils/src/RegistrationStreamTrig.cxx | 2 -- .../TrigDetCalib/src/TrigSubDetListWriter.h | 9 --------- .../TrigT2CaloCalibration/src/T2SampCalibTool.cxx | 6 ------ 4 files changed, 18 deletions(-) diff --git a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingToolCB.cxx b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingToolCB.cxx index f9a11d8143e0..a92a00198e48 100644 --- a/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingToolCB.cxx +++ b/InnerDetector/InDetDetDescr/SCT_Cabling/src/SCT_CablingToolCB.cxx @@ -21,7 +21,6 @@ //Gaudi includes #include "GaudiKernel/StatusCode.h" #include "GaudiKernel/IIncidentSvc.h" -#include "EventInfo/EventIncident.h" //constants in file scope static const std::string coracool("CORACOOL"); diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx index f009ba23d8c9..c78c67087ff5 100755 --- a/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx +++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx @@ -21,8 +21,6 @@ #include "DBDataModel/CollectionMetadata.h" -//#include "EventInfo/EventIncident.h" - #include "AthenaPoolUtilities/TagMetadataKey.h" #include "TPython.h" diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h index d96d7054c1ab..84308850a98e 100755 --- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h +++ b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigSubDetListWriter.h @@ -25,21 +25,12 @@ #include <vector> #include <string> -///#include "TrigInterfaces/FexAlgo.h" #include "TrigInterfaces/AllTEAlgo.h" #include "IRegionSelector/RegSelEnums.h" #include "GaudiKernel/ITHistSvc.h" #include "eformat/SourceIdentifier.h" -// Event Incident to get EventInfo -#include "GaudiKernel/IIncidentSvc.h" -#include "GaudiKernel/IIncidentListener.h" -#include "GaudiKernel/Incident.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" -#include "EventInfo/EventIncident.h" - #include "TH1I.h" class IRegSelSvc; diff --git a/Trigger/TrigTools/TrigT2CaloCalibration/src/T2SampCalibTool.cxx b/Trigger/TrigTools/TrigT2CaloCalibration/src/T2SampCalibTool.cxx index 7b3a3a20291e..97ea39652da9 100755 --- a/Trigger/TrigTools/TrigT2CaloCalibration/src/T2SampCalibTool.cxx +++ b/Trigger/TrigTools/TrigT2CaloCalibration/src/T2SampCalibTool.cxx @@ -37,12 +37,6 @@ #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/Property.h" -// Event Info -#include "EventInfo/EventIncident.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" -#include "EventInfo/EventType.h" - // Needed to register dB object #include "RegistrationServices/IIOVRegistrationSvc.h" -- GitLab From f5ac4bd9d760ee90085b82a8ac42e3ac5fa59b8c Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 25 Jan 2019 09:49:00 +0100 Subject: [PATCH 112/192] Updated some more code in the Athena project to use the new variable naming scheme. It turns out that there were a number of other places where I forgot to update the names of the variables to <FOO>_LCGROOT and <BAR>_ATROOT. At the same time tweaked the "quietness" of the CMake code a bit as well. --- Projects/Athena/CMakeLists.txt | 19 ++++++++++--------- Projects/Athena/PostConfig.cmake.in | 9 ++++++--- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Projects/Athena/CMakeLists.txt b/Projects/Athena/CMakeLists.txt index 299132047c75..e930cb3d5407 100644 --- a/Projects/Athena/CMakeLists.txt +++ b/Projects/Athena/CMakeLists.txt @@ -1,5 +1,6 @@ + # The minimum required CMake version: -cmake_minimum_required( VERSION 3.2 FATAL_ERROR ) +cmake_minimum_required( VERSION 3.6 ) # Read in the project's version from a file called version.txt. But let it be # overridden from the command line if necessary. @@ -65,7 +66,7 @@ foreach( _external ${_externals} ) include( ${_external} ) get_filename_component( _extName ${_external} NAME_WE ) string( TOUPPER ${_extName} _extNameUpper ) - message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_ROOT}" ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) unset( _extName ) unset( _extNameUpper ) endforeach() @@ -77,7 +78,7 @@ atlas_ctest_setup() # Declare project name and version atlas_project( Athena ${ATHENA_PROJECT_VERSION} - USE AthenaExternals 0.0.1 + USE AthenaExternals ${AthenaExternals_VERSION} PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ FORTRAN ) @@ -107,19 +108,19 @@ install( FILES ${CMAKE_BINARY_DIR}/env_setup_install.sh # Configure and install the post-configuration file: string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" - TDAQ-COMMON_ROOT "${TDAQ-COMMON_ROOT}" ) + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) string( REPLACE "${TDAQ-COMMON_VERSION}" "\${TDAQ-COMMON_VERSION}" - TDAQ-COMMON_ROOT "${TDAQ-COMMON_ROOT}" ) + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" - DQM-COMMON_ROOT "${DQM-COMMON_ROOT}" ) + DQM-COMMON_ATROOT "${DQM-COMMON_ATROOT}" ) string( REPLACE "${DQM-COMMON_VERSION}" "\${DQM-COMMON_VERSION}" - DQM-COMMON_ROOT "${DQM-COMMON_ROOT}" ) + DQM-COMMON_ATROOT "${DQM-COMMON_ATROOT}" ) # Temporarily add tdaq dependency to Athena build: string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" - TDAQ_ROOT "${TDAQ_ROOT}" ) + TDAQ_ATROOT "${TDAQ_ATROOT}" ) string( REPLACE "${TDAQ_VERSION}" "\${TDAQ_VERSION}" - TDAQ_ROOT "${TDAQ_ROOT}" ) + TDAQ_ATROOT "${TDAQ_ATROOT}" ) configure_file( ${CMAKE_SOURCE_DIR}/PostConfig.cmake.in ${CMAKE_BINARY_DIR}/PostConfig.cmake @ONLY ) diff --git a/Projects/Athena/PostConfig.cmake.in b/Projects/Athena/PostConfig.cmake.in index 5ce21e3e61ab..1140a49ce202 100644 --- a/Projects/Athena/PostConfig.cmake.in +++ b/Projects/Athena/PostConfig.cmake.in @@ -4,7 +4,6 @@ # # Set the versions of the TDAQ projects: - set( TDAQ_PROJECT_NAME "@TDAQ_PROJECT_NAME@" CACHE STRING "Name of the tdaq project" ) set( TDAQ_VERSION "@TDAQ_VERSION@" CACHE STRING @@ -23,7 +22,11 @@ set( DQM-COMMON_ATROOT "@DQM-COMMON_ATROOT@" CACHE PATH "The directory to pick up dqm-common from" ) # Find Gaudi: -find_package( Gaudi REQUIRED ) +if( Athena_FIND_QUIETLY ) + find_package( Gaudi REQUIRED QUIET ) +else() + find_package( Gaudi REQUIRED ) +endif() # Load all the files from the externals/ subdirectory: get_filename_component( _thisdir ${CMAKE_CURRENT_LIST_FILE} PATH ) @@ -34,7 +37,7 @@ foreach( _external ${_externals} ) get_filename_component( _extName ${_external} NAME_WE ) string( TOUPPER ${_extName} _extNameUpper ) if( NOT Athena_FIND_QUIETLY ) - message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_ROOT}" ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) endif() unset( _extName ) unset( _extNameUpper ) -- GitLab From a27d713b572619ddd5b0e8925b6983af8d0c5b60 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 25 Jan 2019 09:53:47 +0100 Subject: [PATCH 113/192] Updated some more code in the AthSimulation project to use the new variable naming scheme. Just like in the Athena project, I also forgot to update some non-essential code pieces in the AthSimulation project. --- Projects/AthSimulation/CMakeLists.txt | 6 +++--- Projects/AthSimulation/PostConfig.cmake.in | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Projects/AthSimulation/CMakeLists.txt b/Projects/AthSimulation/CMakeLists.txt index 88b4d21a3834..fc01c1d8aa7d 100644 --- a/Projects/AthSimulation/CMakeLists.txt +++ b/Projects/AthSimulation/CMakeLists.txt @@ -1,6 +1,6 @@ # The minimum required CMake version: -cmake_minimum_required( VERSION 3.2 FATAL_ERROR ) +cmake_minimum_required( VERSION 3.6 ) # Read in the project's version from a file called version.txt. But let it be # overridden from the command line if necessary. @@ -33,7 +33,7 @@ foreach( _external ${_externals} ) include( ${_external} ) get_filename_component( _extName ${_external} NAME_WE ) string( TOUPPER ${_extName} _extNameUpper ) - message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_ROOT}" ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) unset( _extName ) unset( _extNameUpper ) endforeach() @@ -45,7 +45,7 @@ atlas_ctest_setup() # Declare project name and version atlas_project( AthSimulation ${ATHSIMULATION_PROJECT_VERSION} - USE AthSimulationExternals 0.0.1 + USE AthSimulationExternals ${AthSimulationExternals_VERSION} PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ FORTRAN ) diff --git a/Projects/AthSimulation/PostConfig.cmake.in b/Projects/AthSimulation/PostConfig.cmake.in index 6a201c5346f6..f6a306b369d5 100644 --- a/Projects/AthSimulation/PostConfig.cmake.in +++ b/Projects/AthSimulation/PostConfig.cmake.in @@ -4,7 +4,11 @@ # # Find Gaudi: -find_package( Gaudi REQUIRED ) +if( AthSimulation_FIND_QUIETLY ) + find_package( Gaudi REQUIRED QUIET ) +else() + find_package( Gaudi REQUIRED ) +endif() # Temporarily setting additional compile flags here: add_definitions( -DSIMULATIONBASE ) @@ -21,7 +25,7 @@ foreach( _external ${_externals} ) get_filename_component( _extName ${_external} NAME_WE ) string( TOUPPER ${_extName} _extNameUpper ) if( NOT AthSimulation_FIND_QUIETLY ) - message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_ROOT}" ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) endif() unset( _extName ) unset( _extNameUpper ) -- GitLab From 33ba4c49783b7ec8ec431c68ac0a5225ecb0d6b4 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 25 Jan 2019 10:11:10 +0100 Subject: [PATCH 114/192] Updated some more code in the AthDataQuality project to use the new variable naming scheme. I forgot about some code here as well. At the same time updated the project to use LCG_94. --- Projects/AthDataQuality/CMakeLists.txt | 33 +++++++++++++++----------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/Projects/AthDataQuality/CMakeLists.txt b/Projects/AthDataQuality/CMakeLists.txt index 29a3b3edeb6e..c1835daae634 100644 --- a/Projects/AthDataQuality/CMakeLists.txt +++ b/Projects/AthDataQuality/CMakeLists.txt @@ -1,6 +1,6 @@ # Set the minimum required CMake version: -cmake_minimum_required( VERSION 3.2 FATAL_ERROR ) +cmake_minimum_required( VERSION 3.6 ) # Read in the project's version from a file called version.txt. But let it be # overridden from the command line if necessary. @@ -11,14 +11,18 @@ set( ATHDATAQUALITY_PROJECT_VERSION ${_version} unset( _version ) # Set the version of tdaq-common to use for the build: -set( TDAQ-COMMON_VERSION "02-04-00" ) -set( TDAQ-COMMON_ROOT - "$ENV{TDAQ_RELEASE_BASE}/tdaq-common/tdaq-common-${TDAQ-COMMON_VERSION}" ) +set( TDAQ-COMMON_VERSION "02-09-00" CACHE STRING + "The version of tdaq-common to use for the build" ) +set( TDAQ-COMMON_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/tdaq-common/tdaq-common-${TDAQ-COMMON_VERSION}" + CACHE PATH "The directory to pick up tdaq-common from" ) # Set the version of dqm-common to use for the build: -set( DQM-COMMON_VERSION "01-04-00" ) -set( DQM-COMMON_ROOT - "$ENV{TDAQ_RELEASE_BASE}/dqm-common/dqm-common-${DQM-COMMON_VERSION}" ) +set( DQM-COMMON_VERSION "01-09-00" CACHE STRING + "The version of dqm-common to use for the build" ) +set( DQM-COMMON_ATROOT + "$ENV{TDAQ_RELEASE_BASE}/dqm-common/dqm-common-${DQM-COMMON_VERSION}" + CACHE PATH "The directory to pick up dqm-common from" ) # Pick up the AtlasCMake code: find_package( AtlasCMake REQUIRED ) @@ -26,7 +30,7 @@ find_package( AtlasCMake REQUIRED ) # Build the project against LCG: set( LCG_VERSION_POSTFIX "" CACHE STRING "Version postfix for the LCG release to use" ) -set( LCG_VERSION_NUMBER 91 +set( LCG_VERSION_NUMBER 94 CACHE STRING "Version number for the LCG release to use" ) find_package( LCG ${LCG_VERSION_NUMBER} EXACT REQUIRED ) @@ -52,11 +56,12 @@ lcg_generate_env( SH_FILE ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}/env_setup.sh ) set( _replacements ) if( NOT "$ENV{NICOS_PROJECT_HOME}" STREQUAL "" ) get_filename_component( _buildDir $ENV{NICOS_PROJECT_HOME} PATH ) - list( APPEND _replacements ${_buildDir} "\${Athena_DIR}/../../../.." ) + list( APPEND _replacements ${_buildDir} + "\${AthDataQuality_DIR}/../../../.." ) endif() if( NOT "$ENV{NICOS_PROJECT_RELNAME}" STREQUAL "" ) list( APPEND _replacements $ENV{NICOS_PROJECT_RELNAME} - "\${Athena_VERSION}" ) + "\${AthDataQuality_VERSION}" ) endif() if( NOT "$ENV{TDAQ_RELEASE_BASE}" STREQUAL "" ) list( APPEND _replacements $ENV{TDAQ_RELEASE_BASE} @@ -72,13 +77,13 @@ install( FILES ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/env_setup_install.sh # Configure and install the post-configuration file: string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" - TDAQ-COMMON_ROOT "${TDAQ-COMMON_ROOT}" ) + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) string( REPLACE "${TDAQ-COMMON_VERSION}" "\${TDAQ-COMMON_VERSION}" - TDAQ-COMMON_ROOT "${TDAQ-COMMON_ROOT}" ) + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" - DQM-COMMON_ROOT "${DQM-COMMON_ROOT}" ) + DQM-COMMON_ATROOT "${DQM-COMMON_ATROOT}" ) string( REPLACE "${DQM-COMMON_VERSION}" "\${DQM-COMMON_VERSION}" - DQM-COMMON_ROOT "${DQM-COMMON_ROOT}" ) + DQM-COMMON_ATROOT "${DQM-COMMON_ATROOT}" ) configure_file( ${CMAKE_SOURCE_DIR}/PostConfig.cmake.in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PostConfig.cmake @ONLY ) install( FILES ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PostConfig.cmake -- GitLab From 5de1314b0b55fe97a4978cd7727c4a5a2da75fda Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Fri, 25 Jan 2019 10:16:51 +0100 Subject: [PATCH 115/192] TriggerMenuRuleBook: replace simplejson -> json module The simplejson module is deprecated and can just be replaced by the json module. --- .../TriggerMenu/scripts/makeRuleBook_for_justificationTag.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenu/scripts/makeRuleBook_for_justificationTag.py b/Trigger/TriggerCommon/TriggerMenu/scripts/makeRuleBook_for_justificationTag.py index d7df2aee474b..603c8f17bf74 100644 --- a/Trigger/TriggerCommon/TriggerMenu/scripts/makeRuleBook_for_justificationTag.py +++ b/Trigger/TriggerCommon/TriggerMenu/scripts/makeRuleBook_for_justificationTag.py @@ -1,11 +1,11 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration ## This script checks the justification database for chains of a specific tag (e.g. "primary_at_1e32"). It makes a list of chains of this specific tag that are also in the menu of a specific release (e.g. "rel_0"). It picks from a reference RuleBook the lines corresponding to that list, and if the RuleBook does not contain any of these items, it writes this item with default value "(0,1)" for lumi 1000. ## Tomasz'json is being used. ##e.g. (from within the scripts directory) python makeRuleBook_for_justificationTag.py primary_at_1e32 rel_0 ../rules/Physics_pp_rulebook_PT.txt -import simplejson as json +import json import urllib2 import sys, commands -- GitLab From 121feb54f52ecf8efe51c5c0f3c97c518740581e Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Fri, 25 Jan 2019 10:17:39 +0100 Subject: [PATCH 116/192] AtlasPyFwdBwdPorts: Remove simplejson/jsonpickle modules Remove the deprecated simplejson and not used jsonpickle module. This is a follow-up to athenaprivate1!9820 and another step in cleaning up our external python modules (ATLINFR-2325). There is also atlasexternals!272 to move the build of the python modules into atlasexternals. --- External/AtlasPyFwdBwdPorts/CMakeLists.txt | 13 ------------- .../src/jsonpickle-0.4.0.tar.gz | Bin 25352 -> 0 bytes .../src/simplejson-2.1.6.tar.gz | Bin 52356 -> 0 bytes .../test/AtlasPyFwdBwdPorts.xml | 16 ---------------- 4 files changed, 29 deletions(-) delete mode 100644 External/AtlasPyFwdBwdPorts/src/jsonpickle-0.4.0.tar.gz delete mode 100644 External/AtlasPyFwdBwdPorts/src/simplejson-2.1.6.tar.gz delete mode 100644 External/AtlasPyFwdBwdPorts/test/AtlasPyFwdBwdPorts.xml diff --git a/External/AtlasPyFwdBwdPorts/CMakeLists.txt b/External/AtlasPyFwdBwdPorts/CMakeLists.txt index 6bdc5a22dffa..6f7eea61f459 100644 --- a/External/AtlasPyFwdBwdPorts/CMakeLists.txt +++ b/External/AtlasPyFwdBwdPorts/CMakeLists.txt @@ -115,13 +115,6 @@ _setup_python_package( futures a6fa247e3c5fe3d60d8e12f1b873cc88 ) -# Install jsonpickle: -_setup_python_package( jsonpickle - ${CMAKE_CURRENT_SOURCE_DIR}/src/jsonpickle-0.4.0.tar.gz - 63916228294218ca6e53fd1b16b626fa - DEPENDS simplejson - SINGLE_VERSION ) - # Install pyflakes: _setup_python_package( pyflakes ${CMAKE_CURRENT_SOURCE_DIR}/src/pyflakes-2.0.0.tar.gz @@ -172,12 +165,6 @@ _setup_python_package( pyyaml EXTRA_ARGS --without-libyaml SINGLE_VERSION ) -# Install simplejson: -_setup_python_package( simplejson - ${CMAKE_CURRENT_SOURCE_DIR}/src/simplejson-2.1.6.tar.gz - 2f8351f6e6fe7ef25744805dfa56c0d5 - ) - # Install gcovr: _setup_python_package( gcovr ${CMAKE_CURRENT_SOURCE_DIR}/src/gcovr-3.4.tar.gz diff --git a/External/AtlasPyFwdBwdPorts/src/jsonpickle-0.4.0.tar.gz b/External/AtlasPyFwdBwdPorts/src/jsonpickle-0.4.0.tar.gz deleted file mode 100644 index 51690730bab0482f1fd360d6def57c66ed3453c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25352 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 diff --git a/External/AtlasPyFwdBwdPorts/src/simplejson-2.1.6.tar.gz b/External/AtlasPyFwdBwdPorts/src/simplejson-2.1.6.tar.gz deleted file mode 100644 index 8b371ffa28092d623c6de1d491ebd8efda5bfd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52356 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 H05}8y3BUrL diff --git a/External/AtlasPyFwdBwdPorts/test/AtlasPyFwdBwdPorts.xml b/External/AtlasPyFwdBwdPorts/test/AtlasPyFwdBwdPorts.xml deleted file mode 100644 index 775612b3604a..000000000000 --- a/External/AtlasPyFwdBwdPorts/test/AtlasPyFwdBwdPorts.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0"?> -<atn> - -<!-- <TEST name="py_simplejson" type="script" suite="py_fwdbwd_ports"> --> -<!-- <package_atn>External/AtlasPyFwdBwdPorts</package_atn> --> -<!-- <options_atn>python -c'from simplejson.tests import main;main()'</options_atn> --> -<!-- <timelimit>10</timelimit> --> -<!-- <author> Sebastien Binet </author> --> -<!-- <mailto> binet@cern.ch </mailto> --> -<!-- <expectations> --> -<!-- <successMessage>OK</successMessage> --> -<!-- <returnValue>0</returnValue> --> -<!-- </expectations> --> -<!-- </TEST> --> - -</atn> -- GitLab From 54b99af6043375ec64b81a3cc1d5c05f775614cc Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 25 Jan 2019 10:23:06 +0100 Subject: [PATCH 117/192] Updated some generator packages to use the new AtlasLCG variable naming. --- External/Herwigpp/CMakeLists.txt | 3 +-- Generators/Epos_i/CMakeLists.txt | 7 ++++--- Generators/QGSJet_i/CMakeLists.txt | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/External/Herwigpp/CMakeLists.txt b/External/Herwigpp/CMakeLists.txt index 852c5999df68..079606b26bad 100644 --- a/External/Herwigpp/CMakeLists.txt +++ b/External/Herwigpp/CMakeLists.txt @@ -1,4 +1,3 @@ -# $Id: CMakeLists.txt 742924 2016-04-26 11:53:36Z krasznaa $ # # Package installing files from the Herwig++ generator into the offline # release. @@ -23,7 +22,7 @@ if( NOT HERWIG3_FOUND ) endif() # Install files from the package: -set( herwig_datadir "${HERWIG3_ROOT}/share/Herwig" ) +set( herwig_datadir "${HERWIG3_LCGROOT}/share/Herwig" ) if( NOT IS_DIRECTORY ${herwig_datadir} ) message( WARNING "Can't access directory ${herwig_datadir}" ) return() diff --git a/Generators/Epos_i/CMakeLists.txt b/Generators/Epos_i/CMakeLists.txt index f03ffae0526c..bb317817567b 100644 --- a/Generators/Epos_i/CMakeLists.txt +++ b/Generators/Epos_i/CMakeLists.txt @@ -41,6 +41,7 @@ atlas_add_component( Epos_i # Install files from the package: atlas_install_joboptions( share/*.py ) -atlas_install_runtime( share/epos_crmc.param ${CRMC_ROOT}/tabs/epos.inics ${CRMC_ROOT}/tabs/epos.inidi.lhc ${CRMC_ROOT}/tabs/epos.inirj.lhc ${CRMC_ROOT}/tabs/epos.inirj ${CRMC_ROOT}/tabs/epos.iniev ${CRMC_ROOT}/tabs/epos.initl ${CRMC_ROOT}/tabs/dpmjet.dat ) - - +atlas_install_runtime( share/epos_crmc.param ${CRMC_LCGROOT}/tabs/epos.inics + ${CRMC_LCGROOT}/tabs/epos.inidi.lhc ${CRMC_LCGROOT}/tabs/epos.inirj.lhc + ${CRMC_LCGROOT}/tabs/epos.inirj ${CRMC_LCGROOT}/tabs/epos.iniev + ${CRMC_LCGROOT}/tabs/epos.initl ${CRMC_LCGROOT}/tabs/dpmjet.dat ) diff --git a/Generators/QGSJet_i/CMakeLists.txt b/Generators/QGSJet_i/CMakeLists.txt index 540566b49f6d..5c4bbd5e2f08 100644 --- a/Generators/QGSJet_i/CMakeLists.txt +++ b/Generators/QGSJet_i/CMakeLists.txt @@ -42,4 +42,5 @@ atlas_add_component( QGSJet_i # Install files from the package: atlas_install_runtime( share/qgsjet_crmc.param ) -atlas_install_runtime( ${CRMC_ROOT}/tabs/sectnu-II-04 ${CRMC_ROOT}/tabs/qgsdat-II-04.lzma) +atlas_install_runtime( ${CRMC_LCGROOT}/tabs/sectnu-II-04 + ${CRMC_LCGROOT}/tabs/qgsdat-II-04.lzma ) -- GitLab From 7e3fe8181bb20ebd091cb06c185c734c9cbf5c3a Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Fri, 25 Jan 2019 11:26:18 +0100 Subject: [PATCH 118/192] Cleaned up some of the VP1 packages a bit. Some of the VP1 packages were using the ${QT5_ROOT} variable. Since that variable no longer exists, it seemed reasonable to clean up the configuration of these packages. While at it, I made all other cleanup that seemed reasonable. --- graphics/VP1/VP1AlgsBatch/CMakeLists.txt | 30 ++++++-------- graphics/VP1/VP1AlgsEventProd/CMakeLists.txt | 33 ++++++---------- .../VP1Plugins/VP1AODPlugin/CMakeLists.txt | 39 ++++++------------- .../VP1GeometryPlugin/CMakeLists.txt | 35 ++++++----------- .../VP1Systems/VP1AODSystems/CMakeLists.txt | 6 +-- graphics/VP1/VP1Utils/CMakeLists.txt | 8 +--- graphics/VP1/VP1UtilsBase/CMakeLists.txt | 5 ++- 7 files changed, 56 insertions(+), 100 deletions(-) diff --git a/graphics/VP1/VP1AlgsBatch/CMakeLists.txt b/graphics/VP1/VP1AlgsBatch/CMakeLists.txt index 737502d6a09d..9eafa4947fea 100644 --- a/graphics/VP1/VP1AlgsBatch/CMakeLists.txt +++ b/graphics/VP1/VP1AlgsBatch/CMakeLists.txt @@ -6,27 +6,21 @@ atlas_subdir( VP1AlgsBatch ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - GaudiKernel - PRIVATE - Database/APR/StorageSvc - Event/EventInfo - Tools/PathResolver - graphics/VP1/VP1UtilsBase ) - -# External dependencies: -find_package( Qt5 COMPONENTS Core OpenGL Gui HINTS ${QT5_ROOT} ) - - +atlas_depends_on_subdirs( + PUBLIC + Control/AthenaBaseComps + GaudiKernel + PRIVATE + Database/APR/StorageSvc + Event/EventInfo + Tools/PathResolver + graphics/VP1/VP1UtilsBase ) # Component(s) in the package: atlas_add_component( VP1AlgsBatch - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES ${QT5_LIBRARIES} GL AthenaBaseComps GaudiKernel StorageSvc EventInfo PathResolver VP1UtilsBase ) + VP1AlgsBatch/*.h src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps GaudiKernel StorageSvc EventInfo PathResolver + VP1UtilsBase ) # Install files from the package: -atlas_install_headers( VP1AlgsBatch ) atlas_install_runtime( share/*.vp1 ) - diff --git a/graphics/VP1/VP1AlgsEventProd/CMakeLists.txt b/graphics/VP1/VP1AlgsEventProd/CMakeLists.txt index 5916cd2861ca..7ee316846f77 100644 --- a/graphics/VP1/VP1AlgsEventProd/CMakeLists.txt +++ b/graphics/VP1/VP1AlgsEventProd/CMakeLists.txt @@ -6,27 +6,18 @@ atlas_subdir( VP1AlgsEventProd ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - GaudiKernel - PRIVATE - Database/APR/StorageSvc - Event/EventInfo - Tools/PathResolver - graphics/VP1/VP1UtilsBase ) - -# External dependencies: -find_package( Qt5 COMPONENTS Core OpenGL Gui HINTS ${QT5_ROOT} ) - - +atlas_depends_on_subdirs( + PUBLIC + Control/AthenaBaseComps + GaudiKernel + PRIVATE + Database/APR/StorageSvc + Event/EventInfo + Tools/PathResolver + graphics/VP1/VP1UtilsBase ) # Component(s) in the package: atlas_add_component( VP1AlgsEventProd - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES GL AthenaBaseComps GaudiKernel StorageSvc EventInfo PathResolver VP1UtilsBase ) - -# Install files from the package: -atlas_install_headers( VP1AlgsEventProd ) - - + VP1AlgsEventProd/*.h src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps GaudiKernel StorageSvc EventInfo PathResolver + VP1UtilsBase ) diff --git a/graphics/VP1/VP1Plugins/VP1AODPlugin/CMakeLists.txt b/graphics/VP1/VP1Plugins/VP1AODPlugin/CMakeLists.txt index 8afd7e74a2cd..597f287e5f7c 100644 --- a/graphics/VP1/VP1Plugins/VP1AODPlugin/CMakeLists.txt +++ b/graphics/VP1/VP1Plugins/VP1AODPlugin/CMakeLists.txt @@ -6,37 +6,22 @@ atlas_subdir( VP1AODPlugin ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - graphics/VP1/VP1Base - PRIVATE - graphics/VP1/VP1Systems/VP1AODSystems - graphics/VP1/VP1Systems/VP1GuideLineSystems ) - -# Install files from the package: -atlas_install_headers( VP1AODPlugin ) +atlas_depends_on_subdirs( + PUBLIC + graphics/VP1/VP1Base + PRIVATE + graphics/VP1/VP1Systems/VP1AODSystems + graphics/VP1/VP1Systems/VP1GuideLineSystems ) # External dependencies: -find_package( Qt5 COMPONENTS Core OpenGL Gui Widgets HINTS ${QT5_ROOT} ) -find_package( SoQt ) -find_package( Coin3D ) - - +find_package( Qt5 COMPONENTS Core ) -# Generate UI files automatically: -set( CMAKE_AUTOUIC TRUE ) # Generate MOC files automatically: set( CMAKE_AUTOMOC TRUE ) -# get the package name into the variable 'pkgName', to be used below -atlas_get_package_name( pkgName ) - - # Build the library. -atlas_add_library( ${pkgName} ${pkgName}/*.h src/*.cxx src/*.qrc - PUBLIC_HEADERS ${pkgName} - INCLUDE_DIRS ${SOQT_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ${QT5_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS tmpqt_extraheaders/ ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets ${SOQT_LIBRARIES} ${COIN3D_LIBRARIES} GeoPrimitives - PRIVATE_LINK_LIBRARIES VP1GuideLineSystems VP1GeometrySystems VP1AODSystems -) - +atlas_add_library( VP1AODPlugin + VP1AODPlugin/*.h src/*.cxx + PUBLIC_HEADERS VP1AODPlugin + LINK_LIBRARIES Qt5::Core VP1Base + PRIVATE_LINK_LIBRARIES VP1GuideLineSystems VP1AODSystems ) diff --git a/graphics/VP1/VP1Plugins/VP1GeometryPlugin/CMakeLists.txt b/graphics/VP1/VP1Plugins/VP1GeometryPlugin/CMakeLists.txt index f6f3e9d71e6a..0de3845a215a 100644 --- a/graphics/VP1/VP1Plugins/VP1GeometryPlugin/CMakeLists.txt +++ b/graphics/VP1/VP1Plugins/VP1GeometryPlugin/CMakeLists.txt @@ -6,33 +6,22 @@ atlas_subdir( VP1GeometryPlugin ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - graphics/VP1/VP1Systems/VP1GeometrySystems - graphics/VP1/VP1Systems/VP1GuideLineSystems ) - -# Install files from the package: -atlas_install_headers( VP1GeometryPlugin ) +atlas_depends_on_subdirs( + PUBLIC + graphics/VP1/VP1Base + PRIVATE + graphics/VP1/VP1Systems/VP1GeometrySystems + graphics/VP1/VP1Systems/VP1GuideLineSystems ) # External dependencies: -find_package( Qt5 COMPONENTS Core OpenGL Gui Widgets HINTS ${QT5_ROOT} ) -find_package( SoQt ) -find_package( Coin3D ) +find_package( Qt5 COMPONENTS Core ) -# Generate UI files automatically: -set( CMAKE_AUTOUIC TRUE ) # Generate MOC files automatically: set( CMAKE_AUTOMOC TRUE ) -# get the package name into the variable 'pkgName', to be used below -atlas_get_package_name( pkgName ) - - # Build the library. -atlas_add_library( ${pkgName} ${pkgName}/*.h src/*.cxx src/*.qrc - PUBLIC_HEADERS ${pkgName} - INCLUDE_DIRS ${SOQT_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ${QT5_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS tmpqt_extraheaders/ ${CMAKE_CURRENT_BINARY_DIR} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets ${SOQT_LIBRARIES} ${COIN3D_LIBRARIES} GeoPrimitives - PRIVATE_LINK_LIBRARIES VP1GuideLineSystems VP1GeometrySystems -) - +atlas_add_library( VP1GeometryPlugin + VP1GeometryPlugin/*.h src/*.cxx + PUBLIC_HEADERS VP1GeometryPlugin + LINK_LIBRARIES Qt5::Core VP1Base + PRIVATE_LINK_LIBRARIES VP1GuideLineSystems VP1GeometrySystems ) diff --git a/graphics/VP1/VP1Systems/VP1AODSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1AODSystems/CMakeLists.txt index 99cac9e432b5..177839333936 100644 --- a/graphics/VP1/VP1Systems/VP1AODSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1AODSystems/CMakeLists.txt @@ -1,4 +1,3 @@ -# $Id: CMakeLists.txt 732142 2016-03-24 11:36:39Z krasznaa $ ################################################################################ # Package: VP1AODSystems ################################################################################ @@ -28,10 +27,11 @@ atlas_depends_on_subdirs( # External dependencies: find_package( Coin3D ) -find_package( Qt5 COMPONENTS Core Gui Widgets HINTS ${QT5_ROOT} ) +find_package( Qt5 COMPONENTS Core Gui Widgets ) # Generate UI files automatically: -# Note: add the "Widgets" component to "find_package( Qt5 ...)" if you have UI files, otherwise UIC, even if CMAKE_AUTOUIC is set to ON, is not run +# Note: add the "Widgets" component to "find_package( Qt5 ...)" if you have UI +# files, otherwise UIC, even if CMAKE_AUTOUIC is set to ON, is not run set( CMAKE_AUTOUIC TRUE ) # Generate MOC files automatically: set( CMAKE_AUTOMOC TRUE ) diff --git a/graphics/VP1/VP1Utils/CMakeLists.txt b/graphics/VP1/VP1Utils/CMakeLists.txt index 09ebbed35dac..7af012dbc4b2 100644 --- a/graphics/VP1/VP1Utils/CMakeLists.txt +++ b/graphics/VP1/VP1Utils/CMakeLists.txt @@ -42,14 +42,9 @@ find_package( CLHEP ) find_package( Coin3D ) find_package( Eigen ) find_package( HepPDT ) -find_package( Qt5 COMPONENTS Core HINTS ${QT5_ROOT} ) +find_package( Qt5 COMPONENTS Core ) find_package( GeoModel ) -# CLHEP definitions: -add_definitions( -DCLHEP_MAX_MIN_DEFINED - -DCLHEP_ABS_DEFINED - -DCLHEP_SQR_DEFINED ) - # Generate MOC files automatically: set( CMAKE_AUTOMOC TRUE ) @@ -59,6 +54,7 @@ atlas_add_library( VP1Utils VP1Utils/*.h src/*.cxx src/*.cpp INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} + DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} EventPrimitives GaudiKernel VP1Base StoreGateLib SGtests AthDSoCallBacks MuonIdHelpersLib GeoPrimitives Qt5::Core diff --git a/graphics/VP1/VP1UtilsBase/CMakeLists.txt b/graphics/VP1/VP1UtilsBase/CMakeLists.txt index 93b7084bc012..160aa3359f69 100644 --- a/graphics/VP1/VP1UtilsBase/CMakeLists.txt +++ b/graphics/VP1/VP1UtilsBase/CMakeLists.txt @@ -8,9 +8,10 @@ atlas_subdir( VP1UtilsBase ) # External dependencies: -find_package( Qt5 COMPONENTS Core HINTS ${QT5_ROOT} ) +find_package( Qt5 COMPONENTS Core ) # Component(s) in the package: -atlas_add_library( VP1UtilsBase src/*.cxx +atlas_add_library( VP1UtilsBase + VP1UtilsBase/*.h src/*.cxx PUBLIC_HEADERS VP1UtilsBase PRIVATE_LINK_LIBRARIES Qt5::Core ) -- GitLab From 9f8662cddd86636075932fc58335407c6a63378e Mon Sep 17 00:00:00 2001 From: MihaMuskinja <miha.muskinja@gmail.com> Date: Wed, 9 Jan 2019 19:12:34 +0100 Subject: [PATCH 119/192] PreStepPoint quantities in StepHistogramTool. Manualy sweeped into master. --- .../G4DebuggingTools/src/StepHistogram.cxx | 66 ++++++++++++++----- .../G4DebuggingTools/src/StepHistogram.h | 6 +- .../src/StepHistogramTool.cxx | 6 +- 3 files changed, 60 insertions(+), 18 deletions(-) diff --git a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.cxx b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.cxx index 8c603afaccf2..31120d091e6c 100644 --- a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.cxx +++ b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.cxx @@ -15,6 +15,7 @@ #include "SimHelpers/ServiceAccessor.h" #include "G4Step.hh" +#include "G4StepPoint.hh" #include "G4VProcess.hh" #include <iostream> @@ -29,22 +30,42 @@ namespace G4UA{ void StepHistogram::UserSteppingAction(const G4Step * aStep){ + // track G4Track *tr = aStep->GetTrack(); - G4ThreeVector myPos = aStep->GetPostStepPoint()->GetPosition(); + // pre-step point + G4StepPoint *PreStepPoint = aStep->GetPreStepPoint(); + + // post-step point + G4StepPoint *PostStepPoint = aStep->GetPostStepPoint(); + + // pre-step kinetic energy + double stepKinetic = PreStepPoint->GetKineticEnergy(); + + // post-step kinetic energy + double postStepKinetic = PostStepPoint->GetKineticEnergy(); + + // pre-step position + G4ThreeVector myPos = PreStepPoint->GetPosition(); + + // particle name G4String particleName = "nucleus"; if (!(tr->GetDefinition()->GetParticleType() == "nucleus")) particleName = G4DebuggingHelpers::ClassifyParticle(tr->GetParticleDefinition()); - G4String volumeName = tr->GetVolume()->GetName(); + // pre-step volume + G4String volumeName = PreStepPoint->GetPhysicalVolume()->GetName(); volumeName = G4DebuggingHelpers::ClassifyVolume(volumeName); - G4String materialName = tr->GetMaterial()->GetName(); + // pre-step material + G4String materialName = PreStepPoint->GetMaterial()->GetName(); materialName = G4DebuggingHelpers::ClassifyMaterial(materialName); - G4String processName = aStep->GetPostStepPoint()->GetProcessDefinedStep() ? - aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() : "Unknown"; + // process name (uses post-step point) + G4String processName = PostStepPoint->GetProcessDefinedStep() ? + PostStepPoint->GetProcessDefinedStep()->GetProcessName() : "Unknown"; + // secondaries const std::vector<const G4Track*>* secondaries = aStep->GetSecondaryInCurrentStep(); // 2D map @@ -75,13 +96,23 @@ namespace G4UA{ // step kinetic energy InitializeFillHistogram(m_report.histoMapMap_vol_stepKineticEnergy, "vol_stepKineticEnergy", particleName, volumeName, - 1000, -9, 7, log10(tr->GetKineticEnergy()), 1.); + 1000, -9, 7, log10(stepKinetic), 1.); InitializeFillHistogram(m_report.histoMapMap_mat_stepKineticEnergy, "mat_stepKineticEnergy", particleName, materialName, - 1000, -9, 7, log10(tr->GetKineticEnergy()), 1.); + 1000, -9, 7, log10(stepKinetic), 1.); InitializeFillHistogram(m_report.histoMapMap_prc_stepKineticEnergy, "prc_stepKineticEnergy", particleName, processName, - 1000, -9, 7, log10(tr->GetKineticEnergy()), 1.); - InitializeFillHistogram(m_report.histoMapMap_stepSecondaryKinetic, "stepKineticEnergy", particleName, "AllATLAS", - 1000, -9, 7, log10(tr->GetKineticEnergy()), 1.); + 1000, -9, 7, log10(stepKinetic), 1.); + InitializeFillHistogram(m_report.histoMapMap_stepKinetic, "stepKineticEnergy", particleName, "AllATLAS", + 1000, -9, 7, log10(stepKinetic), 1.); + + // post step kinetic energy + InitializeFillHistogram(m_report.histoMapMap_vol_postStepKineticEnergy, "vol_postStepKineticEnergy", particleName, volumeName, + 1000, -9, 7, log10(postStepKinetic), 1.); + InitializeFillHistogram(m_report.histoMapMap_mat_postStepKineticEnergy, "mat_postStepKineticEnergy", particleName, materialName, + 1000, -9, 7, log10(postStepKinetic), 1.); + InitializeFillHistogram(m_report.histoMapMap_prc_postStepKineticEnergy, "prc_postStepKineticEnergy", particleName, processName, + 1000, -9, 7, log10(postStepKinetic), 1.); + InitializeFillHistogram(m_report.histoMapMap_postStepKinetic, "postStepKineticEnergy", particleName, "AllATLAS", + 1000, -9, 7, log10(postStepKinetic), 1.); // step energy deposit InitializeFillHistogram(m_report.histoMapMap_vol_stepEnergyDeposit, "vol_stepEnergyDeposit", particleName, volumeName, @@ -117,13 +148,12 @@ namespace G4UA{ // first step (after initial step) if (tr->GetCurrentStepNumber()==1) { - m_initialKineticEnergyOfStep = tr->GetKineticEnergy(); - m_initialKineticEnergyOfStep += aStep->GetTotalEnergyDeposit(); - for (const auto &track : *secondaries) { - m_initialKineticEnergyOfStep += track->GetKineticEnergy(); - } + // initial kinetic energy + m_initialKineticEnergyOfStep = stepKinetic; + // save track ID for checking if we later have the same track m_trackID = tr->GetTrackID(); + // initial energy InitializeFillHistogram(m_report.histoMapMap_InitialE, "InitialE", particleName, "AllATLAS", 1000, -9, 7, log10(m_initialKineticEnergyOfStep), 1.0); @@ -229,6 +259,7 @@ namespace G4UA{ void StepHistogram::Report::merge(const Report & rep) { mergeMaps(histoMapMap_vol_stepSize, rep.histoMapMap_vol_stepSize); mergeMaps(histoMapMap_vol_stepKineticEnergy, rep.histoMapMap_vol_stepKineticEnergy); + mergeMaps(histoMapMap_vol_postStepKineticEnergy, rep.histoMapMap_vol_postStepKineticEnergy); mergeMaps(histoMapMap_vol_stepPseudorapidity, rep.histoMapMap_vol_stepPseudorapidity); mergeMaps(histoMapMap_vol_stepEnergyDeposit, rep.histoMapMap_vol_stepEnergyDeposit); mergeMaps(histoMapMap_vol_stepEnergyNonIonDeposit, rep.histoMapMap_vol_stepEnergyNonIonDeposit); @@ -236,6 +267,7 @@ namespace G4UA{ mergeMaps(histoMapMap_mat_stepSize, rep.histoMapMap_mat_stepSize); mergeMaps(histoMapMap_mat_stepKineticEnergy, rep.histoMapMap_mat_stepKineticEnergy); + mergeMaps(histoMapMap_mat_postStepKineticEnergy, rep.histoMapMap_mat_postStepKineticEnergy); mergeMaps(histoMapMap_mat_stepPseudorapidity, rep.histoMapMap_mat_stepPseudorapidity); mergeMaps(histoMapMap_mat_stepEnergyDeposit, rep.histoMapMap_mat_stepEnergyDeposit); mergeMaps(histoMapMap_mat_stepEnergyNonIonDeposit, rep.histoMapMap_mat_stepEnergyNonIonDeposit); @@ -243,6 +275,7 @@ namespace G4UA{ mergeMaps(histoMapMap_prc_stepSize, rep.histoMapMap_prc_stepSize); mergeMaps(histoMapMap_prc_stepKineticEnergy, rep.histoMapMap_prc_stepKineticEnergy); + mergeMaps(histoMapMap_prc_postStepKineticEnergy, rep.histoMapMap_prc_postStepKineticEnergy); mergeMaps(histoMapMap_prc_stepPseudorapidity, rep.histoMapMap_prc_stepPseudorapidity); mergeMaps(histoMapMap_prc_stepEnergyDeposit, rep.histoMapMap_prc_stepEnergyDeposit); mergeMaps(histoMapMap_prc_stepEnergyNonIonDeposit, rep.histoMapMap_prc_stepEnergyNonIonDeposit); @@ -251,7 +284,8 @@ namespace G4UA{ mergeMaps(histoMapMap_numberOfSteps, rep.histoMapMap_numberOfSteps); mergeMaps(histoMapMap_numberOfStepsPerInitialE, rep.histoMapMap_numberOfStepsPerInitialE); mergeMaps(histoMapMap_InitialE, rep.histoMapMap_InitialE); - mergeMaps(histoMapMap_stepSecondaryKinetic, rep.histoMapMap_stepSecondaryKinetic); + mergeMaps(histoMapMap_stepKinetic, rep.histoMapMap_stepKinetic); + mergeMaps(histoMapMap_postStepKinetic, rep.histoMapMap_postStepKinetic); mergeMaps(histoMapMap2D_vol_RZ, rep.histoMapMap2D_vol_RZ); mergeMaps(histoMapMap2D_mat_RZ, rep.histoMapMap2D_mat_RZ); diff --git a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.h b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.h index 9414b971e623..9c0206d131d8 100644 --- a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.h +++ b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogram.h @@ -44,6 +44,7 @@ namespace G4UA{ // distributions per volume per particle type HistoMapMap_t histoMapMap_vol_stepSize; HistoMapMap_t histoMapMap_vol_stepKineticEnergy; + HistoMapMap_t histoMapMap_vol_postStepKineticEnergy; HistoMapMap_t histoMapMap_vol_stepPseudorapidity; HistoMapMap_t histoMapMap_vol_stepEnergyDeposit; HistoMapMap_t histoMapMap_vol_stepEnergyNonIonDeposit; @@ -52,6 +53,7 @@ namespace G4UA{ // distributions per material per particle type HistoMapMap_t histoMapMap_mat_stepSize; HistoMapMap_t histoMapMap_mat_stepKineticEnergy; + HistoMapMap_t histoMapMap_mat_postStepKineticEnergy; HistoMapMap_t histoMapMap_mat_stepPseudorapidity; HistoMapMap_t histoMapMap_mat_stepEnergyDeposit; HistoMapMap_t histoMapMap_mat_stepEnergyNonIonDeposit; @@ -60,6 +62,7 @@ namespace G4UA{ // distributions per process per particle type HistoMapMap_t histoMapMap_prc_stepSize; HistoMapMap_t histoMapMap_prc_stepKineticEnergy; + HistoMapMap_t histoMapMap_prc_postStepKineticEnergy; HistoMapMap_t histoMapMap_prc_stepPseudorapidity; HistoMapMap_t histoMapMap_prc_stepEnergyDeposit; HistoMapMap_t histoMapMap_prc_stepEnergyNonIonDeposit; @@ -69,7 +72,8 @@ namespace G4UA{ HistoMapMap_t histoMapMap_numberOfSteps; HistoMapMap_t histoMapMap_numberOfStepsPerInitialE; HistoMapMap_t histoMapMap_InitialE; - HistoMapMap_t histoMapMap_stepSecondaryKinetic; + HistoMapMap_t histoMapMap_stepKinetic; + HistoMapMap_t histoMapMap_postStepKinetic; // 2D maps HistoMapMap_t histoMapMap2D_vol_RZ; diff --git a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogramTool.cxx b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogramTool.cxx index 4ba1e34d061b..2b31f9881bcc 100644 --- a/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogramTool.cxx +++ b/Simulation/G4Utilities/G4DebuggingTools/src/StepHistogramTool.cxx @@ -61,6 +61,7 @@ namespace G4UA{ if (m_histSvc) { BookHistograms(report.histoMapMap_vol_stepSize, "stepLength/", "volumes/"); BookHistograms(report.histoMapMap_vol_stepKineticEnergy, "stepKineticEnergy/", "volumes/"); + BookHistograms(report.histoMapMap_vol_postStepKineticEnergy, "postStepKineticEnergy/", "volumes/"); BookHistograms(report.histoMapMap_vol_stepPseudorapidity, "stepPseudorapidity/", "volumes/"); BookHistograms(report.histoMapMap_vol_stepEnergyDeposit, "stepEnergyDeposit/", "volumes/"); BookHistograms(report.histoMapMap_vol_stepEnergyNonIonDeposit, "stepEnergyNonIonDeposit/", "volumes/"); @@ -69,6 +70,7 @@ namespace G4UA{ BookHistograms(report.histoMapMap_mat_stepSize, "stepLength/", "materials/"); BookHistograms(report.histoMapMap_mat_stepKineticEnergy, "stepKineticEnergy/", "materials/"); BookHistograms(report.histoMapMap_mat_stepPseudorapidity, "stepPseudorapidity/", "materials/"); + BookHistograms(report.histoMapMap_mat_postStepKineticEnergy, "postStepKineticEnergy/", "materials/"); BookHistograms(report.histoMapMap_mat_stepEnergyDeposit, "stepEnergyDeposit/", "materials/"); BookHistograms(report.histoMapMap_mat_stepEnergyNonIonDeposit, "stepEnergyNonIonDeposit/", "materials/"); BookHistograms(report.histoMapMap_mat_stepSecondaryKinetic, "stepSecondaryKinetic/", "materials/"); @@ -76,6 +78,7 @@ namespace G4UA{ BookHistograms(report.histoMapMap_prc_stepSize, "stepLength/", "processes/"); BookHistograms(report.histoMapMap_prc_stepKineticEnergy, "stepKineticEnergy/", "processes/"); BookHistograms(report.histoMapMap_prc_stepPseudorapidity, "stepPseudorapidity/", "processes/"); + BookHistograms(report.histoMapMap_prc_postStepKineticEnergy, "postStepKineticEnergy/", "processes/"); BookHistograms(report.histoMapMap_prc_stepEnergyDeposit, "stepEnergyDeposit/", "processes/"); BookHistograms(report.histoMapMap_prc_stepEnergyNonIonDeposit, "stepEnergyNonIonDeposit/", "processes/"); BookHistograms(report.histoMapMap_prc_stepSecondaryKinetic, "stepSecondaryKinetic/", "processes/"); @@ -84,7 +87,8 @@ namespace G4UA{ BookHistograms(report.histoMapMap_numberOfSteps, "numberOfSteps/", "nSteps/"); BookHistograms(report.histoMapMap_numberOfStepsPerInitialE, "numberOfStepsPerInitialE/", "nSteps/"); BookHistograms(report.histoMapMap_InitialE, "InitialE/", "nSteps/"); - BookHistograms(report.histoMapMap_stepSecondaryKinetic, "stepKineticEnergy/", "nSteps/"); + BookHistograms(report.histoMapMap_stepKinetic, "stepKineticEnergy/", "nSteps/"); + BookHistograms(report.histoMapMap_postStepKinetic, "postStepKineticEnergy/", "nSteps/"); } if (m_config.do2DHistograms) { -- GitLab From 1bf6f4113b3d39e9132ed5349f59ac2b56579279 Mon Sep 17 00:00:00 2001 From: MihaMuskinja <miha.muskinja@gmail.com> Date: Tue, 18 Dec 2018 17:48:15 +0100 Subject: [PATCH 120/192] Adds an option to turn on range cuts for gamma processes (conv, phot, compt). Manual sweep into master. --- Simulation/G4Atlas/G4AtlasApps/python/callbacks.py | 6 ++++++ .../share/g4/preInclude.GammaRangeCuts.py | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 Simulation/SimulationJobOptions/share/g4/preInclude.GammaRangeCuts.py diff --git a/Simulation/G4Atlas/G4AtlasApps/python/callbacks.py b/Simulation/G4Atlas/G4AtlasApps/python/callbacks.py index ed46cfb5f4a9..5bfea1d0e246 100644 --- a/Simulation/G4Atlas/G4AtlasApps/python/callbacks.py +++ b/Simulation/G4Atlas/G4AtlasApps/python/callbacks.py @@ -51,3 +51,9 @@ def add_EnergyConservationTest(): # Enable the energy conservation test action simFlags.OptionalUserActionList.addAction( 'G4UA::EnergyConservationTestTool') + +## Range cuts for gamma processes (conv, phot, compt) +## these are off by default in Geant4 +def turn_on_gamma_range_cuts(): + from G4AtlasApps.SimFlags import simFlags + simFlags.G4Commands += ['/process/em/applyCuts true'] diff --git a/Simulation/SimulationJobOptions/share/g4/preInclude.GammaRangeCuts.py b/Simulation/SimulationJobOptions/share/g4/preInclude.GammaRangeCuts.py new file mode 100644 index 000000000000..e0b028bf53a5 --- /dev/null +++ b/Simulation/SimulationJobOptions/share/g4/preInclude.GammaRangeCuts.py @@ -0,0 +1,4 @@ +# Turn on range cuts for gamma processes (conv, phot, compt) + +from G4AtlasApps import callbacks +callbacks.turn_on_gamma_range_cuts() -- GitLab From c73aee33b83188302e8d5468d637196587e09bd9 Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Fri, 25 Jan 2019 13:30:03 +0100 Subject: [PATCH 121/192] Fix ATLASDQ-663 --- .../DataQualityUtils/python/handimod.py | 30 +++++++++---------- .../DataQualityUtils/src/HanOutputFile.cxx | 15 ++++++---- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/DataQuality/DataQualityUtils/python/handimod.py b/DataQuality/DataQualityUtils/python/handimod.py index d0f2c9ac9da1..e12dada92626 100644 --- a/DataQuality/DataQualityUtils/python/handimod.py +++ b/DataQuality/DataQualityUtils/python/handimod.py @@ -96,15 +96,15 @@ def handiWithComparisons( name, resultsFile, htmlDir, runlistLoc, compare, brows if (browserMenu): makeAllDirsXml( htmlDir, name, s, number, resultsFile) - list, namelist = makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,allDirsScriptDir ) + dirlist, namelist = makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,allDirsScriptDir ) else: - list, namelist = makeAllDirsFile( htmlDir, name, s, number, resultsFile ) + dirlist, namelist = makeAllDirsFile( htmlDir, name, s, number, resultsFile ) - for x in range(0,len(list)): - makeSubDirFile( htmlDir, name, s, number, namelist[x], list[x], runlistLoc, compare, allDirsScriptDir ) - makeColorFile( htmlDir, name, s, number, namelist[x], list[x], 'Red', runlistLoc, compare, allDirsScriptDir) - makeColorFile( htmlDir, name, s, number, namelist[x], list[x], 'Yellow', runlistLoc, compare, allDirsScriptDir) - makeColorFile( htmlDir, name, s, number, namelist[x], list[x], 'Green', runlistLoc, compare, allDirsScriptDir ) + for x in range(0,len(dirlist)): + makeSubDirFile( htmlDir, name, s, number, namelist[x], dirlist[x], runlistLoc, compare, allDirsScriptDir ) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Red', runlistLoc, compare, allDirsScriptDir) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Yellow', runlistLoc, compare, allDirsScriptDir) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Green', runlistLoc, compare, allDirsScriptDir ) makeCSSFile( htmlDir,"", namelist[x] ) makeCSSFile( htmlDir,"", "." ) @@ -180,8 +180,8 @@ def makeAllDirsFile( htmlDir, name, s, number, resultsFile ): # initial number of white spaces, will change to positive value once we go over the lines spaces=-1 - # list = list with directories (the line number) that contain histos - list=[] + # dirlist = list with directories (the line number) that contain histos + dirlist=[] # namelist = list with corresponding direcotory names namelist=[] @@ -224,7 +224,7 @@ def makeAllDirsFile( htmlDir, name, s, number, resultsFile ): else: g.write('<a href="'+namedir +'/index.html" >'+shortNameDir+ ':</a>') g.write(' <font class="'+ sp[1]+'">'+ sp[1] + '</font>\n') - list.append(x) + dirlist.append(x) namelist.append(namedir) else: g.write(shortNameDir+ ':') @@ -240,7 +240,7 @@ def makeAllDirsFile( htmlDir, name, s, number, resultsFile ): g.write('</font></td>\n</tr>\n</table>') g.write('</body>\n</html>\n') g.close() - return list, namelist + return dirlist, namelist def makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,AllDirsScriptDir ): @@ -268,8 +268,8 @@ def makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,AllDirsScriptD g.write('</body>\n</html>\n') g.close() - # list = list with directories (the line number) that contain histos - list=[] + # dirlist = list with directories (the line number) that contain histos + dirlist=[] # namelist = list with corresponding direcotory names namelist=[] @@ -282,10 +282,10 @@ def makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,AllDirsScriptD if ( (x<number-1) and (s[x+1].rsplit())[3]=='ass' ): # check that dir contains histos if namedir=='<top_level>': namedir = '.' - list.append(x) + dirlist.append(x) namelist.append(namedir) g.close() - return list, namelist + return dirlist, namelist def makeSubDirFile( htmlDir, name, s, number, subname, assessIndex, runlistLoc,compare, AllDirsScriptDir): diff --git a/DataQuality/DataQualityUtils/src/HanOutputFile.cxx b/DataQuality/DataQualityUtils/src/HanOutputFile.cxx index 120c13f93ff5..270e7e2207ae 100644 --- a/DataQuality/DataQualityUtils/src/HanOutputFile.cxx +++ b/DataQuality/DataQualityUtils/src/HanOutputFile.cxx @@ -1390,7 +1390,9 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou displayExtra(myC,display); myC->RedrawAxis(); - ratioplot(myC ,h,hRef,display); //RatioPad + if (hRef) { + ratioplot(myC ,h,hRef,display); //RatioPad + } myC->cd();//might be unnecessary polynomial(myC,display,h); //draw polynome for TH1 @@ -2125,13 +2127,16 @@ void HanOutputFile::ratioplot (TCanvas* myC_upperpad ,TH1* h,TH1* hRef,std::stri TProfile* ph = dynamic_cast<TProfile*>( h ); TH1F *clonehist ; TH1F *clonehistref; - if( ph != 0 ) {//profile - std::cout<<"it is a TProfile\n"; + //transform if profiles + if( ph != 0 ) { clonehist=(TH1F*)ph->ProjectionX(); - clonehistref=(TH1F*)phRef->ProjectionX(); - }else{ + } else { clonehist=(TH1F*)h->Clone(); clonehist->Sumw2(); + } + if ( phRef != 0 ) { + clonehistref=(TH1F*)phRef->ProjectionX(); + }else{ clonehistref=(TH1F*)hRef->Clone(); clonehistref->Sumw2(); } -- GitLab From 6178ac8fc8f24a7cda68a5a0b86445c82154aebe Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Mon, 21 Jan 2019 06:29:17 +0100 Subject: [PATCH 122/192] EventUtils: Remove use of IAsgSelection interfaces. For ParticleSelectionAlg, the SelectionToolList and SelectionWithPVTooList properties are not used anywhere in the repository; furthermore, they rely on interfaces marked as deprecated. Remove them. --- .../EventUtils/src/ParticleSelectionAlg.cxx | 70 +----------------- .../EventUtils/src/ParticleSelectionAlg.h | 10 +-- .../EventUtils/src/ParticleSelectionAlg.icc | 74 +------------------ 3 files changed, 5 insertions(+), 149 deletions(-) diff --git a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.cxx b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.cxx index 8b1ed66e7462..71aa8ee757f8 100644 --- a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.cxx +++ b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.cxx @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ParticleSelectionAlg.cxx @@ -68,8 +68,6 @@ ParticleSelectionAlg::ParticleSelectionAlg( const std::string& name, ISvcLocator* pSvcLocator ) : ::AthAnalysisAlgorithm( name, pSvcLocator ), - m_selTools(), // makes these tools public - m_selWVtxTools(), // makes these tools public m_evtInfoName("EventInfo"), m_inPrimVtxCont("PrimaryVertices"), m_inCollKey(""), @@ -99,8 +97,6 @@ ParticleSelectionAlg::ParticleSelectionAlg( const std::string& name, declareProperty("OutputContainerOwnershipPolicy", m_outOwnPolicyName, "Defines the ownership policy of the output container (default: 'OWN_ELEMENTS'; also allowed: 'VIEW_ELEMENTS')"); - declareProperty("SelectionToolList", m_selTools, "The list of IAsgSelectionTools"); - declareProperty("SelectionWithPVToolList", m_selWVtxTools, "The list of IAsgSelectionWithVertexTools"); declareProperty("Selection", m_selection, "The selection string that defines which xAOD::IParticles to select from the container"); @@ -159,10 +155,6 @@ StatusCode ParticleSelectionAlg::initialize() return StatusCode::FAILURE; } - // Retrieve all tools - ATH_CHECK( m_selTools.retrieve() ); - ATH_CHECK( m_selWVtxTools.retrieve() ); - ATH_MSG_DEBUG ( "==> done with initialize " << name() << "..." ); return StatusCode::SUCCESS; } @@ -173,10 +165,6 @@ StatusCode ParticleSelectionAlg::finalize() { ATH_MSG_DEBUG ("Finalizing " << name() << "..."); - // Release all tools and services - ATH_CHECK( m_selTools.release() ); - ATH_CHECK( m_selWVtxTools.release() ); - // Clean up the memory if (m_parser) { delete m_parser; @@ -231,62 +219,6 @@ StatusCode ParticleSelectionAlg::beginRun() ATH_MSG_VERBOSE( "Recorded xAOD::CutBookkeeperContainer " << m_cutBKCName.value() << "Aux." ); } - //------------- for the AsgSelectionTools -------------- - // Now, register one CutBookkeeper per cut that will be applied. - // For each of the registered tools, get the TAccept and ask it for all known cuts. - for ( std::size_t toolIdx=0; toolIdx < m_selTools.size(); ++toolIdx ){ - const auto& tool = m_selTools[toolIdx]; - // Fill the index bookkeeping at what index in the CutBookkeeperContainer - // the CutBookkeepers for this tool start. - m_selToolIdxOffset.push_back( cutBKCont->size() ); - // Get some needed quantities - const std::string toolName = tool->name(); - const Root::TAccept& tAccept = tool->getTAccept(); - const unsigned int nCuts = tAccept.getNCuts(); - for ( unsigned int iCut=0; iCut<nCuts; ++iCut ){ - // Get the name and description of this cut - const std::string cutName = (tAccept.getCutName(iCut)).Data(); - const std::string cutDescr = (tAccept.getCutDescription(iCut)).Data(); - // Create a new xAOD::CutBookkeeper and add it to the container - xAOD::CutBookkeeper* cutBK = new xAOD::CutBookkeeper(); - cutBKCont->push_back(cutBK); - // Now, set its properties - cutBK->setName(toolName+"_"+cutName); - cutBK->setDescription(cutDescr); - cutBK->setCutLogic(xAOD::CutBookkeeper::CutLogic::REQUIRE); // Each cut must be passed, thus REQUIRE, i.e, logical AND - cutBK->setInputStream(inputStreamName); - cutBK->setCycle(maxInputCycle); - } - } - - //------------- for the AsgSelectionWithVertexTools -------------- - // Now, register one CutBookkeeper per cut that will be applied. - // For each of the registered tools, get the TAccept and ask it for all known cuts. - for ( std::size_t toolIdx=0; toolIdx < m_selWVtxTools.size(); ++toolIdx ){ - const auto& tool = m_selWVtxTools[toolIdx]; - // Fill the index bookkeeping at what index in the CutBookkeeperContainer - // the CutBookkeepers for this tool start. - m_selWPVToolIdxOffset.push_back( cutBKCont->size() ); - // Get some needed quantities - const std::string toolName = tool->name(); - const Root::TAccept& tAccept = tool->getTAccept(); - const unsigned int nCuts = tAccept.getNCuts(); - for ( unsigned int iCut=0; iCut<nCuts; ++iCut ){ - // Get the name and description of this cut - const std::string cutName = (tAccept.getCutName(iCut)).Data(); - const std::string cutDescr = (tAccept.getCutDescription(iCut)).Data(); - // Create a new xAOD::CutBookkeeper and add it to the container - xAOD::CutBookkeeper* cutBK = new xAOD::CutBookkeeper(); - cutBKCont->push_back(cutBK); - // Now, set its properties - cutBK->setName(toolName+"_"+cutName); - cutBK->setDescription(cutDescr); - cutBK->setCutLogic(xAOD::CutBookkeeper::CutLogic::REQUIRE); // Each cut must be passed, thus REQUIRE, i.e, logical AND - cutBK->setInputStream(inputStreamName); - cutBK->setCycle(maxInputCycle); - } - } - //------------- for the ExpressionParsing in this algorithm -------------- if ( !(m_selection.value().empty()) ){ // Create a new xAOD::CutBookkeeper and add it to the container diff --git a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.h b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.h index e332ae73b3c1..bcc5633c1f60 100644 --- a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.h +++ b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.h @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ParticleSelectionAlg.h @@ -22,8 +22,6 @@ #include "AthAnalysisBaseComps/AthAnalysisAlgorithm.h" #include "xAODBase/IParticleContainer.h" //#include "TrigDecisionTool/TrigDecisionTool.h" -#include "PATCore/IAsgSelectionTool.h" -#include "PATCore/IAsgSelectionWithVertexTool.h" // // Forward declarations // namespace Trig{ @@ -78,12 +76,6 @@ class ParticleSelectionAlg // Private data: /////////////////////////////////////////////////////////////////// private: - /// The list of IAsgSelectionTools - ToolHandleArray<IAsgSelectionTool> m_selTools; - - /// The list of IAsgSelectionWithVertexTools - ToolHandleArray<IAsgSelectionWithVertexTool> m_selWVtxTools; - /// Name of the EventInfo object StringProperty m_evtInfoName; diff --git a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.icc b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.icc index 7e88f764b4e9..84370ef7b9c8 100644 --- a/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.icc +++ b/PhysicsAnalysis/AnalysisCommon/EventUtils/src/ParticleSelectionAlg.icc @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -12,7 +12,8 @@ #include "xAODTracking/VertexContainer.h" #include "xAODTracking/Vertex.h" #include "xAODCutFlow/CutBookkeeperContainer.h" -#include "PATCore/TAccept.h" +#include "PATCore/AcceptInfo.h" +#include "PATCore/AcceptData.h" @@ -81,75 +82,6 @@ StatusCode ParticleSelectionAlg::selectParticles(const xAOD::IParticleContainer* // the remainder of the cuts will not even be tried bool passEverything = true; - //------------- for the AsgSelectionTools -------------- - // Loop over all selection tools - ATH_MSG_VERBOSE("Loop over all selection tools"); - for ( std::size_t toolIdx=0; toolIdx < m_selTools.size(); ++toolIdx ){ - if (passEverything){ - ATH_MSG_VERBOSE("Now going to try AsgSelectionTools number " << toolIdx ); - const Root::TAccept& tAccept = m_selTools[toolIdx]->accept(part); - if (!m_doCutFlow){ passEverything &= static_cast<bool>(tAccept); } - else { - const std::size_t cbkStartIdx = m_selToolIdxOffset[toolIdx]; - const unsigned int nCuts = tAccept.getNCuts(); - for ( unsigned int iCut=0; iCut<nCuts; ++iCut ){ - passEverything &= tAccept.getCutResult(iCut); - if (passEverything){ - const std::size_t currentCBKIdx = cbkStartIdx + iCut; - xAOD::CutBookkeeper* cutBK = cutBKCont->at(currentCBKIdx); - cutBK->addNAcceptedEvents(1); - cutBK->addSumOfEventWeights(eventWeight); - cutBK->addSumOfEventWeightsSquared(eventWeight*eventWeight); - } - } - } // Done doing detailed particle cut-flow for this tool - ATH_MSG_VERBOSE("AsgSelectionTools number " << toolIdx << " passed/failed: " << passEverything ); - } - } - - //------------- for the AsgSelectionWithVertexTools -------------- - // If we have at least one, we have to get the primary vertex - if ( m_selWVtxTools.size() ){ - // Get the primary vertex container - const xAOD::VertexContainer* primVtxCont = nullptr; - ATH_CHECK( evtStore()->retrieve( primVtxCont, m_inPrimVtxCont.value() ) ); - const xAOD::Vertex* primVtx = nullptr; - for ( const xAOD::Vertex* vtx : *primVtxCont ) { - // Get THE primary vertex - if ( vtx->vertexType() == xAOD::VxType::PriVtx ) { - primVtx = vtx; - break; - } - } - if ( !primVtx ) { - ATH_MSG_WARNING("Couldn't find a primary vertex in this event!"); - } - // Now, we go ahead and loop over the tools - ATH_MSG_VERBOSE("Loop over all selection with vertex tools: " << passEverything); - for ( std::size_t toolIdx=0; toolIdx < m_selWVtxTools.size(); ++toolIdx ){ - if (passEverything){ - ATH_MSG_VERBOSE("Now going to try AsgSelectionWithVertexTools number " << toolIdx ); - const Root::TAccept& tAccept = m_selWVtxTools[toolIdx]->accept(part,primVtx); - if (!m_doCutFlow){ passEverything &= static_cast<bool>(tAccept); } - else { - const std::size_t cbkStartIdx = m_selWPVToolIdxOffset[toolIdx]; - const unsigned int nCuts = tAccept.getNCuts(); - for ( unsigned int iCut=0; iCut<nCuts; ++iCut ){ - passEverything &= tAccept.getCutResult(iCut); - if (passEverything){ - const std::size_t currentCBKIdx = cbkStartIdx + iCut; - xAOD::CutBookkeeper* cutBK = cutBKCont->at(currentCBKIdx); - cutBK->addNAcceptedEvents(1); - cutBK->addSumOfEventWeights(eventWeight); - cutBK->addSumOfEventWeightsSquared(eventWeight*eventWeight); - } - } - } // Done doing detailed particle cut-flow for this tool - ATH_MSG_VERBOSE("AsgSelectionWithVertexTools number " << toolIdx << " passed/failed: " << passEverything ); - } - }// Done looping over the selection tools - } // End: if ( m_selWVtxTools.size() ){ - //------------- for the ExpressionParsing in this algorithm -------------- ATH_MSG_VERBOSE("Looking at expression parser result: " << passEverything); if ( passEverything && !(resultVec.empty()) ){ -- GitLab From 3f1c952aef0beb66154306afd675eaaaa50ce913 Mon Sep 17 00:00:00 2001 From: Siarhei Harkusha <Siarhei.Harkusha@cern.ch> Date: Fri, 25 Jan 2019 18:01:35 +0100 Subject: [PATCH 123/192] Refactor Tile bytestream converters for TMDB Digits for TMDB from bytestream are unpacked in the same time when Tile digits are requested and upacked and put directly into StoreGate ignoring standard conversion mechanism. The same is done in the case of unpacking raw channels for TMDB. This is not very good for AthenaMT (especially for scheduler). Tile bytestream converters have been refactored to unpack digits and raw channels for TMDB only if they are requested (needed) using standard conversion mechanism. Unit tests for reading Tile digits and raw channels from bytestream and the corresponding reference files have been updated accordingly. --- .../share/CaloOverlay_jobOptions.py | 2 + .../RecExCommon/share/BSRead_config.py | 2 + .../TileDigitsContByteStreamCnv.h | 6 +- .../TileRawChannelContByteStreamCnv.h | 6 +- .../share/TileDigitsContByteStreamCnv_test.py | 2 +- .../TileDigitsContByteStreamCnv_test.ref | 468 ++++++++--------- .../TileRawChannelContByteStreamCnv_test.py | 2 +- .../TileRawChannelContByteStreamCnv_test.ref | 496 +++++++++--------- .../src/TileDigitsContByteStreamCnv.cxx | 82 ++- .../src/TileRawChannelContByteStreamCnv.cxx | 93 ++-- 10 files changed, 564 insertions(+), 595 deletions(-) diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py index e58aa30bd89e..02948ad6e3f8 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py @@ -70,6 +70,8 @@ if DetFlags.overlay.Tile_on(): ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/TileDigitsCnt"] ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileL2Container/TileL2Cnt"] ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileLaserObject/TileLaserObj"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/MuRcvRawChCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/MuRcvDigitsCnt"] from TileRecUtils.TileDQstatusAlgDefault import TileDQstatusAlgDefault dqstatus = TileDQstatusAlgDefault() diff --git a/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py b/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py index 18bc3ea2e739..fb7780507e51 100644 --- a/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py +++ b/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py @@ -51,6 +51,8 @@ if DetFlags.readRDOBS.LAr_on(): if DetFlags.readRDOBS.Tile_on(): svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/TileRawChannelCnt", + "TileRawChannelContainer/MuRcvRawChCnt", + "TileDigitsContainer/MuRcvDigitsCnt", "TileL2Container/TileL2Cnt" ] diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h index 4f104533e856..3a30d56982a2 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileDigitsContByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ @@ -20,7 +20,6 @@ class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class ActiveStoreSvc; class MsgStream; class TileDigitsContainer; class TileDigitsContByteStreamTool; @@ -76,9 +75,6 @@ class TileDigitsContByteStreamCnv ServiceHandle<IByteStreamEventAccess> m_byteStreamEventAccess; ByteStreamCnvSvc* m_byteStreamCnvSvc; - /** Pointer to StoreGateSvc */ - ServiceHandle<ActiveStoreSvc> m_activeStore; - /** Pointer to IROBDataProviderSvc */ ServiceHandle<IROBDataProviderSvc> m_robSvc; diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h index 809cf89ee65b..0aea20c6954f 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h +++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef TILEBYTESTREAM_TILERAWCHANNELCONTRAWEVENTCNV_H @@ -20,7 +20,6 @@ class DataObject; class StatusCode; class IAddressCreator; class IByteStreamEventAccess; -class ActiveStoreSvc; class MsgStream; class TileRawChannelContainer; class TileRawChannelContByteStreamTool ; @@ -71,9 +70,6 @@ class TileRawChannelContByteStreamCnv ServiceHandle<IByteStreamEventAccess> m_byteStreamEventAccess; ByteStreamCnvSvc* m_byteStreamCnvSvc; - /** Pointer to StoreGateSvc */ - ServiceHandle<ActiveStoreSvc> m_activeStore; - /** Pointer to IROBDataProviderSvc */ ServiceHandle<IROBDataProviderSvc> m_robSvc; diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.py b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.py index f8ae82c3f016..440a51fcc38f 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.py +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.py @@ -65,6 +65,7 @@ globalflags.InputFormat.set_Value_and_Lock('bytestream') svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ 'TileDigitsContainer/TileDigitsCnt', + 'TileDigitsContainer/MuRcvDigitsCnt', ] include('TileConditions/TileConditions_jobOptions.py') @@ -92,7 +93,6 @@ topSequence += TileDigitsDumper ('TileDigitsCntDumper', Prefix = dumpdir + '/') topSequence += TileDigitsDumper ('MuRcvDigitsCntDumper', TileDigitsContainer = 'MuRcvDigitsCnt', - AltTileDigitsContainer = 'TileDigitsCnt', Prefix = dumpdir + '/') diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref index e224592ce7f2..323d644cd549 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 03:53:23 CET 2019 +Thu Jan 24 18:48:51 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [master/1229b7f595] -- built on [2019-01-24T1713] 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 +SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5453 configurables from 4 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:53:53 2019 + running on pcatl12 on Thu Jan 24 18:48:58 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -50,9 +50,9 @@ 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 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Frontier server at (serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host pcatl12.dyndns.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 @@ -86,6 +86,7 @@ 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 3073 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 792 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 @@ -104,7 +105,6 @@ 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 792 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -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= 28576Kb Time = 1.62S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.7S 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/2019-01-20T2256/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/2019-01-22T2257/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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. @@ -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) GeoModelKernelUnits::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.7S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.18S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -333,7 +333,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 3810 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3902 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-20T2256/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/2019-01-22T2257/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 @@ -641,23 +641,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.23 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.69 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.14 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.44 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.66 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.04 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s -IOVDbSvc INFO bytes in (( 2.55 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.42 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.55 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.67 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.46 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.36 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.41 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.40 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.40 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.92 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.71 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.43 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.06 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.30 ))s +IOVDbSvc INFO bytes in (( 6.10 ))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.25 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 2.30 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.72 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 5.38 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -667,27 +667,27 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.85 [s] Ave/Min/Max=0.425(+-0.395)/ 0.03/ 0.82 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max=0.0808(+- 0.24)/ 0/ 0.9 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 30.1 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 270 [ms] Ave/Min/Max= 135(+- 125)/ 10/ 260 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 340 [ms] Ave/Min/Max= 26.2(+- 77.3)/ 0/ 290 [ms] #= 13 +ChronoStatSvc INFO Time User : Tot= 7.86 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 03:54:55 CET 2019 +Thu Jan 24 18:49:21 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [master/1229b7f595] -- built on [2019-01-24T1713] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events Py:AlgScheduler INFO setting up AvalancheSchedulerSvc/AvalancheSchedulerSvc with 4 threads Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileDigitsContByteStreamCnv_test.py" -[?1034hSetGeometryVersion.py obtained major release version 22 +SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5453 configurables from 4 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 @@ -714,7 +714,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:55:27 2019 + running on pcatl12 on Thu Jan 24 18:49:27 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -729,9 +729,9 @@ AthenaPoolCnvSvc INFO Initializing AthenaPoolC 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 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Frontier server at (serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host pcatl12.dyndns.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 @@ -873,7 +873,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.64S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.68S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -885,7 +885,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -897,9 +897,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -934,7 +934,7 @@ GeoModelSvc.TileDetectorTool INFO Global positioning of b GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.86S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.16S 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 @@ -956,11 +956,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -969,7 +969,7 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2 TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 -ClassIDSvc 0 INFO getRegistryEntries: read 4075 CLIDRegistry entries for module ALL +ClassIDSvc 0 INFO getRegistryEntries: read 4167 CLIDRegistry entries for module ALL PyComponentMgr 0 INFO Initializing PyComponentMgr... Finalizer 0 INFO Initializing Finalizer... ClassIDSvc 0 INFO getRegistryEntries: read 53 CLIDRegistry entries for module ALL @@ -1023,7 +1023,6 @@ AvalancheSchedulerSvc 0 INFO Will attribute the follo o ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) required by Algorithm: * MuRcvDigitsCntDumper o ( 'TileDigitsContainer' , 'StoreGateSvc+TileDigitsCnt' ) required by Algorithm: - * MuRcvDigitsCntDumper * TileDigitsCntDumper PrecedenceSvc 0 INFO Assembling CF and DF task precedence rules PrecedenceRulesGraph 0 INFO CondSvc found. DF precedence rules will be augmented with 'Conditions' @@ -1083,12 +1082,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1097,194 +1096,190 @@ Domain[ROOT_All] 0 0 INFO RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -SGInputLoader 0 0 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed ToolSvc.TileDigitsContByteStreamTool 0 0 INFO Initializing TileDigitsContByteStreamTool AthenaHiveEventLoopMgr 1 1 INFO ===>>> start processing event #1129665, run #204073 on slot 1, 0 events processed so far <<<=== -SGInputLoader 1 1 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) AthenaHiveEventLoopMgr 2 2 INFO ===>>> start processing event #1131212, run #204073 on slot 2, 0 events processed so far <<<=== -SGInputLoader 2 2 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #1131086, run #204073 on slot 3, 0 events processed so far <<<=== -SGInputLoader 3 3 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 1 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 2 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 2 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131212, run #204073 on slot 2, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 3 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131086, run #204073 on slot 3, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #1132019, run #204073 on slot 3, 4 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130272, run #204073 on slot 0, 5 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131269, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 7 0 INFO ===>>> start processing event #1132019, run #204073 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 8 1 INFO ===>>> start processing event #1132092, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 3 INFO ===>>> start processing event #1130238, run #204073 on slot 3, 6 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130716, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 8 0 INFO ===>>> start processing event #1132092, run #204073 on slot 0, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #1130238, run #204073 on slot 1, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 10 2 INFO ===>>> start processing event #1134553, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 11 0 INFO ===>>> start processing event #1130999, run #204073 on slot 0, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 12 1 INFO ===>>> start processing event #1133461, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 3 INFO ===>>> start processing event #1131152, run #204073 on slot 3, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 2, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 0, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 1, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 0 INFO ===>>> start processing event #1130142, run #204073 on slot 0, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 15 1 INFO ===>>> start processing event #1132770, run #204073 on slot 1, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 16 2 INFO ===>>> start processing event #1132365, run #204073 on slot 2, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 3, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 0, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 1, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 17 0 INFO ===>>> start processing event #1136791, run #204073 on slot 0, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 18 1 INFO ===>>> start processing event #1133781, run #204073 on slot 1, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 19 3 INFO ===>>> start processing event #1132067, run #204073 on slot 3, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 2, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 0, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 20 0 INFO ===>>> start processing event #1138637, run #204073 on slot 0, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 21 2 INFO ===>>> start processing event #1139495, run #204073 on slot 2, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 1, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 3, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 22 1 INFO ===>>> start processing event #1140193, run #204073 on slot 1, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 23 3 INFO ===>>> start processing event #1142953, run #204073 on slot 3, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 0, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 2, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 24 0 INFO ===>>> start processing event #1139127, run #204073 on slot 0, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 1 INFO ===>>> start processing event #1141272, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 2 INFO ===>>> start processing event #1137117, run #204073 on slot 2, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 3, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 0, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 27 0 INFO ===>>> start processing event #1139599, run #204073 on slot 0, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #1140314, run #204073 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 1 INFO ===>>> start processing event #1133685, run #204073 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 2, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 0, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 30 0 INFO ===>>> start processing event #1143279, run #204073 on slot 0, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #1137563, run #204073 on slot 2, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #1139927, run #204073 on slot 3, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 0, 8 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 10 0 INFO ===>>> start processing event #1134553, run #204073 on slot 0, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 11 1 INFO ===>>> start processing event #1130999, run #204073 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 12 2 INFO ===>>> start processing event #1133461, run #204073 on slot 2, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 3, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 0, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 1, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #1131152, run #204073 on slot 0, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #1130142, run #204073 on slot 1, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 15 3 INFO ===>>> start processing event #1132770, run #204073 on slot 3, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 2, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 16 0 INFO ===>>> start processing event #1132365, run #204073 on slot 0, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 17 1 INFO ===>>> start processing event #1136791, run #204073 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 18 2 INFO ===>>> start processing event #1133781, run #204073 on slot 2, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 3, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 0, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 1, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr 19 0 INFO ===>>> start processing event #1132067, run #204073 on slot 0, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr 20 1 INFO ===>>> start processing event #1138637, run #204073 on slot 1, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr 21 3 INFO ===>>> start processing event #1139495, run #204073 on slot 3, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 2, 19 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 0, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 1, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 22 0 INFO ===>>> start processing event #1140193, run #204073 on slot 0, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 23 1 INFO ===>>> start processing event #1142953, run #204073 on slot 1, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 24 2 INFO ===>>> start processing event #1139127, run #204073 on slot 2, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 3, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 0, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #1141272, run #204073 on slot 0, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 27 3 INFO ===>>> start processing event #1139599, run #204073 on slot 3, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 2, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 28 0 INFO ===>>> start processing event #1140314, run #204073 on slot 0, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 1 INFO ===>>> start processing event #1133685, run #204073 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 30 2 INFO ===>>> start processing event #1143279, run #204073 on slot 2, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 0, 29 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 1, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 0, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #1141197, run #204073 on slot 0, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #1140039, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #1142531, run #204073 on slot 2, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #1139475, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 3, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #1143097, run #204073 on slot 2, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 3 INFO ===>>> start processing event #1134147, run #204073 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 0 INFO ===>>> start processing event #1137563, run #204073 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 1 INFO ===>>> start processing event #1139927, run #204073 on slot 1, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 3 INFO ===>>> start processing event #1141197, run #204073 on slot 3, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 2, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 0, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 1, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 34 0 INFO ===>>> start processing event #1140039, run #204073 on slot 0, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 1 INFO ===>>> start processing event #1142531, run #204073 on slot 1, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 36 2 INFO ===>>> start processing event #1139475, run #204073 on slot 2, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 3, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 0, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 1, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 39 3 INFO ===>>> start processing event #1143097, run #204073 on slot 3, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 2, 37 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139958, run #204073 on slot 0, 38 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143765, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 0 INFO ===>>> start processing event #1137156, run #204073 on slot 0, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #1136377, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #1137842, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 3, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 0, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 44 0 INFO ===>>> start processing event #1141705, run #204073 on slot 0, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 45 1 INFO ===>>> start processing event #1143410, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 3 INFO ===>>> start processing event #1144170, run #204073 on slot 3, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #1145987, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 0, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 1, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 3, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #1145633, run #204073 on slot 0, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 1 INFO ===>>> start processing event #1135005, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 3 INFO ===>>> start processing event #1142167, run #204073 on slot 3, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 2, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 0 INFO ===>>> start processing event #1144646, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 2 INFO ===>>> start processing event #1145027, run #204073 on slot 2, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 1, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 3, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #1134147, run #204073 on slot 0, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 1 INFO ===>>> start processing event #1137156, run #204073 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 2 INFO ===>>> start processing event #1136377, run #204073 on slot 2, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 3, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 0, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 1, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 0 INFO ===>>> start processing event #1137842, run #204073 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 44 1 INFO ===>>> start processing event #1141705, run #204073 on slot 1, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 45 3 INFO ===>>> start processing event #1143410, run #204073 on slot 3, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 2, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 0, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 0 INFO ===>>> start processing event #1144170, run #204073 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 1 INFO ===>>> start processing event #1145987, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 2 INFO ===>>> start processing event #1145633, run #204073 on slot 2, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 3, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 0, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 0 INFO ===>>> start processing event #1135005, run #204073 on slot 0, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #1142167, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 3 INFO ===>>> start processing event #1144646, run #204073 on slot 3, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 2, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 0, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 1, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 0 INFO ===>>> start processing event #1145027, run #204073 on slot 0, 51 events processed so far <<<=== AthenaHiveEventLoopMgr 53 1 INFO ===>>> start processing event #1144112, run #204073 on slot 1, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr 54 3 INFO ===>>> start processing event #1138485, run #204073 on slot 3, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 2 INFO ===>>> start processing event #1139498, run #204073 on slot 2, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr 54 2 INFO ===>>> start processing event #1138485, run #204073 on slot 2, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 3, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 0, 53 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 1, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 3, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 57 1 INFO ===>>> start processing event #1136546, run #204073 on slot 1, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 3 INFO ===>>> start processing event #1143799, run #204073 on slot 3, 55 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 1 INFO ===>>> start processing event #1139498, run #204073 on slot 1, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 57 3 INFO ===>>> start processing event #1136546, run #204073 on slot 3, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 2, 55 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144565, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 0 INFO ===>>> start processing event #1142877, run #204073 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 1, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 0 INFO ===>>> start processing event #1143799, run #204073 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 1 INFO ===>>> start processing event #1142877, run #204073 on slot 1, 57 events processed so far <<<=== AthenaHiveEventLoopMgr 60 2 INFO ===>>> start processing event #1149894, run #204073 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 1, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #1145364, run #204073 on slot 1, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 62 3 INFO ===>>> start processing event #1143770, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 0, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 3, 58 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 0, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 61 0 INFO ===>>> start processing event #1145364, run #204073 on slot 0, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processing event #1143770, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 3 INFO ===>>> start processing event #1148361, run #204073 on slot 3, 60 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 2, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 0 INFO ===>>> start processing event #1148361, run #204073 on slot 0, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 2 INFO ===>>> start processing event #1148167, run #204073 on slot 2, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 3, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 0 INFO ===>>> start processing event #1138948, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 1 INFO ===>>> start processing event #1144808, run #204073 on slot 1, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 3 INFO ===>>> start processing event #1145832, run #204073 on slot 3, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 2, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 0, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 1, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #1153100, run #204073 on slot 0, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #1142524, run #204073 on slot 1, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 2 INFO ===>>> start processing event #1138294, run #204073 on slot 2, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 3, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 0 INFO ===>>> start processing event #1138350, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 3 INFO ===>>> start processing event #1149424, run #204073 on slot 3, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 1, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 2, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 0, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #1148167, run #204073 on slot 0, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #1138948, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 2 INFO ===>>> start processing event #1144808, run #204073 on slot 2, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 3, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 0, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 3 INFO ===>>> start processing event #1142524, run #204073 on slot 3, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 2, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 0 INFO ===>>> start processing event #1138294, run #204073 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 2 INFO ===>>> start processing event #1149424, run #204073 on slot 2, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 3, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 0, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 1, 72 events processed so far <<<=== AthenaHiveEventLoopMgr 73 0 INFO ===>>> start processing event #1151102, run #204073 on slot 0, 72 events processed so far <<<=== AthenaHiveEventLoopMgr 74 1 INFO ===>>> start processing event #1152242, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 2 INFO ===>>> start processing event #1148416, run #204073 on slot 2, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 3, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 3 INFO ===>>> start processing event #1148416, run #204073 on slot 3, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 2, 73 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 0, 74 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 1, 75 events processed so far <<<=== AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 75 events processed so far <<<=== AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #1149997, run #204073 on slot 1, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr 78 3 INFO ===>>> start processing event #1151617, run #204073 on slot 3, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 2, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr 78 2 INFO ===>>> start processing event #1151617, run #204073 on slot 2, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 3, 76 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 2 INFO ===>>> start processing event #1152504, run #204073 on slot 2, 77 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 3, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #1152504, run #204073 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 3 INFO ===>>> start processing event #1142485, run #204073 on slot 3, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 2, 79 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 0 INFO ===>>> start processing event #1142485, run #204073 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 1 INFO ===>>> start processing event #1151364, run #204073 on slot 1, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 3 INFO ===>>> start processing event #1143901, run #204073 on slot 3, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 2, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 0, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #1153979, run #204073 on slot 0, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 2 INFO ===>>> start processing event #1150212, run #204073 on slot 2, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 1, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 3, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 0 INFO ===>>> start processing event #1152633, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #1155482, run #204073 on slot 1, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 3 INFO ===>>> start processing event #1150472, run #204073 on slot 3, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 2, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 0, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 0 INFO ===>>> start processing event #1140275, run #204073 on slot 0, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 0 INFO ===>>> start processing event #1151364, run #204073 on slot 0, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #1143901, run #204073 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 2 INFO ===>>> start processing event #1153979, run #204073 on slot 2, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 3, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 0, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 0 INFO ===>>> start processing event #1150212, run #204073 on slot 0, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 1 INFO ===>>> start processing event #1152633, run #204073 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 3 INFO ===>>> start processing event #1155482, run #204073 on slot 3, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 0, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 1, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #1150472, run #204073 on slot 0, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 1 INFO ===>>> start processing event #1140275, run #204073 on slot 1, 87 events processed so far <<<=== AthenaHiveEventLoopMgr 90 2 INFO ===>>> start processing event #1145882, run #204073 on slot 2, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 1, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 3, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 0, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 3, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 0, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 1, 90 events processed so far <<<=== AthenaHiveEventLoopMgr 91 0 INFO ===>>> start processing event #1151732, run #204073 on slot 0, 90 events processed so far <<<=== AthenaHiveEventLoopMgr 92 1 INFO ===>>> start processing event #1137896, run #204073 on slot 1, 90 events processed so far <<<=== AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #1156381, run #204073 on slot 3, 90 events processed so far <<<=== @@ -1304,7 +1299,7 @@ AthenaHiveEventLoopMgr INFO ===>>> done processin AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 0, 98 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 1, 99 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 3, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 21.757 +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 5.44463 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1317,14 +1312,12 @@ Finalizer INFO Finalizing Finalizer... Finalize: compared 20 dumps CondInputLoader INFO Finalizing CondInputLoader... IncidentProcAlg2 INFO Finalize -StoreGateSvc WARNING Called record() on these objects in a MT store -StoreGateSvc WARNING TileDigitsContainer/MuRcvDigitsCnt [TileDigitsDumper/MuRcvDigitsCntDumper] EventInfoByteStreamCnv INFO finalize AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.16 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.41 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1336,10 +1329,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.03 ))s -IOVDbSvc INFO bytes in (( 0.19 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.26 ))s +IOVDbSvc INFO bytes in (( 0.67 ))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.19 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.67 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1348,11 +1341,12 @@ ToolSvc.ByteStreamMetadataTool INFO in finalize() ToolSvc.TileDigitsContByteStreamTool INFO Finalizing TileDigitsContByteStreamTool successfuly ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** +*****Chrono***** INFO WARNING: MT job; statistics are unreliable *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.77 [s] Ave/Min/Max=0.385(+-0.365)/ 0.02/ 0.75 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.98 [s] Ave/Min/Max= 0.49(+- 0.35)/ 0.14/ 0.84 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 27.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 260 [ms] Ave/Min/Max= 130(+- 130)/ 0/ 260 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 360 [ms] Ave/Min/Max= 180(+- 140)/ 40/ 320 [ms] #= 2 +ChronoStatSvc INFO Time User : Tot= 6.75 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.py b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.py index de1f86c4a10f..675bb16659c9 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.py +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.py @@ -65,6 +65,7 @@ globalflags.InputFormat.set_Value_and_Lock('bytestream') svcMgr.ByteStreamAddressProviderSvc.TypeNames += [ 'TileRawChannelContainer/TileRawChannelCnt', + 'TileRawChannelContainer/MuRcvRawChCnt', ] include('TileConditions/TileConditions_jobOptions.py') @@ -92,7 +93,6 @@ topSequence += TileRawChannelDumper ('TileRawChannelCntDumper', Prefix = dumpdir + '/') topSequence += TileRawChannelDumper ('MuRcvRawChannelCntDumper', TileRawChannelContainer = 'MuRcvRawChCnt', - AltTileRawChannelContainer = 'TileRawChannelCnt', Prefix = dumpdir + '/') diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref index 84fd67399e26..5433f942da2b 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 03:41:29 CET 2019 +Thu Jan 24 19:00:12 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [master/1229b7f595] -- built on [2019-01-24T1713] 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 +SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5453 configurables from 4 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:41:59 2019 + running on pcatl12 on Thu Jan 24 19:00:19 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -50,9 +50,9 @@ 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 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Frontier server at (serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host pcatl12.dyndns.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 @@ -86,6 +86,7 @@ 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 3073 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 792 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 @@ -104,7 +105,6 @@ 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 792 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 17 CLIDRegistry entries for module ALL DetDescrCnvSvc INFO initializing DetDescrCnvSvc INFO Found DetectorStore service @@ -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= 28576Kb Time = 1.57S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.7S 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/2019-01-20T2256/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/2019-01-22T2257/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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. @@ -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) GeoModelKernelUnits::cm GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.81S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.16S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -333,7 +333,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 3810 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 3902 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... Finalizer INFO Initializing Finalizer... HistogramPersis...WARNING Histograms saving not required. @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-20T2256/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/2019-01-22T2257/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 @@ -641,23 +641,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.16 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.10 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.10 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.18 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.10 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.02 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s -IOVDbSvc INFO bytes in (( 1.03 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.40 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.49 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.42 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.42 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.35 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.38 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.38 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.46 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.70 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.35 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.38 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.03 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.26 ))s +IOVDbSvc INFO bytes in (( 5.02 ))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.10 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.93 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.66 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 4.36 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -667,27 +667,27 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -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.03 [s] Ave/Min/Max=0.0792(+-0.235)/ 0/ 0.88 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 41.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 270 [ms] Ave/Min/Max= 135(+- 125)/ 10/ 260 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 340 [ms] Ave/Min/Max= 26.2(+- 77.3)/ 0/ 290 [ms] #= 13 +ChronoStatSvc INFO Time User : Tot= 9.27 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 03:43:23 CET 2019 +Thu Jan 24 19:00:42 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [master/1229b7f595] -- built on [2019-01-24T1713] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events Py:AlgScheduler INFO setting up AvalancheSchedulerSvc/AvalancheSchedulerSvc with 4 threads Py:Athena INFO including file "AthenaCommon/Execution.py" Py:Athena INFO including file "TileByteStream/TileRawChannelContByteStreamCnv_test.py" -[?1034hSetGeometryVersion.py obtained major release version 22 +SetGeometryVersion.py obtained major release version 22 Py:Athena INFO including file "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" -Py:ConfigurableDb INFO Read module info for 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5453 configurables from 4 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 @@ -714,7 +714,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:43:53 2019 + running on pcatl12 on Thu Jan 24 19:00:48 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -729,9 +729,9 @@ AthenaPoolCnvSvc INFO Initializing AthenaPoolC 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 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ] +DBReplicaSvc INFO Frontier server at (serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier) will be considered for COOL data +DBReplicaSvc INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host pcatl12.dyndns.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 @@ -873,7 +873,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.76S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.68S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -885,7 +885,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -897,9 +897,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -934,7 +934,7 @@ GeoModelSvc.TileDetectorTool INFO Global positioning of b GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.78S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.15S 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 @@ -956,11 +956,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/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/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -969,7 +969,7 @@ TileCablingSvc INFO Cabling for RUN2 (2014-2 TileCablingSvc INFO Setting Cabling type to 4 TileInfoLoader INFO Placed TileInfo object in the detector store. AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 -ClassIDSvc 0 INFO getRegistryEntries: read 4075 CLIDRegistry entries for module ALL +ClassIDSvc 0 INFO getRegistryEntries: read 4167 CLIDRegistry entries for module ALL PyComponentMgr 0 INFO Initializing PyComponentMgr... Finalizer 0 INFO Initializing Finalizer... ClassIDSvc 0 INFO getRegistryEntries: read 53 CLIDRegistry entries for module ALL @@ -1023,7 +1023,6 @@ AvalancheSchedulerSvc 0 INFO Will attribute the follo o ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) required by Algorithm: * MuRcvRawChannelCntDumper o ( 'TileRawChannelContainer' , 'StoreGateSvc+TileRawChannelCnt' ) required by Algorithm: - * MuRcvRawChannelCntDumper * TileRawChannelCntDumper PrecedenceSvc 0 INFO Assembling CF and DF task precedence rules PrecedenceRulesGraph 0 INFO CondSvc found. DF precedence rules will be augmented with 'Conditions' @@ -1083,12 +1082,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-22T2257/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1097,17 +1096,13 @@ Domain[ROOT_All] 0 0 INFO RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -SGInputLoader 0 0 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed ToolSvc.TileRawChannelContByteStreamTool0 0 INFO Initializing TileRawChannelContByteStreamTool AthenaHiveEventLoopMgr 1 1 INFO ===>>> start processing event #1129665, run #204073 on slot 1, 0 events processed so far <<<=== -SGInputLoader 1 1 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) AthenaHiveEventLoopMgr 2 2 INFO ===>>> start processing event #1131212, run #204073 on slot 2, 0 events processed so far <<<=== -SGInputLoader 2 2 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #1131086, run #204073 on slot 3, 0 events processed so far <<<=== -SGInputLoader 3 3 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 1 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 2 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131212, run #204073 on slot 2, 3 events processed so far <<<=== @@ -1115,196 +1110,196 @@ AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processi AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 3 events processed so far <<<=== AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 3 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131086, run #204073 on slot 3, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #1132019, run #204073 on slot 3, 4 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130272, run #204073 on slot 0, 5 events processed so far <<<=== -AthenaHiveEventLoopMgr 8 0 INFO ===>>> start processing event #1132092, run #204073 on slot 0, 5 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131269, run #204073 on slot 1, 6 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #1130238, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 7 0 INFO ===>>> start processing event #1132019, run #204073 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 8 1 INFO ===>>> start processing event #1132092, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 3 INFO ===>>> start processing event #1130238, run #204073 on slot 3, 6 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130716, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 10 2 INFO ===>>> start processing event #1134553, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr 11 0 INFO ===>>> start processing event #1130999, run #204073 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr 12 3 INFO ===>>> start processing event #1133461, run #204073 on slot 3, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 1 INFO ===>>> start processing event #1131152, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 2, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 0, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 0 INFO ===>>> start processing event #1130142, run #204073 on slot 0, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr 15 2 INFO ===>>> start processing event #1132770, run #204073 on slot 2, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 3, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 16 3 INFO ===>>> start processing event #1132365, run #204073 on slot 3, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr 17 1 INFO ===>>> start processing event #1136791, run #204073 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 0, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr 18 0 INFO ===>>> start processing event #1133781, run #204073 on slot 0, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 2, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 19 2 INFO ===>>> start processing event #1132067, run #204073 on slot 2, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 3, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr 20 3 INFO ===>>> start processing event #1138637, run #204073 on slot 3, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 0, 8 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 10 0 INFO ===>>> start processing event #1134553, run #204073 on slot 0, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 11 1 INFO ===>>> start processing event #1130999, run #204073 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 12 2 INFO ===>>> start processing event #1133461, run #204073 on slot 2, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 3, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 0, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 1, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #1131152, run #204073 on slot 0, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #1130142, run #204073 on slot 1, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 15 3 INFO ===>>> start processing event #1132770, run #204073 on slot 3, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 2, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 16 0 INFO ===>>> start processing event #1132365, run #204073 on slot 0, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 17 1 INFO ===>>> start processing event #1136791, run #204073 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 18 2 INFO ===>>> start processing event #1133781, run #204073 on slot 2, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 3, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 0, 17 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 1, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 21 1 INFO ===>>> start processing event #1139495, run #204073 on slot 1, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 0, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr 22 0 INFO ===>>> start processing event #1140193, run #204073 on slot 0, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 2, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 23 2 INFO ===>>> start processing event #1142953, run #204073 on slot 2, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 3, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr 24 3 INFO ===>>> start processing event #1139127, run #204073 on slot 3, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #1141272, run #204073 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 2, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 27 2 INFO ===>>> start processing event #1139599, run #204073 on slot 2, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #1140314, run #204073 on slot 3, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr 19 0 INFO ===>>> start processing event #1132067, run #204073 on slot 0, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr 20 1 INFO ===>>> start processing event #1138637, run #204073 on slot 1, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr 21 3 INFO ===>>> start processing event #1139495, run #204073 on slot 3, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 2, 19 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 0, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 1, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 22 0 INFO ===>>> start processing event #1140193, run #204073 on slot 0, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 23 1 INFO ===>>> start processing event #1142953, run #204073 on slot 1, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 24 2 INFO ===>>> start processing event #1139127, run #204073 on slot 2, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 3, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 0, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #1141272, run #204073 on slot 0, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 27 3 INFO ===>>> start processing event #1139599, run #204073 on slot 3, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 2, 25 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 0, 26 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 1, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #1133685, run #204073 on slot 0, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #1143279, run #204073 on slot 1, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 2, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #1137563, run #204073 on slot 2, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #1139927, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #1141197, run #204073 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #1140039, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #1142531, run #204073 on slot 2, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #1139475, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #1143097, run #204073 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 28 0 INFO ===>>> start processing event #1140314, run #204073 on slot 0, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 1 INFO ===>>> start processing event #1133685, run #204073 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 30 2 INFO ===>>> start processing event #1143279, run #204073 on slot 2, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 0, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 1, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 0 INFO ===>>> start processing event #1137563, run #204073 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 1 INFO ===>>> start processing event #1139927, run #204073 on slot 1, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 3 INFO ===>>> start processing event #1141197, run #204073 on slot 3, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 2, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 0, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 1, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 34 0 INFO ===>>> start processing event #1140039, run #204073 on slot 0, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 1 INFO ===>>> start processing event #1142531, run #204073 on slot 1, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 36 2 INFO ===>>> start processing event #1139475, run #204073 on slot 2, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 3, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 0, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 1, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 39 3 INFO ===>>> start processing event #1143097, run #204073 on slot 3, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 2, 37 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139958, run #204073 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #1134147, run #204073 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 3 INFO ===>>> start processing event #1137156, run #204073 on slot 3, 38 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143765, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #1136377, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #1137842, run #204073 on slot 2, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #1134147, run #204073 on slot 0, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 1 INFO ===>>> start processing event #1137156, run #204073 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 2 INFO ===>>> start processing event #1136377, run #204073 on slot 2, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 3, 40 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 0, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr 44 0 INFO ===>>> start processing event #1141705, run #204073 on slot 0, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 3, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 1, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 0 INFO ===>>> start processing event #1137842, run #204073 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 44 1 INFO ===>>> start processing event #1141705, run #204073 on slot 1, 42 events processed so far <<<=== AthenaHiveEventLoopMgr 45 3 INFO ===>>> start processing event #1143410, run #204073 on slot 3, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 1 INFO ===>>> start processing event #1144170, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #1145987, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 0, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #1145633, run #204073 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 2, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 0, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 0 INFO ===>>> start processing event #1144170, run #204073 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 1 INFO ===>>> start processing event #1145987, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 2 INFO ===>>> start processing event #1145633, run #204073 on slot 2, 45 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 3, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 3 INFO ===>>> start processing event #1135005, run #204073 on slot 3, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #1142167, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 2, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 0 INFO ===>>> start processing event #1144646, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 2 INFO ===>>> start processing event #1145027, run #204073 on slot 2, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 3, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 53 3 INFO ===>>> start processing event #1144112, run #204073 on slot 3, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 0, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 0 INFO ===>>> start processing event #1135005, run #204073 on slot 0, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #1142167, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 3 INFO ===>>> start processing event #1144646, run #204073 on slot 3, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 2, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 0, 50 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 1, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr 54 1 INFO ===>>> start processing event #1138485, run #204073 on slot 1, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 2 INFO ===>>> start processing event #1139498, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 3, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 0 INFO ===>>> start processing event #1145027, run #204073 on slot 0, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 53 1 INFO ===>>> start processing event #1144112, run #204073 on slot 1, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 54 2 INFO ===>>> start processing event #1138485, run #204073 on slot 2, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 3, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 0, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 1, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 1 INFO ===>>> start processing event #1139498, run #204073 on slot 1, 54 events processed so far <<<=== AthenaHiveEventLoopMgr 57 3 INFO ===>>> start processing event #1136546, run #204073 on slot 3, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 1, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #1143799, run #204073 on slot 1, 55 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 2, 55 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144565, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 0 INFO ===>>> start processing event #1142877, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 2, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 1, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 0 INFO ===>>> start processing event #1143799, run #204073 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 1 INFO ===>>> start processing event #1142877, run #204073 on slot 1, 57 events processed so far <<<=== AthenaHiveEventLoopMgr 60 2 INFO ===>>> start processing event #1149894, run #204073 on slot 2, 57 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 3, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 1, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #1145364, run #204073 on slot 1, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 62 3 INFO ===>>> start processing event #1143770, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 0, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 0 INFO ===>>> start processing event #1148361, run #204073 on slot 0, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 0, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 61 0 INFO ===>>> start processing event #1145364, run #204073 on slot 0, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processing event #1143770, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 3 INFO ===>>> start processing event #1148361, run #204073 on slot 3, 60 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 2, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 1 INFO ===>>> start processing event #1148167, run #204073 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 2 INFO ===>>> start processing event #1138948, run #204073 on slot 2, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 3, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 3 INFO ===>>> start processing event #1144808, run #204073 on slot 3, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 1, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 2, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 2 INFO ===>>> start processing event #1142524, run #204073 on slot 2, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 3, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 3 INFO ===>>> start processing event #1138294, run #204073 on slot 3, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #1149424, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 2, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr 73 2 INFO ===>>> start processing event #1151102, run #204073 on slot 2, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 3, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr 74 3 INFO ===>>> start processing event #1152242, run #204073 on slot 3, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #1148167, run #204073 on slot 0, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #1138948, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 2 INFO ===>>> start processing event #1144808, run #204073 on slot 2, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 3, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 0, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 3 INFO ===>>> start processing event #1142524, run #204073 on slot 3, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 2, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 0 INFO ===>>> start processing event #1138294, run #204073 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 2 INFO ===>>> start processing event #1149424, run #204073 on slot 2, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 3, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 0, 71 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 1 INFO ===>>> start processing event #1148416, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 0, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 2, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr 77 2 INFO ===>>> start processing event #1149997, run #204073 on slot 2, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 3, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr 78 3 INFO ===>>> start processing event #1151617, run #204073 on slot 3, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 1, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 1 INFO ===>>> start processing event #1149794, run #204073 on slot 1, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr 73 0 INFO ===>>> start processing event #1151102, run #204073 on slot 0, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr 74 1 INFO ===>>> start processing event #1152242, run #204073 on slot 1, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 3 INFO ===>>> start processing event #1148416, run #204073 on slot 3, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 2, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 0, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 1, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #1149997, run #204073 on slot 1, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 78 2 INFO ===>>> start processing event #1151617, run #204073 on slot 2, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 3, 76 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 2, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 0 INFO ===>>> start processing event #1152504, run #204073 on slot 0, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 2 INFO ===>>> start processing event #1142485, run #204073 on slot 2, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 3, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 3 INFO ===>>> start processing event #1151364, run #204073 on slot 3, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 1, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #1143901, run #204073 on slot 1, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #1153979, run #204073 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 2, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 2 INFO ===>>> start processing event #1150212, run #204073 on slot 2, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 3, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 3 INFO ===>>> start processing event #1152633, run #204073 on slot 3, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #1152504, run #204073 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 3 INFO ===>>> start processing event #1142485, run #204073 on slot 3, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 2, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 0, 80 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 0 INFO ===>>> start processing event #1151364, run #204073 on slot 0, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #1143901, run #204073 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 2 INFO ===>>> start processing event #1153979, run #204073 on slot 2, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 3, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 0, 83 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #1155482, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #1150472, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 2, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 2 INFO ===>>> start processing event #1140275, run #204073 on slot 2, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 3, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 90 3 INFO ===>>> start processing event #1145882, run #204073 on slot 3, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 1, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 1 INFO ===>>> start processing event #1151732, run #204073 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 0 INFO ===>>> start processing event #1150212, run #204073 on slot 0, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 1 INFO ===>>> start processing event #1152633, run #204073 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 3 INFO ===>>> start processing event #1155482, run #204073 on slot 3, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 0, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 1, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #1150472, run #204073 on slot 0, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 1 INFO ===>>> start processing event #1140275, run #204073 on slot 1, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 90 2 INFO ===>>> start processing event #1145882, run #204073 on slot 2, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 3, 88 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #1137896, run #204073 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 2, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 2 INFO ===>>> start processing event #1156381, run #204073 on slot 2, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 3, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 3 INFO ===>>> start processing event #1149161, run #204073 on slot 3, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 1, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 0 INFO ===>>> start processing event #1153794, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 1 INFO ===>>> start processing event #1151312, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 2, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 2 INFO ===>>> start processing event #1148893, run #204073 on slot 2, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 3, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 3 INFO ===>>> start processing event #1156938, run #204073 on slot 3, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 0 INFO ===>>> start processing event #1156351, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 1, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 2, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 3, 99 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 0, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 27.2973 +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 1, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 0 INFO ===>>> start processing event #1151732, run #204073 on slot 0, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 1 INFO ===>>> start processing event #1137896, run #204073 on slot 1, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #1156381, run #204073 on slot 3, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 2, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 0, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 1, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 0 INFO ===>>> start processing event #1149161, run #204073 on slot 0, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 1 INFO ===>>> start processing event #1153794, run #204073 on slot 1, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 2 INFO ===>>> start processing event #1151312, run #204073 on slot 2, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 3, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 0, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 1, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 0 INFO ===>>> start processing event #1148893, run #204073 on slot 0, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 1 INFO ===>>> start processing event #1156938, run #204073 on slot 1, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 3 INFO ===>>> start processing event #1156351, run #204073 on slot 3, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 2, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 0, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 1, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 3, 100 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 6.41162 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1317,14 +1312,12 @@ Finalizer INFO Finalizing Finalizer... Finalize: compared 20 dumps CondInputLoader INFO Finalizing CondInputLoader... IncidentProcAlg2 INFO Finalize -StoreGateSvc WARNING Called record() on these objects in a MT store -StoreGateSvc WARNING TileRawChannelContainer/MuRcvRawChCnt [TileRawChannelDumper/MuRcvRawChannelCntDumper] EventInfoByteStreamCnv INFO finalize AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.14 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.41 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1336,10 +1329,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.09 ))s -IOVDbSvc INFO bytes in (( 0.23 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.42 ))s +IOVDbSvc INFO bytes in (( 0.82 ))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.23 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.82 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1348,11 +1341,12 @@ ToolSvc.ByteStreamMetadataTool INFO in finalize() ToolSvc.TileRawChannelContByteStreamTool INFO Finalizing TileRawChannelContByteStreamTool successfuly ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** +*****Chrono***** INFO WARNING: MT job; statistics are unreliable *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max=0.525(+-0.505)/ 0.02/ 1.03 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.33 [s] Ave/Min/Max=0.665(+-0.485)/ 0.18/ 1.15 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 40.2 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 280 [ms] Ave/Min/Max= 140(+- 140)/ 0/ 280 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 370 [ms] Ave/Min/Max= 185(+- 145)/ 40/ 330 [ms] #= 2 +ChronoStatSvc INFO Time User : Tot= 8.44 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx index 14ffca146254..042981523935 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileDigitsContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes @@ -21,7 +21,6 @@ #include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "StoreGate/ActiveStoreSvc.h" #include "StoreGate/StoreClearedIncident.h" #include "AthenaKernel/CLASS_DEF.h" @@ -46,7 +45,6 @@ TileDigitsContByteStreamCnv::TileDigitsContByteStreamCnv(ISvcLocator* svcloc) , m_tool("TileDigitsContByteStreamTool") , m_byteStreamEventAccess("ByteStreamCnvSvc", m_name) , m_byteStreamCnvSvc(0) - , m_activeStore("ActiveStoreSvc", m_name) , m_robSvc("ROBDataProviderSvc", m_name) , m_decoder("TileROD_Decoder") , m_hid2re(0) @@ -74,7 +72,6 @@ StatusCode TileDigitsContByteStreamCnv::initialize() { ATH_CHECK( m_robSvc.retrieve() ); - ATH_CHECK( m_activeStore.retrieve() ); return StatusCode::SUCCESS; } @@ -90,61 +87,58 @@ StatusCode TileDigitsContByteStreamCnv::createObj(IOpaqueAddress* pAddr, DataObj return StatusCode::FAILURE; } - uint32_t newrob = 0x0; + const std::string containerName(*(pRE_Addr->par())); + bool isTMDB(containerName == "MuRcvDigitsCnt"); - for (int icnt = 0; icnt < 2; ++icnt) { + uint32_t newrob = 0x0; - bool isTMDB(icnt == 1); - std::vector<uint32_t> robid(1); - robid[0] = 0; - std::vector<const ROBDataProviderSvc::ROBF*> robf; + std::vector<uint32_t> robid(1); + robid[0] = 0; + std::vector<const ROBDataProviderSvc::ROBF*> robf; - TileMutableDigitsContainer* cont = m_queue.get (true); - ATH_CHECK( cont->status() ); + TileMutableDigitsContainer* cont = m_queue.get (true); + ATH_CHECK( cont->status() ); - // iterate over all collections in a container and fill them - // - for (IdentifierHash hash : cont->GetAllCurrentHashes()) { - TileDigitsCollection* digitsCollection = cont->indexFindPtr (hash); - digitsCollection->clear(); - TileDigitsCollection::ID collID = digitsCollection->identify(); + // iterate over all collections in a container and fill them + // + for (IdentifierHash hash : cont->GetAllCurrentHashes()) { + TileDigitsCollection* digitsCollection = cont->indexFindPtr (hash); + digitsCollection->clear(); + TileDigitsCollection::ID collID = digitsCollection->identify(); - // find ROB - if (isTMDB) { - newrob = m_hid2re->getRobFromTileMuRcvFragID(collID); - } else { - newrob = m_hid2re->getRobFromFragID(collID); - } + // find ROB + if (isTMDB) { + newrob = m_hid2re->getRobFromTileMuRcvFragID(collID); + } else { + newrob = m_hid2re->getRobFromFragID(collID); + } - if (newrob != robid[0]) { - robid[0] = newrob; - robf.clear(); - m_robSvc->getROBData(robid, robf); - } + if (newrob != robid[0]) { + robid[0] = newrob; + robf.clear(); + m_robSvc->getROBData(robid, robf); + } - if (robf.size() > 0 ) { - if (isTMDB) {// reid for TMDB 0x5x010x - ATH_MSG_DEBUG(" Decoding TMDB digits in ROD fragment "); - m_decoder->fillCollection_TileMuRcv_Digi(robf[0], *digitsCollection); - } else { - m_decoder->fillCollection(robf[0], *digitsCollection); - } + if (robf.size() > 0 ) { + if (isTMDB) {// reid for TMDB 0x5x010x + ATH_MSG_DEBUG(" Decoding TMDB digits in ROD fragment "); + m_decoder->fillCollection_TileMuRcv_Digi(robf[0], *digitsCollection); } else { - digitsCollection->setFragBCID((TileROD_Decoder::NO_ROB)<<16); + m_decoder->fillCollection(robf[0], *digitsCollection); } + } else { + digitsCollection->setFragBCID((TileROD_Decoder::NO_ROB)<<16); } - ATH_MSG_DEBUG( "Creating digits container " << *(pRE_Addr->par()) ); - TileDigitsContainer* basecont = cont; - if (isTMDB) { - ATH_CHECK( m_activeStore->activeStore()->record( basecont, "MuRcvDigitsCnt" ) ); - } else { - pObj = SG::asStorable( basecont ) ; - } } + ATH_MSG_DEBUG( "Creating digits container: " << containerName ); + + TileDigitsContainer* basecont = cont; + pObj = SG::asStorable( basecont ) ; + return StatusCode::SUCCESS; } diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx index c75ee42be300..517090ed689b 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileRawChannelContByteStreamCnv.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // Gaudi includes @@ -20,7 +20,6 @@ #include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h" #include "ByteStreamData/RawEvent.h" -#include "StoreGate/ActiveStoreSvc.h" #include "StoreGate/StoreClearedIncident.h" #include "AthenaKernel/CLASS_DEF.h" @@ -42,7 +41,6 @@ TileRawChannelContByteStreamCnv::TileRawChannelContByteStreamCnv(ISvcLocator* sv , m_tool("TileRawChannelContByteStreamTool") , m_byteStreamEventAccess("ByteStreamCnvSvc", m_name) , m_byteStreamCnvSvc(0) - , m_activeStore("ActiveStoreSvc", m_name) , m_robSvc("ROBDataProviderSvc", m_name) , m_decoder("TileROD_Decoder") , m_hid2re(0) @@ -69,8 +67,6 @@ StatusCode TileRawChannelContByteStreamCnv::initialize() { ATH_CHECK( m_robSvc.retrieve() ); - ATH_CHECK( m_activeStore.retrieve() ); - return StatusCode::SUCCESS; } @@ -86,67 +82,62 @@ StatusCode TileRawChannelContByteStreamCnv::createObj(IOpaqueAddress* pAddr, Dat return StatusCode::FAILURE; } - uint32_t newrob = 0x0; + const std::string containerName(*(pRE_Addr->par())); + bool isTMDB(containerName == "MuRcvRawChCnt"); - for (int icnt = 0; icnt < 2; ++icnt) { + uint32_t newrob = 0x0; - bool isTMDB = (icnt == 1); - std::vector<uint32_t> robid(1); - robid[0] = 0; - std::vector<const ROBDataProviderSvc::ROBF*> robf; + std::vector<uint32_t> robid(1); + robid[0] = 0; + std::vector<const ROBDataProviderSvc::ROBF*> robf; - TileMutableRawChannelContainer* cont = m_queue.get (true); - ATH_CHECK( cont->status() ); + TileMutableRawChannelContainer* cont = m_queue.get (true); + ATH_CHECK( cont->status() ); - if (isTMDB) { - cont->set_type (TileFragHash::MF); - } - else { - cont->set_type (TileFragHash::OptFilterDsp); - } + if (isTMDB) { + cont->set_type (TileFragHash::MF); + } else { + cont->set_type (TileFragHash::OptFilterDsp); + } - // iterate over all collections in a container and fill them - for (IdentifierHash hash : cont->GetAllCurrentHashes()) { - TileRawChannelCollection* rawChannelCollection = cont->indexFindPtr (hash); - rawChannelCollection->clear(); - TileRawChannelCollection::ID collID = rawChannelCollection->identify(); + // iterate over all collections in a container and fill them + for (IdentifierHash hash : cont->GetAllCurrentHashes()) { + TileRawChannelCollection* rawChannelCollection = cont->indexFindPtr (hash); + rawChannelCollection->clear(); + TileRawChannelCollection::ID collID = rawChannelCollection->identify(); - // find ROB - if (isTMDB) { - newrob = m_hid2re->getRobFromTileMuRcvFragID(collID); - } else { - newrob = m_hid2re->getRobFromFragID(collID); - } + // find ROB + if (isTMDB) { + newrob = m_hid2re->getRobFromTileMuRcvFragID(collID); + } else { + newrob = m_hid2re->getRobFromFragID(collID); + } - if (newrob != robid[0]) { - robid[0] = newrob; - robf.clear(); - m_robSvc->getROBData(robid, robf); - } + if (newrob != robid[0]) { + robid[0] = newrob; + robf.clear(); + m_robSvc->getROBData(robid, robf); + } - // unpack ROB data - if (robf.size() > 0 ) { - if (isTMDB) {// reid for TMDB 0x5x010x - m_decoder->fillCollection_TileMuRcv_RawChannel(robf[0], *rawChannelCollection); - } else { - m_decoder->fillCollection(robf[0], *rawChannelCollection, cont); - } + // unpack ROB data + if (robf.size() > 0 ) { + if (isTMDB) {// reid for TMDB 0x5x010x + m_decoder->fillCollection_TileMuRcv_RawChannel(robf[0], *rawChannelCollection); } else { - rawChannelCollection->setFragGlobalCRC(TileROD_Decoder::NO_ROB); + m_decoder->fillCollection(robf[0], *rawChannelCollection, cont); } - } - - ATH_MSG_DEBUG( "Creating Container " << *(pRE_Addr->par()) ); - - TileRawChannelContainer* basecont = cont; - if (isTMDB) { - ATH_CHECK( m_activeStore->activeStore()->record( basecont, "MuRcvRawChCnt" ) ); } else { - pObj = SG::asStorable( basecont ); + rawChannelCollection->setFragGlobalCRC(TileROD_Decoder::NO_ROB); } } + ATH_MSG_DEBUG( "Creating raw channel container: " << containerName ); + + TileRawChannelContainer* basecont = cont; + pObj = SG::asStorable( basecont ); + + return StatusCode::SUCCESS; } -- GitLab From 17e88071c71788c3d961d3928cfeac41b3663be4 Mon Sep 17 00:00:00 2001 From: Peter Van Gemmeren <peter.van.gemmeren@cern.ch> Date: Fri, 25 Jan 2019 18:55:24 +0000 Subject: [PATCH 124/192] Fixing some problems with multuple stream handling in AthenaMT. --- Control/AthenaCommon/python/AppMgr.py | 1 + Control/AthenaKernel/AthenaKernel/IItemListSvc.h | 15 +++++++++++++++ .../AthenaServices/src/AthenaOutputStream.cxx | 2 ++ .../src/AthenaOutputStreamTool.cxx | 16 ++++------------ .../AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx | 2 +- .../share/AthenaPoolExample_Concat.ref | 4 ++-- .../share/AthenaPoolExample_Copy.ref | 2 +- .../share/AthenaPoolExample_Filter.ref | 2 +- .../share/AthenaPoolExample_ReWrite.ref | 2 +- .../share/AthenaPoolExample_ReWriteAgain.ref | 2 +- .../share/AthenaPoolExample_ReWriteNext.ref | 2 +- .../share/AthenaPoolExample_WMeta.ref | 2 +- .../share/AthenaPoolExample_Write.ref | 4 ++-- Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx | 4 ++-- Database/AthenaPOOL/PoolSvc/src/PoolSvc.h | 2 ++ 15 files changed, 37 insertions(+), 25 deletions(-) diff --git a/Control/AthenaCommon/python/AppMgr.py b/Control/AthenaCommon/python/AppMgr.py index 2969d7ac9671..d7d3bdfb4e56 100755 --- a/Control/AthenaCommon/python/AppMgr.py +++ b/Control/AthenaCommon/python/AppMgr.py @@ -993,3 +993,4 @@ topSequence = AlgSequence.AlgSequence( "TopAlg" ) # for backward compatibil # execution of the AthAlgSeq sequence # this is mainly for backward compatibility reasons athAlgSeq.StopOverride=True +athOutSeq.StopOverride=True diff --git a/Control/AthenaKernel/AthenaKernel/IItemListSvc.h b/Control/AthenaKernel/AthenaKernel/IItemListSvc.h index 670bb68b9b2f..f05185046d65 100644 --- a/Control/AthenaKernel/AthenaKernel/IItemListSvc.h +++ b/Control/AthenaKernel/AthenaKernel/IItemListSvc.h @@ -22,6 +22,7 @@ #include <vector> #include <string> #include <map> +#include <mutex> // fwd declares class INamedInterface; @@ -56,10 +57,18 @@ public: // get the items for a given stream virtual std::vector<std::string> getItemsForStream(const std::string stream) const = 0; + // get mutex for streaming itemlist to output + virtual std::mutex& streamMutex(); + + public: static const InterfaceID& interfaceID(); +private: + + std::mutex m_stream_mut; + }; /////////////////////////////////////////////////////////////////// @@ -74,6 +83,12 @@ IItemListSvc::interfaceID() return IID_IItemListSvc; } +inline +std::mutex& +IItemListSvc::streamMutex() +{ + return m_stream_mut; +} #endif //> !ATHENAKERNEL_IITEMLISTSVC_H diff --git a/Control/AthenaServices/src/AthenaOutputStream.cxx b/Control/AthenaServices/src/AthenaOutputStream.cxx index 51d84cba12d0..308bdf6b983f 100644 --- a/Control/AthenaServices/src/AthenaOutputStream.cxx +++ b/Control/AthenaServices/src/AthenaOutputStream.cxx @@ -36,6 +36,7 @@ #include <boost/tokenizer.hpp> #include <cassert> +#include <mutex> #include <string> #include <vector> @@ -461,6 +462,7 @@ StatusCode AthenaOutputStream::write() { // Connect the output file to the service // FIXME: this double looping sucks... got to query the // data store for object of a given type/key. + std::lock_guard<std::mutex> lock(m_itemSvc->streamMutex()); if (m_streamer->connectOutput(m_outSeqSvc->buildSequenceFileName(m_outputName) + m_outputAttributes).isSuccess()) { // First check if there are any new items in the list collectAllObjects(); diff --git a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx index 3756dce7005b..1857d435f01e 100644 --- a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx +++ b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx @@ -244,20 +244,12 @@ StatusCode AthenaOutputStreamTool::connectOutput(const std::string& outputName) } } - if (!m_attrListKey.key().empty()) { - auto attrListHandle = SG::makeHandle(m_attrListKey); - - if (!attrListHandle.isValid()) { - if (m_store->storeID() == StoreID::SIMPLE_STORE || - m_store->storeID() == StoreID::METADATA_STORE) - { - // Avoid spurious WARNING during stop(). - } - else { + if (!m_attrListKey.key().empty() && m_store->storeID() == StoreID::EVENT_STORE) { + auto attrListHandle = SG::makeHandle(m_attrListKey); + if (!attrListHandle.isValid()) { ATH_MSG_WARNING("Unable to retrieve AttributeList with key " << m_attrListKey.key()); - } } else { - m_dataHeader->setAttributeList(attrListHandle.cptr()); + m_dataHeader->setAttributeList(attrListHandle.cptr()); } } diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx index e70b2c8c90ab..51d12d03a8a7 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/src/AthenaPoolConverter.cxx @@ -55,7 +55,7 @@ long AthenaPoolConverter::repSvcType() const { StatusCode AthenaPoolConverter::createObj(IOpaqueAddress* pAddr, DataObject*& pObj) { std::lock_guard<CallMutex> lock(m_conv_mut); TokenAddress* tokAddr = dynamic_cast<TokenAddress*>(pAddr); -bool ownTokAddr = false; + bool ownTokAddr = false; if (tokAddr == nullptr || tokAddr->getToken() == nullptr) { ownTokAddr = true; Token* token = new Token; diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref index a46f29dd1f3a..19b2cd536bfa 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref @@ -77,7 +77,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + + INPUT IGNORED ( 'AthenaAttributeList' , '' ) MakeInputDataHe... INFO Initializing MakeInputDataHeader - package version OutputStreamAthenaPool-00-00-00 MakeInputDataHe... INFO Name of Stream to be made Input: Stream1 ReWriteData DEBUG Property update for OutputLevel : new value = 2 @@ -111,7 +111,7 @@ Stream2 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream2 DEBUG Adding private ToolHandle tool Stream2.Stream2_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream2 DEBUG Adding private ToolHandle tool Stream2.Stream2Tool (AthenaOutputStreamTool) Stream2 DEBUG Data Deps for Stream2 - + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + + INPUT IGNORED ( 'AthenaAttributeList' , '' ) HistogramPersis...WARNING Histograms saving not required. EventSelector INFO Enter McEventSelector Initialization AthenaEventLoopMgr INFO Setup EventSelector service EventSelector diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref index 4e6287a612e6..7042739a6387 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref @@ -149,7 +149,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + + INPUT IGNORED ( 'AthenaAttributeList' , '' ) HistogramPersis...WARNING Histograms saving not required. AthenaEventLoopMgr INFO Setup EventSelector service EventSelector ApplicationMgr INFO Application Manager Initialized successfully diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref index 528a8eafa92f..e41ef8c4a354 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref @@ -164,7 +164,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + + INPUT IGNORED ( 'AthenaAttributeList' , '' ) WriteTag INFO in initialize() RegStream1 DEBUG Property update for OutputLevel : new value = 2 RegStream1.RegS... DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref index 16902ec87322..d5b6f177bf49 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref @@ -170,7 +170,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) + + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) RegStream1 DEBUG Property update for OutputLevel : new value = 2 RegStream1.RegS... DEBUG Property update for OutputLevel : new value = 2 ClassIDSvc INFO getRegistryEntries: read 337 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref index 6f672495b7a8..c4bb4e660790 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref @@ -164,7 +164,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) + + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) RegStream1 DEBUG Property update for OutputLevel : new value = 2 RegStream1.RegS... DEBUG Property update for OutputLevel : new value = 2 ClassIDSvc INFO getRegistryEntries: read 337 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref index ed44d8ae1628..15dca7c5fc1d 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref @@ -170,7 +170,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) + + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) RegStream1 DEBUG Property update for OutputLevel : new value = 2 RegStream1.RegS... DEBUG Property update for OutputLevel : new value = 2 ClassIDSvc INFO getRegistryEntries: read 337 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref index e7e8af748b58..bc21750f1414 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref @@ -77,7 +77,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT IGNORED ( 'AthenaAttributeList' , '' ) + + INPUT IGNORED ( 'AthenaAttributeList' , '' ) HistogramPersis...WARNING Histograms saving not required. EventSelector INFO Enter McEventSelector Initialization AthenaEventLoopMgr INFO Setup EventSelector service EventSelector diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref index 2e7173b25c49..0b430d985d21 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref @@ -78,7 +78,7 @@ Stream1 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream1 DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool) Stream1 DEBUG Data Deps for Stream1 - + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) + + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+MagicTag' ) ClassIDSvc INFO getRegistryEntries: read 337 CLIDRegistry entries for module ALL Stream2 DEBUG Property update for OutputLevel : new value = 2 Stream2.Stream2... DEBUG Property update for OutputLevel : new value = 2 @@ -104,7 +104,7 @@ Stream2 DEBUG Registering all Tools in ToolHandleArray HelperTools Stream2 DEBUG Adding private ToolHandle tool Stream2.Stream2_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools Stream2 DEBUG Adding private ToolHandle tool Stream2.Stream2Tool (AthenaOutputStreamTool) Stream2 DEBUG Data Deps for Stream2 - + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+RunEventTag' ) + + INPUT ( 'AthenaAttributeList' , 'StoreGateSvc+RunEventTag' ) DecisionSvc INFO Inserting stream: Stream3 with no Algs Stream3.Stream3... INFO Initializing Stream3.Stream3Tool - package version AthenaServices-00-00-00 Stream3.Stream3... INFO Initializing Stream3.Stream3_MakeEventStreamInfo - package version OutputStreamAthenaPool-00-00-00 diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx index 743e32375a81..ae6e4bfd1122 100644 --- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx +++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.cxx @@ -222,8 +222,7 @@ StatusCode PoolSvc::setupPersistencySvc() { //__________________________________________________________________________ StatusCode PoolSvc::start() { // Switiching on ROOT implicit multi threading for AthenaMT - if (Gaudi::Concurrency::ConcurrencyFlags::numThreads() > 1) { - + if (m_useROOTIMT && Gaudi::Concurrency::ConcurrencyFlags::numThreads() > 1) { if (!m_persistencySvcVec[IPoolSvc::kInputStream]->session().technologySpecificAttributes(pool::ROOT_StorageType.type()).setAttribute<int>("ENABLE_IMPLICITMT", Gaudi::Concurrency::ConcurrencyFlags::numThreads() - 1)) { ATH_MSG_FATAL("Failed to enable implicit multithreading in ROOT via PersistencySvc."); return(StatusCode::FAILURE); @@ -979,6 +978,7 @@ PoolSvc::PoolSvc(const std::string& name, ISvcLocator* pSvcLocator) : m_guidLists() { declareProperty("WriteCatalog", m_writeCatalog = "xmlcatalog_file:PoolFileCatalog.xml"); declareProperty("ReadCatalog", m_readCatalog); + declareProperty("UseROOTImplicitMT", m_useROOTIMT = true); declareProperty("AttemptCatalogPatch", m_attemptCatalogPatch = true); declareProperty("ConnectionRetrialPeriod", m_retrialPeriod = 300); declareProperty("ConnectionRetrialTimeOut", m_retrialTimeOut = 3600); diff --git a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h index 55cc9e9a3d23..15aed6cd8ad4 100644 --- a/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h +++ b/Database/AthenaPOOL/PoolSvc/src/PoolSvc.h @@ -203,6 +203,8 @@ private: // properties StringProperty m_writeCatalog; /// ReadCatalog, the list of additional POOL input file catalogs to consult: default = empty vector. StringArrayProperty m_readCatalog; + /// Use ROOT Implicit MultiThreading, default = true. + BooleanProperty m_useROOTIMT; /// AttemptCatalogPatch, option to create catalog: default = false. BooleanProperty m_attemptCatalogPatch; /// ConnectionRetrialPeriod, retry period for CORAL Connection Service: default = 30 seconds -- GitLab From 99f4f03d654bf683ab192fe07e0d79ae9dbc4669 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Fri, 25 Jan 2019 18:58:10 +0000 Subject: [PATCH 125/192] Add test of bs decoding --- .../TrigOutputHandling/src/HLTEDMCreator.cxx | 11 +- .../TrigOutputHandling/src/HLTEDMCreator.h | 3 +- .../src/HLTEDMCreatorAlg.cxx | 34 ++ .../TrigOutputHandling/src/HLTEDMCreatorAlg.h | 30 ++ .../src/TriggerEDMDeserialiserAlg.cxx | 5 +- .../components/TrigOutputHandling_entries.cxx | 2 + .../TrigUpgradeTest/CMakeLists.txt | 10 + .../TrigUpgradeTest/share/decodeBS.py | 57 ++++ .../TrigUpgradeTest/share/decodeBS.ref | 301 ++++++++++++++++++ .../TrigUpgradeTest/share/egamma.withViews.py | 16 +- .../TrigUpgradeTest/share/egammaRunData.ref | 130 ++++++++ .../TrigUpgradeTest/test/test_decodeBS.sh | 16 + .../test/test_egamma_run_data.sh | 7 +- 13 files changed, 604 insertions(+), 18 deletions(-) create mode 100644 Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.cxx create mode 100644 Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.h create mode 100644 Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.py create mode 100644 Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.ref create mode 100644 Trigger/TrigValidation/TrigUpgradeTest/share/egammaRunData.ref create mode 100755 Trigger/TrigValidation/TrigUpgradeTest/test/test_decodeBS.sh diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx index 689666dbd7c0..68b31538f4b4 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx @@ -183,7 +183,7 @@ StatusCode HLTEDMCreator::fixLinks( const ConstHandlesGroup< xAOD::TrigComposite } // Store the remapped TCs - SG::WriteHandle<xAOD::TrigCompositeContainer> writeHandle( "remap_" + writeHandleKey.key() ); + SG::WriteHandle<xAOD::TrigCompositeContainer> writeHandle( m_remapKey + writeHandleKey.key() ); CHECK(output.record( writeHandle )); } } @@ -195,12 +195,14 @@ template<typename T, typename G, typename M> StatusCode HLTEDMCreator::createIfMissing( const EventContext& context, const ConstHandlesGroup<T>& handles, G& generator, M merger ) const { for ( auto writeHandleKey : handles.out ) { + SG::ReadHandle<T> readHandle( writeHandleKey.key() ); - + ATH_MSG_DEBUG( "Checking " << writeHandleKey.key() ); + if ( readHandle.isValid() ) { ATH_MSG_DEBUG( "The " << writeHandleKey.key() << " already present" ); } else { - ATH_MSG_DEBUG( "The " << writeHandleKey.key() << " was absent, creating it, possibly filling with content from views" ); + ATH_MSG_DEBUG( "The " << writeHandleKey.key() << " was absent, creating it" ); generator.create(); if ( handles.views.size() != 0 ) { @@ -264,7 +266,8 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const { CREATE_XAOD( MuonContainer, MuonAuxContainer ); // After view collections are merged, need to update collection links - CHECK( fixLinks( ConstHandlesGroup<xAOD::TrigCompositeContainer>( m_TrigCompositeContainer, m_TrigCompositeContainerInViews, m_TrigCompositeContainerViews ) ) ); + if ( m_fixLinks ) + ATH_CHECK( fixLinks( ConstHandlesGroup<xAOD::TrigCompositeContainer>( m_TrigCompositeContainer, m_TrigCompositeContainerInViews, m_TrigCompositeContainerViews ) ) ); #undef CREATE_XAOD #undef CREATE_XAOD_NO_MERGE diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h index f631f57517c8..359f2b96ded9 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h @@ -68,7 +68,8 @@ class HLTEDMCreator: public extends<AthAlgTool, IHLTOutputTool> { private: HLTEDMCreator(); - + Gaudi::Property<std::string> m_remapKey{ this, "RemapKey", "remap_", "Prefix for remapped collections"}; + Gaudi::Property<bool> m_fixLinks{ this, "FixLinks", true, "Fix links that may be pointing objects in views"}; #define DEF_VIEWS(__TYPE) \ SG::ReadHandleKeyArray< ViewContainer > m_##__TYPE##Views{ this, #__TYPE"Views", {}, "Name views from where the "#__TYPE" will be read"} diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.cxx new file mode 100644 index 000000000000..fd6e5b680214 --- /dev/null +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.cxx @@ -0,0 +1,34 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include "HLTEDMCreatorAlg.h" + +HLTEDMCreatorAlg::HLTEDMCreatorAlg(const std::string& name, ISvcLocator* pSvcLocator) : + AthReentrantAlgorithm(name, pSvcLocator) +{ +} + +HLTEDMCreatorAlg::~HLTEDMCreatorAlg() +{ +} + +StatusCode HLTEDMCreatorAlg::initialize() +{ + ATH_CHECK( m_tools.retrieve() ); + return StatusCode::SUCCESS; +} + +StatusCode HLTEDMCreatorAlg::finalize() +{ + return StatusCode::SUCCESS; +} + +StatusCode HLTEDMCreatorAlg::execute(const EventContext& context) const +{ + for ( auto& t: m_tools ) { + ATH_CHECK( t->createOutput( context ) ); + } + return StatusCode::SUCCESS; +} + diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.h b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.h new file mode 100644 index 000000000000..02155fa328f9 --- /dev/null +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreatorAlg.h @@ -0,0 +1,30 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ +#ifndef TRIGOUTPUTHANDLING_HLTEDMCREATORALG_H +#define TRIGOUTPUTHANDLING_HLTEDMCREATORALG_H + + +#include "AthenaBaseComps/AthReentrantAlgorithm.h" +#include "DecisionHandling/IHLTOutputTool.h" + +#include <string> + +/** + * @class HLTEDMCreatorAlg + * @brief + **/ +class HLTEDMCreatorAlg : public AthReentrantAlgorithm { +public: + HLTEDMCreatorAlg(const std::string& name, ISvcLocator* pSvcLocator); + virtual ~HLTEDMCreatorAlg() override; + + virtual StatusCode initialize() override; + virtual StatusCode execute(const EventContext& context) const override; + virtual StatusCode finalize() override; + +private: + ToolHandleArray<IHLTOutputTool> m_tools{ this, "OutputTools", {}, "Tools that generate output"}; +}; + +#endif // TRIGOUTPUTHANDLING_HLTEDMCREATORALG_H diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx index 14c08b9e06de..4de3368cb920 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx @@ -51,6 +51,9 @@ StatusCode TriggerEDMDeserialiserAlg::execute(const EventContext& context) const }; auto resultHandle = SG::makeHandle( m_resultKey, context ); + if ( resultHandle.isValid() ) + ATH_MSG_DEBUG("Obtained HLTResultMT " << m_resultKey.key() ); + const Payload* dataptr = nullptr; // TODO: revise if there are use cases where result may be not available in some events if ( resultHandle->getSerialisedData( m_moduleID, dataptr ).isFailure() ) { @@ -66,7 +69,7 @@ StatusCode TriggerEDMDeserialiserAlg::execute(const EventContext& context) const std::string transientType; ATH_CHECK( m_clidSvc->getTypeNameOfID( clid, transientType ) ); const std::string actualTypeName{ name.substr(0, name.find('#')) }; - const std::string key{ name.substr( name.find('#') ) }; + const std::string key{ name.substr( name.find('#')+1 ) }; ATH_MSG_DEBUG( "fragment: clid, type, key, size " << clid << " " << transientType<< " " << actualTypeName << " " << key << " " << bsize ); resize( bsize ); diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/components/TrigOutputHandling_entries.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/components/TrigOutputHandling_entries.cxx index 81a554dac933..ebc99e25e1ae 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/components/TrigOutputHandling_entries.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/components/TrigOutputHandling_entries.cxx @@ -1,4 +1,5 @@ #include "../HLTEDMCreator.h" +#include "../HLTEDMCreatorAlg.h" #include "../StreamTagMakerTool.h" #include "../HLTResultMTMakerAlg.h" #include "TrigOutputHandling/HLTResultMTMaker.h" @@ -8,6 +9,7 @@ #include "../TriggerEDMDeserialiserAlg.h" DECLARE_COMPONENT( HLTEDMCreator ) +DECLARE_COMPONENT( HLTEDMCreatorAlg ) DECLARE_COMPONENT( HLTResultMTMakerAlg ) DECLARE_COMPONENT( HLTResultMTMaker ) DECLARE_COMPONENT( StreamTagMakerTool ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt b/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt index 7d3df74a6b4f..4d8de0a33b11 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigUpgradeTest/CMakeLists.txt @@ -67,8 +67,18 @@ atlas_add_test( IDRunData SCRIPT test/test_id_run_data.sh file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_egammaRunData ) atlas_add_test( egammaRunData SCRIPT test/test_egamma_run_data.sh + PROPERTIES TIMEOUT 1000 + EXTRA_PATTERNS "-s TrigSignatureMoniMT.*HLT_.*|Payload size after inserting" + PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_egammaRunData + ) + + +atlas_add_test( decodeBS + SCRIPT test/test_decodeBS.sh PROPERTIES TIMEOUT 1000 + EXTRA_PATTERNS "-s .*absent.*|.*present.*|.*fragment: clid, type, key.*" PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_egammaRunData + DEPENDS egammaRunData ) file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_photonMenu ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.py b/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.py new file mode 100644 index 000000000000..8705ff003925 --- /dev/null +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.py @@ -0,0 +1,57 @@ +# +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# + +include("TrigUpgradeTest/testHLT_MT.py") + +from AthenaCommon.AlgSequence import AlgSequence, AthSequencer +topSequence = AlgSequence() + +from TrigHLTResultByteStream.TrigHLTResultByteStreamConf import HLTResultMTByteStreamDecoderAlg +decoder = HLTResultMTByteStreamDecoderAlg() +decoder.OutputLevel=DEBUG +topSequence += decoder + + +from TrigOutputHandling.TrigOutputHandlingConf import TriggerEDMDeserialiserAlg +deserialiser = TriggerEDMDeserialiserAlg() +deserialiser.OutputLevel=DEBUG +topSequence += deserialiser + +from OutputStreamAthenaPool.OutputStreamAthenaPool import createOutputStream +StreamESD=createOutputStream("StreamESD","myESDfromBS.pool.root",True) +topSequence.remove( StreamESD ) +StreamESD.ItemList += [ "xAOD::TrigElectronContainer#HLT_xAOD__TrigElectronContainer_L2ElectronFex", + "xAOD::TrackParticleContainer#HLT_xAOD_TrackParticleContainer_L2ElectronTracks", + "xAOD::TrigEMClusterContainer#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters"] + +StreamESD.ItemList += [ "xAOD::TrigElectronAuxContainer#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux.", + "xAOD::TrackParticleAuxContainer#HLT_xAOD_TrackParticleContainer_L2ElectronTracksAux.", + "xAOD::TrigEMClusterAuxContainer#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux."] + +StreamESD.ItemList += [ "EventInfo#ByteStreamEventInfo" ] + +decisions = [ "EgammaCaloDecisions", "L2CaloLinks", "FilteredEgammaCaloDecisions", "FilteredEMRoIDecisions", "EMRoIDecisions", "RerunEMRoIDecisions" ] +StreamESD.ItemList += [ "xAOD::TrigCompositeContainer#remap_"+d for d in decisions ] +StreamESD.ItemList += [ "xAOD::TrigCompositeAuxContainer#remap_"+d+"Aux." for d in decisions ] + + +from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreator +egammaCreator = HLTEDMCreator("egammaCreator") +egammaCreator.FixLinks=False +egammaCreator.OutputLevel=DEBUG +egammaCreator.TrigCompositeContainer = [ "remap_"+d for d in decisions ] + +egammaCreator.TrackParticleContainer = [ "HLT_xAOD_TrackParticleContainer_L2ElectronTracks" ] +egammaCreator.TrigElectronContainer = [ "HLT_xAOD__TrigElectronContainer_L2ElectronFex" ] +egammaCreator.TrigEMClusterContainer = [ "HLT_xAOD__TrigEMClusterContainer_L2CaloClusters" ] + +from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreatorAlg +fillGaps = HLTEDMCreatorAlg( "FillMissingEDM" ) +fillGaps.OutputTools = [ egammaCreator ] + + +outSequence = AthSequencer("AthOutSeq") +outSequence += fillGaps +outSequence += StreamESD + diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.ref new file mode 100644 index 000000000000..617b3d1b586e --- /dev/null +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/decodeBS.ref @@ -0,0 +1,301 @@ +Py:inputFilePeeker INFO stream_names not present in input bytestream file. Giving default name 'StreamRAW' +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 304 +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 663 +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 0 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 610 +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 0 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 0 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 0 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 0 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 641 +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1623 +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 1 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 2726 +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 1 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 1 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 1 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 1 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 851 +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2263 +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 2 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 1622 +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 2 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 2 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 2 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 2 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 629 +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1623 +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 3 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3186 +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 3 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 3 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 3 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 3 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 419 +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 983 +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 4 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 886 +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 4 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 4 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 4 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 4 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 954 +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2583 +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 5 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 4474 +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 5 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 5 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 5 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 5 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 308 +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 663 +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 6 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 1070 +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 6 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 6 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 6 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 6 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 522 +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1303 +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 7 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 2910 +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 7 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 7 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 7 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 7 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 427 +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 983 +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 8 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 702 +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 8 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 8 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 8 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 8 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 183 +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 343 +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 9 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 334 +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 9 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 9 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 9 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 9 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 661 +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1623 +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 10 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3370 +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 10 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 10 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 10 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 10 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 304 +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 663 +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 11 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 702 +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 11 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 11 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 11 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 11 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 1093 +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2903 +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 12 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3738 +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 12 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 12 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 12 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 12 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 431 +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 983 +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 13 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 2358 +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 13 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 13 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 13 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 13 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 308 +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 663 +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 14 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 610 +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 14 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 14 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 14 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 14 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 183 +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 343 +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 15 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 334 +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 15 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 15 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 15 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 15 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 300 +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 663 +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 16 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 978 +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 16 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 16 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 16 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 16 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 431 +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 983 +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 17 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 1254 +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 17 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 17 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 17 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 17 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 427 +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 983 +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 18 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 702 +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 18 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 18 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 18 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 18 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1333228823 xAOD::TrigCompositeContainer xAOD::TrigCompositeContainer_v1 remap_EgammaCaloDecisions 69 +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1175586382 xAOD::TrigCompositeAuxContainer xAOD::TrigCompositeAuxContainer_v1 remap_EgammaCaloDecisionsAux. 526 +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1264979038 xAOD::TrigEMClusterContainer xAOD::TrigEMClusterContainer_v1 HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 69 +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1111649561 xAOD::TrigEMClusterAuxContainer xAOD::TrigEMClusterAuxContainer_v2 HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1303 +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1119645201 xAOD::TrigElectronContainer xAOD::TrigElectronContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFex 68 +TriggerEDMDeserialiserAlg 19 0 DEBUG fragment: clid, type, key, size 1180743572 xAOD::TrigElectronAuxContainer xAOD::TrigElectronAuxContainer_v1 HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3186 +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_EgammaCaloDecisions already present +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_L2CaloLinks was absent, creating it +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_FilteredEgammaCaloDecisions was absent, creating it +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_FilteredEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_EMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 19 0 DEBUG The remap_RerunEMRoIDecisions was absent, creating it +FillMissingEDM.egammaCreator 19 0 DEBUG The HLT_xAOD__TrigElectronContainer_L2ElectronFex already present +FillMissingEDM.egammaCreator 19 0 DEBUG The HLT_xAOD__TrigEMClusterContainer_L2CaloClusters already present +FillMissingEDM.egammaCreator 19 0 DEBUG The HLT_xAOD_TrackParticleContainer_L2ElectronTracks was absent, creating it diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py index 833f7afac3a9..a56d814fe0c7 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py @@ -247,7 +247,7 @@ summary = TriggerSummaryAlg( "TriggerSummaryAlg" ) summary.InputDecision = "L1DecoderSummary" summary.FinalDecisions = [ "ElectronL2Decisions", "MuonL2Decisions" ] -from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreator +from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreator, HLTEDMCreatorAlg egammaViewsMerger = HLTEDMCreator("egammaViewsMerger") egammaViewsMerger.TrigCompositeContainer = [ "filterCaloRoIsAlg", "EgammaCaloDecisions","ElectronL2Decisions", "MuonL2Decisions", "EMRoIDecisions", "METRoIDecisions", "MURoIDecisions", "L1DecoderSummary", "JRoIDecisions", "MonitoringSummaryStep1", "RerunEMRoIDecisions", "RerunMURoIDecisions", "TAURoIDecisions", "L2CaloLinks", "FilteredEMRoIDecisions", "FilteredEgammaCaloDecisions" ] @@ -269,11 +269,10 @@ egammaViewsMerger.OutputLevel = VERBOSE svcMgr.StoreGateSvc.OutputLevel = INFO -summary.OutputTools = [ egammaViewsMerger ] +edmMakerAlg = HLTEDMCreatorAlg("EDMMaker") +edmMakerAlg.OutputTools = [ egammaViewsMerger ] -summary.OutputLevel = DEBUG - step0filter = parOR("step0filter", [ findAlgorithm( egammaCaloStep, "filterL1RoIsAlg") ] ) step1filter = parOR("step1filter", [ findAlgorithm(egammaIDStep, "filterCaloRoIsAlg") ] ) step2filter = parOR("step2filter", [ findAlgorithm(egammaEFCaloStep, "filterL2ElectronRoIsAlg") ] ) @@ -392,8 +391,8 @@ deserialiser = TriggerEDMDeserialiserAlg() deserialiser.Prefix="SERIALISED_" deserialiser.OutputLevel=DEBUG -# add prefix + remove version to class name -l = [ c.split("#")[0].split("_")[0] + "#" + deserialiser.Prefix + c.split("#")[1] for c in serialiser.CollectionsToSerialize ] +# # add prefix + remove version to class name +# l = [ c.split("#")[0].split("_")[0] + "#" + deserialiser.Prefix + c.split("#")[1] for c in serialiser.CollectionsToSerialize ] #StreamESD.ItemList += l @@ -408,8 +407,9 @@ svcMgr.ByteStreamAddressProviderSvc.TypeNames = ["ROIB::RoIBResult/RoIBResult", from ByteStreamCnvSvc import WriteByteStream streamBS = WriteByteStream.getStream("EventStorage","StreamBSFileOutput") +streamBS.OutputLevel=DEBUG ServiceMgr.ByteStreamCnvSvc.OutputLevel = VERBOSE -ServiceMgr.ByteStreamCnvSvc.IsSimulation = True +ServiceMgr.ByteStreamCnvSvc.IsSimulation = False ServiceMgr.ByteStreamCnvSvc.InitCnvs += ["HLT::HLTResultMT"] streamBS.ItemList += ["HLT::HLTResultMT#HLTResultMT"] @@ -421,7 +421,7 @@ svcMgr.ByteStreamEventStorageOutputSvc.OutputLevel = VERBOSE ################################################################################ # assemble top list of algorithms -hltTop = seqOR( "hltTop", [ steps, summary, summMaker, mon, hltResultMakerAlg, deserialiser, StreamESD, streamBS ] ) +hltTop = seqOR( "hltTop", [ steps, summMaker, mon, edmMakerAlg, hltResultMakerAlg, StreamESD, streamBS, deserialiser ] ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRunData.ref b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRunData.ref new file mode 100644 index 000000000000..1522012c690a --- /dev/null +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRunData.ref @@ -0,0 +1,130 @@ +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 544 bytes +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 716 bytes +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1540 bytes +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1708 bytes +HLTRMakerAlg.MKTool.Serialiser 0 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3316 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 884 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1056 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2852 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 3020 bytes +HLTRMakerAlg.MKTool.Serialiser 1 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 8032 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 1092 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1264 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 3708 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 3876 bytes +HLTRMakerAlg.MKTool.Serialiser 2 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 7112 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 872 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1044 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2840 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 3008 bytes +HLTRMakerAlg.MKTool.Serialiser 3 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 8760 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 660 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 832 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1980 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2148 bytes +HLTRMakerAlg.MKTool.Serialiser 4 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 4200 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 1196 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1368 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 4136 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 4304 bytes +HLTRMakerAlg.MKTool.Serialiser 5 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 12128 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 548 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 720 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1544 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1712 bytes +HLTRMakerAlg.MKTool.Serialiser 6 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 4060 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 764 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 936 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2408 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2576 bytes +HLTRMakerAlg.MKTool.Serialiser 7 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 7884 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 668 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 840 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1988 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2156 bytes +HLTRMakerAlg.MKTool.Serialiser 8 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3912 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 424 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 596 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1048 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1216 bytes +HLTRMakerAlg.MKTool.Serialiser 9 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 1656 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 904 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1076 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2872 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 3040 bytes +HLTRMakerAlg.MKTool.Serialiser 10 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 9088 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 544 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 716 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1540 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1708 bytes +HLTRMakerAlg.MKTool.Serialiser 11 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3464 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 1336 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 1508 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 4600 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 4768 bytes +HLTRMakerAlg.MKTool.Serialiser 12 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 11408 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 672 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 844 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1992 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2160 bytes +HLTRMakerAlg.MKTool.Serialiser 13 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 6580 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 548 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 720 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1544 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1712 bytes +HLTRMakerAlg.MKTool.Serialiser 14 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3320 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 424 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 596 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1048 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1216 bytes +HLTRMakerAlg.MKTool.Serialiser 15 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 1656 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 540 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 712 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1536 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 1704 bytes +HLTRMakerAlg.MKTool.Serialiser 16 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3904 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 672 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 844 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1992 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2160 bytes +HLTRMakerAlg.MKTool.Serialiser 17 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 4804 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 668 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 840 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 1988 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2156 bytes +HLTRMakerAlg.MKTool.Serialiser 18 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 3912 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigCompositeContainer_v1#remap_EgammaCaloDecisions 152 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigCompositeAuxContainer_v1#remap_EgammaCaloDecisionsAux. 768 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigEMClusterContainer_v1#HLT_xAOD__TrigEMClusterContainer_L2CaloClusters 940 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigEMClusterAuxContainer_v2#HLT_xAOD__TrigEMClusterContainer_L2CaloClustersAux. 2412 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigElectronContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFex 2580 bytes +HLTRMakerAlg.MKTool.Serialiser 19 0 DEBUG Payload size after inserting xAOD::TrigElectronAuxContainer_v1#HLT_xAOD__TrigElectronContainer_L2ElectronFexAux. 8332 bytes +TrigSignatureMoniMT INFO HLT_2e3_etcut 20 10 6 5 5 +TrigSignatureMoniMT INFO HLT_2e3_etcut decisions 16 83 +TrigSignatureMoniMT INFO HLT_e3_etcut 20 9 8 8 8 +TrigSignatureMoniMT INFO HLT_e3_etcut decisions 22 107 +TrigSignatureMoniMT INFO HLT_e3e5_etcut 20 20 18 11 11 +TrigSignatureMoniMT INFO HLT_e3e5_etcut decisions 54 239 +TrigSignatureMoniMT INFO HLT_e5_etcut 20 20 17 17 17 +TrigSignatureMoniMT INFO HLT_e5_etcut decisions 52 255 +TrigSignatureMoniMT INFO HLT_e7_etcut 20 20 11 11 11 +TrigSignatureMoniMT INFO HLT_e7_etcut decisions 17 119 diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_decodeBS.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_decodeBS.sh new file mode 100755 index 000000000000..ea29332352d6 --- /dev/null +++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_decodeBS.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# art-type: build +# art-include: master/Athena + +# +FNAME=data_test.00327265.Single_Stream.daq.RAW._lb0100._Athena._0000.data +if [ -f ${FNAME} ] +then + athena --threads=1 --filesInput=${FNAME} -c "doL1Unpacking=False" TrigUpgradeTest/decodeBS.py && + checkxAOD.py myESDfromBS.pool.root + +else + echo "missing input BS file, preceeding test failed" + exit -1 +fi + diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_egamma_run_data.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_egamma_run_data.sh index 66a8ac9d77ca..78bc7cbc808b 100755 --- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_egamma_run_data.sh +++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_egamma_run_data.sh @@ -2,9 +2,8 @@ # art-type: build # art-include: master/Athena -# clear BS from previous runs +#clear BS from previous runs rm -rf data_test.*.data - -athena --dump-configuration=cfg.txt --threads=1 --skipEvents=10 --evtMax=20 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" TrigUpgradeTest/egamma.withViews.py #&& +athena --threads=1 --skipEvents=10 --evtMax=20 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" TrigUpgradeTest/egamma.withViews.py && checkxAOD.py myESD.pool.root && -athena TrigUpgradeTest/checkESD.py +athena TrigUpgradeTest/checkESD.py -- GitLab From 46ce5f698822a5f39048b033cccdbcfe03e7068d Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Fri, 25 Jan 2019 19:36:32 +0000 Subject: [PATCH 126/192] the dict should contain just enums --- .../ElectronPhotonSelectorTools/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools/CMakeLists.txt b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools/CMakeLists.txt index e5d09c5a10ef..29e15c8097da 100644 --- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools/CMakeLists.txt +++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonSelectorTools/CMakeLists.txt @@ -52,8 +52,7 @@ endif() atlas_add_dictionary( ElectronPhotonSelectorToolsDict ElectronPhotonSelectorTools/ElectronPhotonSelectorToolsCoreDict.h - ElectronPhotonSelectorTools/selectionCore.xml - LINK_LIBRARIES ElectronPhotonSelectorToolsLib ) + ElectronPhotonSelectorTools/selectionCore.xml) atlas_add_dictionary( ElectronPhotonSelectorToolsPythonDict ElectronPhotonSelectorTools/ElectronPhotonSelectorToolsPythonDict.h -- GitLab From 026129401663351eb48bd9cf7fdc0cfe8c0f8d9b Mon Sep 17 00:00:00 2001 From: MihaMuskinja <miha.muskinja@gmail.com> Date: Sat, 26 Jan 2019 00:43:04 +0100 Subject: [PATCH 127/192] TrkG4UserActions: fix ubsan warnings. --- .../TrkG4UserActions/GeantFollowerHelper.h | 73 ++- .../TrkG4UserActions/GeantFollowerMSHelper.h | 160 ++--- .../src/GeantFollowerHelper.cxx | 182 +++--- .../src/GeantFollowerMSHelper.cxx | 613 ++++++++---------- 4 files changed, 483 insertions(+), 545 deletions(-) diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h index 2850eb2dd85e..bfc3e93eac86 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerHelper.h @@ -61,40 +61,45 @@ namespace Trk std::string m_validationTreeFolder; //!< stream/folder to for the TTree to be written out TTree* m_validationTree; //!< Root Validation Tree - /** Ntuple variables : initial parameters*/ - mutable float m_t_x; - mutable float m_t_y; - mutable float m_t_z; - mutable float m_t_theta; - mutable float m_t_eta; - mutable float m_t_phi; - mutable float m_t_p; - mutable float m_t_charge; - mutable int m_t_pdg; - /** Ntuple variables : g4 step parameters */ - mutable int m_g4_steps; - mutable float m_g4_p[MAXPROBES]; - mutable float m_g4_eta[MAXPROBES]; - mutable float m_g4_theta[MAXPROBES]; - mutable float m_g4_phi[MAXPROBES]; - mutable float m_g4_x[MAXPROBES]; - mutable float m_g4_y[MAXPROBES]; - mutable float m_g4_z[MAXPROBES]; - mutable float m_g4_tX0[MAXPROBES]; - mutable float m_g4_t[MAXPROBES]; - mutable float m_g4_X0[MAXPROBES]; - /** Ntuple variables : trk follow up parameters */ - mutable int m_trk_status[MAXPROBES]; - mutable float m_trk_p[MAXPROBES]; - mutable float m_trk_eta[MAXPROBES]; - mutable float m_trk_theta[MAXPROBES]; - mutable float m_trk_phi[MAXPROBES]; - mutable float m_trk_x[MAXPROBES]; - mutable float m_trk_y[MAXPROBES]; - mutable float m_trk_z[MAXPROBES]; - mutable float m_trk_lx[MAXPROBES]; - mutable float m_trk_ly[MAXPROBES]; - + /** Ntuple variables : initial parameters + Split this out into a separate, dynamically-allocated block. + Otherwise, the CaloCellNoiseAlg is so large that it violates + the ubsan sanity checks. **/ + struct TreeData { + mutable float m_t_x {0}; + mutable float m_t_y {0}; + mutable float m_t_z {0}; + mutable float m_t_theta {0}; + mutable float m_t_eta {0}; + mutable float m_t_phi {0}; + mutable float m_t_p {0}; + mutable float m_t_charge {0}; + mutable int m_t_pdg {0}; + /** Ntuple variables : g4 step parameters */ + mutable int m_g4_steps {0}; + mutable float m_g4_p[MAXPROBES] {0}; + mutable float m_g4_eta[MAXPROBES] {0}; + mutable float m_g4_theta[MAXPROBES] {0}; + mutable float m_g4_phi[MAXPROBES] {0}; + mutable float m_g4_x[MAXPROBES] {0}; + mutable float m_g4_y[MAXPROBES] {0}; + mutable float m_g4_z[MAXPROBES] {0}; + mutable float m_g4_tX0[MAXPROBES] {0}; + mutable float m_g4_t[MAXPROBES] {0}; + mutable float m_g4_X0[MAXPROBES] {0}; + /** Ntuple variables : trk follow up parameters */ + mutable int m_trk_status[MAXPROBES] {0}; + mutable float m_trk_p[MAXPROBES] {0}; + mutable float m_trk_eta[MAXPROBES] {0}; + mutable float m_trk_theta[MAXPROBES] {0}; + mutable float m_trk_phi[MAXPROBES] {0}; + mutable float m_trk_x[MAXPROBES] {0}; + mutable float m_trk_y[MAXPROBES] {0}; + mutable float m_trk_z[MAXPROBES] {0}; + mutable float m_trk_lx[MAXPROBES] {0}; + mutable float m_trk_ly[MAXPROBES] {0}; + }; + std::unique_ptr<TreeData> m_treeData; }; } diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h index dc03743420b6..5f3c11e7b93f 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h +++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/GeantFollowerMSHelper.h @@ -90,83 +90,89 @@ namespace Trk std::string m_validationTreeFolder; //!< stream/folder to for the TTree to be written out TTree* m_validationTree; //!< Root Validation Tree - mutable float m_t_x; - mutable float m_t_y; - mutable float m_t_z; - mutable float m_t_theta; - mutable float m_t_eta; - mutable float m_t_phi; - mutable float m_t_p; - mutable float m_t_charge; - mutable int m_t_pdg; - mutable float m_m_x; - mutable float m_m_y; - mutable float m_m_z; - mutable float m_m_theta; - mutable float m_m_eta; - mutable float m_m_phi; - mutable float m_m_p; - mutable float m_b_x; - mutable float m_b_y; - mutable float m_b_z; - mutable float m_b_theta; - mutable float m_b_eta; - mutable float m_b_phi; - mutable float m_b_p; - mutable float m_b_X0; - mutable float m_b_Eloss; - /** Ntuple variables : g4 step parameters */ - mutable int m_g4_steps; - mutable float m_g4_p[MAXPROBES]; - mutable float m_g4_eta[MAXPROBES]; - mutable float m_g4_theta[MAXPROBES]; - mutable float m_g4_phi[MAXPROBES]; - mutable float m_g4_x[MAXPROBES]; - mutable float m_g4_y[MAXPROBES]; - mutable float m_g4_z[MAXPROBES]; - mutable float m_g4_tX0[MAXPROBES]; - mutable float m_g4_t[MAXPROBES]; - mutable float m_g4_X0[MAXPROBES]; - /** Ntuple variables : trk follow up parameters */ - mutable int m_trk_status[MAXPROBES]; - mutable float m_trk_p[MAXPROBES]; - mutable float m_trk_eta[MAXPROBES]; - mutable float m_trk_theta[MAXPROBES]; - mutable float m_trk_phi[MAXPROBES]; - mutable float m_trk_x[MAXPROBES]; - mutable float m_trk_y[MAXPROBES]; - mutable float m_trk_z[MAXPROBES]; - mutable float m_trk_lx[MAXPROBES]; - mutable float m_trk_ly[MAXPROBES]; - mutable float m_trk_eloss[MAXPROBES]; - mutable float m_trk_eloss1[MAXPROBES]; - mutable float m_trk_eloss0[MAXPROBES]; - mutable float m_trk_eloss5[MAXPROBES]; - mutable float m_trk_eloss10[MAXPROBES]; - mutable float m_trk_scaleeloss[MAXPROBES]; - mutable float m_trk_scalex0[MAXPROBES]; - mutable float m_trk_x0[MAXPROBES]; - mutable float m_trk_erd0[MAXPROBES]; - mutable float m_trk_erz0[MAXPROBES]; - mutable float m_trk_erphi[MAXPROBES]; - mutable float m_trk_ertheta[MAXPROBES]; - mutable float m_trk_erqoverp[MAXPROBES]; - /** Scattering centra from Trk */ - mutable int m_trk_scats; - mutable int m_trk_sstatus[500]; - mutable float m_trk_sx[500]; - mutable float m_trk_sy[500]; - mutable float m_trk_sz[500]; - mutable float m_trk_sx0[500]; - mutable float m_trk_seloss[500]; - mutable float m_trk_smeanIoni[500]; - mutable float m_trk_ssigIoni[500]; - mutable float m_trk_smeanRad[500]; - mutable float m_trk_ssigRad[500]; - mutable float m_trk_ssigTheta[500]; - mutable float m_trk_ssigPhi[500]; - mutable int m_g4_stepsMS; - + /** Ntuple variables : initial parameters + Split this out into a separate, dynamically-allocated block. + Otherwise, the CaloCellNoiseAlg is so large that it violates + the ubsan sanity checks. **/ + struct TreeData { + mutable float m_t_x {0}; + mutable float m_t_y {0}; + mutable float m_t_z {0}; + mutable float m_t_theta {0}; + mutable float m_t_eta {0}; + mutable float m_t_phi {0}; + mutable float m_t_p {0}; + mutable float m_t_charge {0}; + mutable int m_t_pdg {0}; + mutable float m_m_x {0}; + mutable float m_m_y {0}; + mutable float m_m_z {0}; + mutable float m_m_theta {0}; + mutable float m_m_eta {0}; + mutable float m_m_phi {0}; + mutable float m_m_p {0}; + mutable float m_b_x {0}; + mutable float m_b_y {0}; + mutable float m_b_z {0}; + mutable float m_b_theta {0}; + mutable float m_b_eta {0}; + mutable float m_b_phi {0}; + mutable float m_b_p {0}; + mutable float m_b_X0 {0}; + mutable float m_b_Eloss {0}; + /** Ntuple variables : g4 step parameters */ + mutable int m_g4_steps {0}; + mutable float m_g4_p[MAXPROBES] {0}; + mutable float m_g4_eta[MAXPROBES] {0}; + mutable float m_g4_theta[MAXPROBES] {0}; + mutable float m_g4_phi[MAXPROBES] {0}; + mutable float m_g4_x[MAXPROBES] {0}; + mutable float m_g4_y[MAXPROBES] {0}; + mutable float m_g4_z[MAXPROBES] {0}; + mutable float m_g4_tX0[MAXPROBES] {0}; + mutable float m_g4_t[MAXPROBES] {0}; + mutable float m_g4_X0[MAXPROBES] {0}; + /** Ntuple variables : trk follow up parameters */ + mutable int m_trk_status[MAXPROBES] {0}; + mutable float m_trk_p[MAXPROBES] {0}; + mutable float m_trk_eta[MAXPROBES] {0}; + mutable float m_trk_theta[MAXPROBES] {0}; + mutable float m_trk_phi[MAXPROBES] {0}; + mutable float m_trk_x[MAXPROBES] {0}; + mutable float m_trk_y[MAXPROBES] {0}; + mutable float m_trk_z[MAXPROBES] {0}; + mutable float m_trk_lx[MAXPROBES] {0}; + mutable float m_trk_ly[MAXPROBES] {0}; + mutable float m_trk_eloss[MAXPROBES] {0}; + mutable float m_trk_eloss1[MAXPROBES] {0}; + mutable float m_trk_eloss0[MAXPROBES] {0}; + mutable float m_trk_eloss5[MAXPROBES] {0}; + mutable float m_trk_eloss10[MAXPROBES] {0}; + mutable float m_trk_scaleeloss[MAXPROBES] {0}; + mutable float m_trk_scalex0[MAXPROBES] {0}; + mutable float m_trk_x0[MAXPROBES] {0}; + mutable float m_trk_erd0[MAXPROBES] {0}; + mutable float m_trk_erz0[MAXPROBES] {0}; + mutable float m_trk_erphi[MAXPROBES] {0}; + mutable float m_trk_ertheta[MAXPROBES] {0}; + mutable float m_trk_erqoverp[MAXPROBES] {0}; + /** Scattering centra from Trk */ + mutable int m_trk_scats {0}; + mutable int m_trk_sstatus[500] {0}; + mutable float m_trk_sx[500] {0}; + mutable float m_trk_sy[500] {0}; + mutable float m_trk_sz[500] {0}; + mutable float m_trk_sx0[500] {0}; + mutable float m_trk_seloss[500] {0}; + mutable float m_trk_smeanIoni[500] {0}; + mutable float m_trk_ssigIoni[500] {0}; + mutable float m_trk_smeanRad[500] {0}; + mutable float m_trk_ssigRad[500] {0}; + mutable float m_trk_ssigTheta[500] {0}; + mutable float m_trk_ssigPhi[500] {0}; + mutable int m_g4_stepsMS {0}; + }; + std::unique_ptr<TreeData> m_treeData; }; } diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx index 811beb16287c..a97d7902d9a3 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx @@ -31,9 +31,7 @@ Trk::GeantFollowerHelper::GeantFollowerHelper(const std::string& t, const std::s m_validationTreeName("G4Follower_"+n), m_validationTreeDescription("Output of the G4Follower_"), m_validationTreeFolder("/val/G4Follower_"+n), - m_validationTree(nullptr), - m_t_x{}, m_t_y{}, m_t_z{}, m_t_theta{},m_t_eta{},m_t_phi{}, m_t_p{}, m_t_charge{}, m_t_pdg{}, - m_g4_steps{} + m_validationTree(nullptr) { // properties declareProperty("Extrapolator", m_extrapolator); @@ -49,6 +47,8 @@ Trk::GeantFollowerHelper::~GeantFollowerHelper() // initialize StatusCode Trk::GeantFollowerHelper::initialize() { + m_treeData = std::make_unique<TreeData>(); + if (m_extrapolator.retrieve().isFailure()){ ATH_MSG_ERROR("Could not retrieve Extrapolator " << m_extrapolator << " . Abort."); return StatusCode::FAILURE; @@ -57,50 +57,50 @@ StatusCode Trk::GeantFollowerHelper::initialize() // create the new Tree m_validationTree = new TTree(m_validationTreeName.c_str(), m_validationTreeDescription.c_str()); - m_validationTree->Branch("InitX", &m_t_x, "initX/F"); - m_validationTree->Branch("InitY", &m_t_y, "initY/F"); - m_validationTree->Branch("InitZ", &m_t_z, "initZ/F"); - m_validationTree->Branch("InitTheta", &m_t_theta, "initTheta/F"); - m_validationTree->Branch("InitEta", &m_t_eta, "initEta/F"); - m_validationTree->Branch("InitPhi", &m_t_phi, "initPhi/F"); - m_validationTree->Branch("InitP", &m_t_p, "initP/F"); - m_validationTree->Branch("InitPdg", &m_t_pdg, "initPdg/I"); - m_validationTree->Branch("InitCharge", &m_t_charge, "initQ/F"); - - m_validationTree->Branch("G4Steps", &m_g4_steps, "g4steps/I"); - m_validationTree->Branch("G4StepP", m_g4_p, "g4stepP[g4steps]/F"); - m_validationTree->Branch("G4StepEta", m_g4_eta, "g4stepEta[g4steps]/F"); - m_validationTree->Branch("G4StepTheta", m_g4_theta, "g4stepTheta[g4steps]/F"); - m_validationTree->Branch("G4StepPhi", m_g4_phi, "g4stepPhi[g4steps]/F"); - m_validationTree->Branch("G4StepX", m_g4_x, "g4stepX[g4steps]/F"); - m_validationTree->Branch("G4StepY", m_g4_y, "g4stepY[g4steps]/F"); - m_validationTree->Branch("G4StepZ", m_g4_z, "g4stepZ[g4steps]/F"); - m_validationTree->Branch("G4AccumTX0", m_g4_tX0, "g4stepAccTX0[g4steps]/F"); - m_validationTree->Branch("G4StepT", m_g4_t, "g4stepTX[g4steps]/F"); - m_validationTree->Branch("G4StepX0", m_g4_X0, "g4stepX0[g4steps]/F"); - - m_validationTree->Branch("TrkStepStatus",m_trk_status, "trkstepStatus[g4steps]/I"); - m_validationTree->Branch("TrkStepP", m_trk_p, "trkstepP[g4steps]/F"); - m_validationTree->Branch("TrkStepEta", m_trk_eta, "trkstepEta[g4steps]/F"); - m_validationTree->Branch("TrkStepTheta", m_trk_theta, "trkstepTheta[g4steps]/F"); - m_validationTree->Branch("TrkStepPhi", m_trk_phi, "trkstepPhi[g4steps]/F"); - m_validationTree->Branch("TrkStepX", m_trk_x, "trkstepX[g4steps]/F"); - m_validationTree->Branch("TrkStepY", m_trk_y, "trkstepY[g4steps]/F"); - m_validationTree->Branch("TrkStepZ", m_trk_z, "trkstepZ[g4steps]/F"); - m_validationTree->Branch("TrkStepLocX", m_trk_lx, "trkstepLX[g4steps]/F"); - m_validationTree->Branch("TrkStepLocY", m_trk_ly, "trkstepLY[g4steps]/F"); + m_validationTree->Branch("InitX", &m_treeData->m_t_x, "initX/F"); + m_validationTree->Branch("InitY", &m_treeData->m_t_y, "initY/F"); + m_validationTree->Branch("InitZ", &m_treeData->m_t_z, "initZ/F"); + m_validationTree->Branch("InitTheta", &m_treeData->m_t_theta, "initTheta/F"); + m_validationTree->Branch("InitEta", &m_treeData->m_t_eta, "initEta/F"); + m_validationTree->Branch("InitPhi", &m_treeData->m_t_phi, "initPhi/F"); + m_validationTree->Branch("InitP", &m_treeData->m_t_p, "initP/F"); + m_validationTree->Branch("InitPdg", &m_treeData->m_t_pdg, "initPdg/I"); + m_validationTree->Branch("InitCharge", &m_treeData->m_t_charge, "initQ/F"); + + m_validationTree->Branch("G4Steps", &m_treeData->m_g4_steps, "g4steps/I"); + m_validationTree->Branch("G4StepP", m_treeData->m_g4_p, "g4stepP[g4steps]/F"); + m_validationTree->Branch("G4StepEta", m_treeData->m_g4_eta, "g4stepEta[g4steps]/F"); + m_validationTree->Branch("G4StepTheta", m_treeData->m_g4_theta, "g4stepTheta[g4steps]/F"); + m_validationTree->Branch("G4StepPhi", m_treeData->m_g4_phi, "g4stepPhi[g4steps]/F"); + m_validationTree->Branch("G4StepX", m_treeData->m_g4_x, "g4stepX[g4steps]/F"); + m_validationTree->Branch("G4StepY", m_treeData->m_g4_y, "g4stepY[g4steps]/F"); + m_validationTree->Branch("G4StepZ", m_treeData->m_g4_z, "g4stepZ[g4steps]/F"); + m_validationTree->Branch("G4AccumTX0", m_treeData->m_g4_tX0, "g4stepAccTX0[g4steps]/F"); + m_validationTree->Branch("G4StepT", m_treeData->m_g4_t, "g4stepTX[g4steps]/F"); + m_validationTree->Branch("G4StepX0", m_treeData->m_g4_X0, "g4stepX0[g4steps]/F"); + + m_validationTree->Branch("TrkStepStatus",m_treeData->m_trk_status, "trkstepStatus[g4steps]/I"); + m_validationTree->Branch("TrkStepP", m_treeData->m_trk_p, "trkstepP[g4steps]/F"); + m_validationTree->Branch("TrkStepEta", m_treeData->m_trk_eta, "trkstepEta[g4steps]/F"); + m_validationTree->Branch("TrkStepTheta", m_treeData->m_trk_theta, "trkstepTheta[g4steps]/F"); + m_validationTree->Branch("TrkStepPhi", m_treeData->m_trk_phi, "trkstepPhi[g4steps]/F"); + m_validationTree->Branch("TrkStepX", m_treeData->m_trk_x, "trkstepX[g4steps]/F"); + m_validationTree->Branch("TrkStepY", m_treeData->m_trk_y, "trkstepY[g4steps]/F"); + m_validationTree->Branch("TrkStepZ", m_treeData->m_trk_z, "trkstepZ[g4steps]/F"); + m_validationTree->Branch("TrkStepLocX", m_treeData->m_trk_lx, "trkstepLX[g4steps]/F"); + m_validationTree->Branch("TrkStepLocY", m_treeData->m_trk_ly, "trkstepLY[g4steps]/F"); // initialize - m_t_x = 0.; - m_t_y = 0.; - m_t_z = 0.; - m_t_theta = 0.; - m_t_eta = 0.; - m_t_phi = 0.; - m_t_p = 0.; - m_t_charge = 0.; - m_t_pdg = 0; - m_g4_steps = 0; + m_treeData->m_t_x = 0.; + m_treeData->m_t_y = 0.; + m_treeData->m_t_z = 0.; + m_treeData->m_t_theta = 0.; + m_treeData->m_t_eta = 0.; + m_treeData->m_t_phi = 0.; + m_treeData->m_t_p = 0.; + m_treeData->m_t_charge = 0.; + m_treeData->m_t_pdg = 0; + m_treeData->m_g4_steps = 0; // now register the Tree ITHistSvc* tHistSvc = 0; @@ -124,16 +124,16 @@ StatusCode Trk::GeantFollowerHelper::finalize() void Trk::GeantFollowerHelper::beginEvent() const { - m_t_x = 0.; - m_t_y = 0.; - m_t_z = 0.; - m_t_theta = 0.; - m_t_eta = 0.; - m_t_phi = 0.; - m_t_p = 0.; - m_t_charge = 0.; - m_t_pdg = 0; - m_g4_steps = 0; + m_treeData->m_t_x = 0.; + m_treeData->m_t_y = 0.; + m_treeData->m_t_z = 0.; + m_treeData->m_t_theta = 0.; + m_treeData->m_t_eta = 0.; + m_treeData->m_t_phi = 0.; + m_treeData->m_t_p = 0.; + m_treeData->m_t_charge = 0.; + m_treeData->m_t_pdg = 0; + m_treeData->m_g4_steps = 0; m_tX0Cache = 0.; } @@ -145,37 +145,37 @@ void Trk::GeantFollowerHelper::trackParticle(const G4ThreeVector& pos, // construct the initial parameters Amg::Vector3D npos(pos.x(),pos.y(),pos.z()); Amg::Vector3D nmom(mom.x(),mom.y(),mom.z()); - if (!m_g4_steps){ + if (!m_treeData->m_g4_steps){ ATH_MSG_INFO("Initial step ... preparing event cache."); - m_t_x = pos.x(); - m_t_y = pos.y(); - m_t_z = pos.z(); - m_t_theta = mom.theta(); - m_t_eta = mom.eta(); - m_t_phi = mom.phi(); - m_t_p = mom.mag(); - m_t_charge = charge; - m_t_pdg = pdg; - m_g4_steps = -1; + m_treeData->m_t_x = pos.x(); + m_treeData->m_t_y = pos.y(); + m_treeData->m_t_z = pos.z(); + m_treeData->m_t_theta = mom.theta(); + m_treeData->m_t_eta = mom.eta(); + m_treeData->m_t_phi = mom.phi(); + m_treeData->m_t_p = mom.mag(); + m_treeData->m_t_charge = charge; + m_treeData->m_t_pdg = pdg; + m_treeData->m_g4_steps = -1; m_tX0Cache = 0.; m_parameterCache = new Trk::CurvilinearParameters(npos, nmom, charge); return; } // jumping over inital step - m_g4_steps = (m_g4_steps == -1) ? 0 : m_g4_steps; + m_treeData->m_g4_steps = (m_treeData->m_g4_steps == -1) ? 0 : m_treeData->m_g4_steps; if (!m_parameterCache){ ATH_MSG_WARNING("No Parameters available. Bailing out."); return; } - if ( m_g4_steps >= MAXPROBES) { + if ( m_treeData->m_g4_steps >= MAXPROBES) { ATH_MSG_WARNING("Maximum number of " << MAXPROBES << " reached, step is ignored."); return; } // parameters of the G4 step point - Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_t_charge); + Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_treeData->m_t_charge); // destination surface const Trk::PlaneSurface& destinationSurface = g4Parameters->associatedSurface(); // extrapolate to the destination surface @@ -183,29 +183,29 @@ void Trk::GeantFollowerHelper::trackParticle(const G4ThreeVector& pos, m_extrapolator->extrapolateDirectly(*m_parameterCache,destinationSurface,Trk::alongMomentum,false) : m_extrapolator->extrapolate(*m_parameterCache,destinationSurface,Trk::alongMomentum,false); // fill the geant information and the trk information - m_g4_p[m_g4_steps] = mom.mag(); - m_g4_eta[m_g4_steps] = mom.eta(); - m_g4_theta[m_g4_steps] = mom.theta(); - m_g4_phi[m_g4_steps] = mom.phi(); - m_g4_x[m_g4_steps] = pos.x(); - m_g4_y[m_g4_steps] = pos.y(); - m_g4_z[m_g4_steps] = pos.z(); + m_treeData->m_g4_p[m_treeData->m_g4_steps] = mom.mag(); + m_treeData->m_g4_eta[m_treeData->m_g4_steps] = mom.eta(); + m_treeData->m_g4_theta[m_treeData->m_g4_steps] = mom.theta(); + m_treeData->m_g4_phi[m_treeData->m_g4_steps] = mom.phi(); + m_treeData->m_g4_x[m_treeData->m_g4_steps] = pos.x(); + m_treeData->m_g4_y[m_treeData->m_g4_steps] = pos.y(); + m_treeData->m_g4_z[m_treeData->m_g4_steps] = pos.z(); float tX0 = X0 > 10e-5 ? t/X0 : 0.; m_tX0Cache += tX0; - m_g4_tX0[m_g4_steps] = m_tX0Cache; - m_g4_t[m_g4_steps] = t; - m_g4_X0[m_g4_steps] = X0; - - m_trk_status[m_g4_steps] = trkParameters ? 1 : 0; - m_trk_p[m_g4_steps] = trkParameters ? trkParameters->momentum().mag() : 0.; - m_trk_eta[m_g4_steps] = trkParameters ? trkParameters->momentum().eta() : 0.; - m_trk_theta[m_g4_steps] = trkParameters ? trkParameters->momentum().theta() : 0.; - m_trk_phi[m_g4_steps] = trkParameters ? trkParameters->momentum().phi() : 0.; - m_trk_x[m_g4_steps] = trkParameters ? trkParameters->position().x() : 0.; - m_trk_y[m_g4_steps] = trkParameters ? trkParameters->position().y() : 0.; - m_trk_z[m_g4_steps] = trkParameters ? trkParameters->position().z() : 0.; - m_trk_lx[m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locX] : 0.; - m_trk_ly[m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locY] : 0.; + m_treeData->m_g4_tX0[m_treeData->m_g4_steps] = m_tX0Cache; + m_treeData->m_g4_t[m_treeData->m_g4_steps] = t; + m_treeData->m_g4_X0[m_treeData->m_g4_steps] = X0; + + m_treeData->m_trk_status[m_treeData->m_g4_steps] = trkParameters ? 1 : 0; + m_treeData->m_trk_p[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().mag() : 0.; + m_treeData->m_trk_eta[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().eta() : 0.; + m_treeData->m_trk_theta[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().theta() : 0.; + m_treeData->m_trk_phi[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().phi() : 0.; + m_treeData->m_trk_x[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().x() : 0.; + m_treeData->m_trk_y[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().y() : 0.; + m_treeData->m_trk_z[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().z() : 0.; + m_treeData->m_trk_lx[m_treeData->m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locX] : 0.; + m_treeData->m_trk_ly[m_treeData->m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locY] : 0.; // update the parameters if needed/configured if (m_extrapolateIncrementally && trkParameters) { @@ -214,7 +214,7 @@ void Trk::GeantFollowerHelper::trackParticle(const G4ThreeVector& pos, } // delete cache and increment delete g4Parameters; - ++m_g4_steps; + ++m_treeData->m_g4_steps; } void Trk::GeantFollowerHelper::endEvent() const diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx index 03beb28cebc3..b40b928634e7 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx @@ -41,80 +41,6 @@ Trk::GeantFollowerMSHelper::GeantFollowerMSHelper(const std::string& t, const st , m_validationTreeDescription("Output of the G4Follower_") , m_validationTreeFolder("/val/G4Follower") , m_validationTree(nullptr) - , m_t_x(0.) - , m_t_y(0.) - , m_t_z(0.) - , m_t_theta(0.) - , m_t_eta(0.) - , m_t_phi(0.) - , m_t_p(0.) - , m_t_charge(0.) - , m_t_pdg(0) - , m_m_x(0.) - , m_m_y(0.) - , m_m_z(0.) - , m_m_theta(0.) - , m_m_eta(0.) - , m_m_phi(0.) - , m_m_p(0.) - , m_b_x(0.) - , m_b_y(0.) - , m_b_z(0.) - , m_b_theta(0.) - , m_b_eta(0.) - , m_b_phi(0.) - , m_b_p(0.) - , m_b_X0(0.) - , m_b_Eloss(0.) - , m_g4_steps(-1) - , m_g4_p{0} - , m_g4_eta{0} - , m_g4_theta{0} - , m_g4_phi{0} - , m_g4_x{0} - , m_g4_y{0} - , m_g4_z{0} - , m_g4_tX0{0} - , m_g4_t{0} - , m_g4_X0{0} - , m_trk_status{0} - , m_trk_p{0} - , m_trk_eta{0} - , m_trk_theta{0} - , m_trk_phi{0} - , m_trk_x{0} - , m_trk_y{0} - , m_trk_z{0} - , m_trk_lx{0} - , m_trk_ly{0} - , m_trk_eloss{0} - , m_trk_eloss1{0} - , m_trk_eloss0{0} - , m_trk_eloss5{0} - , m_trk_eloss10{0} - , m_trk_scaleeloss{0} - , m_trk_scalex0{0} - , m_trk_x0{0} - , m_trk_erd0{0} - , m_trk_erz0{0} - , m_trk_erphi{0} - , m_trk_ertheta{0} - , m_trk_erqoverp{0} - , m_trk_scats(0) - , m_trk_sstatus{0} - , m_trk_sx{0} - , m_trk_sy{0} - , m_trk_sz{0} - , m_trk_sx0{0} - , m_trk_seloss{0} - , m_trk_smeanIoni{0} - , m_trk_ssigIoni{0} - , m_trk_smeanRad{0} - , m_trk_ssigRad{0} - , m_trk_ssigTheta{0} - , m_trk_ssigPhi{0} - , m_g4_stepsMS(-1) - { // properties declareProperty("Extrapolator", m_extrapolator); @@ -134,7 +60,8 @@ Trk::GeantFollowerMSHelper::~GeantFollowerMSHelper() // initialize StatusCode Trk::GeantFollowerMSHelper::initialize() { - + m_treeData = std::make_unique<TreeData>(); + if (m_extrapolator.retrieve().isFailure()){ ATH_MSG_ERROR("Could not retrieve Extrapolator " << m_extrapolator << " . Abort."); return StatusCode::FAILURE; @@ -155,117 +82,117 @@ StatusCode Trk::GeantFollowerMSHelper::initialize() // create the new Tree m_validationTree = new TTree(m_validationTreeName.c_str(), m_validationTreeDescription.c_str()); - m_validationTree->Branch("InitX", &m_t_x, "initX/F"); - m_validationTree->Branch("InitY", &m_t_y, "initY/F"); - m_validationTree->Branch("InitZ", &m_t_z, "initZ/F"); - m_validationTree->Branch("InitTheta", &m_t_theta, "initTheta/F"); - m_validationTree->Branch("InitEta", &m_t_eta, "initEta/F"); - m_validationTree->Branch("InitPhi", &m_t_phi, "initPhi/F"); - m_validationTree->Branch("InitP", &m_t_p, "initP/F"); - m_validationTree->Branch("InitPdg", &m_t_pdg, "initPdg/I"); - m_validationTree->Branch("InitCharge", &m_t_charge, "initQ/F"); - - m_validationTree->Branch("MEntryX", &m_m_x, "mentryX/F"); - m_validationTree->Branch("MEntryY", &m_m_y, "mentryY/F"); - m_validationTree->Branch("MEntryZ", &m_m_z, "mentryZ/F"); - m_validationTree->Branch("MEntryTheta", &m_m_theta, "mentryTheta/F"); - m_validationTree->Branch("MEntryEta", &m_m_eta, "mentryEta/F"); - m_validationTree->Branch("MEntryPhi", &m_m_phi, "mentryPhi/F"); - m_validationTree->Branch("MEntryP", &m_m_p, "mentryP/F"); - - m_validationTree->Branch("BackX", &m_b_x, "backX/F"); - m_validationTree->Branch("BackY", &m_b_y, "backY/F"); - m_validationTree->Branch("BackZ", &m_b_z, "backZ/F"); - m_validationTree->Branch("BackTheta", &m_b_theta, "backTheta/F"); - m_validationTree->Branch("BackEta", &m_b_eta, "backEta/F"); - m_validationTree->Branch("BackPhi", &m_b_phi, "backPhi/F"); - m_validationTree->Branch("BackP", &m_b_p, "backP/F"); - m_validationTree->Branch("BackX0", &m_b_X0, "backX0/F"); - m_validationTree->Branch("BackEloss", &m_b_Eloss, "backEloss/F"); + m_validationTree->Branch("InitX", &m_treeData->m_t_x, "initX/F"); + m_validationTree->Branch("InitY", &m_treeData->m_t_y, "initY/F"); + m_validationTree->Branch("InitZ", &m_treeData->m_t_z, "initZ/F"); + m_validationTree->Branch("InitTheta", &m_treeData->m_t_theta, "initTheta/F"); + m_validationTree->Branch("InitEta", &m_treeData->m_t_eta, "initEta/F"); + m_validationTree->Branch("InitPhi", &m_treeData->m_t_phi, "initPhi/F"); + m_validationTree->Branch("InitP", &m_treeData->m_t_p, "initP/F"); + m_validationTree->Branch("InitPdg", &m_treeData->m_t_pdg, "initPdg/I"); + m_validationTree->Branch("InitCharge", &m_treeData->m_t_charge, "initQ/F"); + + m_validationTree->Branch("MEntryX", &m_treeData->m_m_x, "mentryX/F"); + m_validationTree->Branch("MEntryY", &m_treeData->m_m_y, "mentryY/F"); + m_validationTree->Branch("MEntryZ", &m_treeData->m_m_z, "mentryZ/F"); + m_validationTree->Branch("MEntryTheta", &m_treeData->m_m_theta, "mentryTheta/F"); + m_validationTree->Branch("MEntryEta", &m_treeData->m_m_eta, "mentryEta/F"); + m_validationTree->Branch("MEntryPhi", &m_treeData->m_m_phi, "mentryPhi/F"); + m_validationTree->Branch("MEntryP", &m_treeData->m_m_p, "mentryP/F"); + + m_validationTree->Branch("BackX", &m_treeData->m_b_x, "backX/F"); + m_validationTree->Branch("BackY", &m_treeData->m_b_y, "backY/F"); + m_validationTree->Branch("BackZ", &m_treeData->m_b_z, "backZ/F"); + m_validationTree->Branch("BackTheta", &m_treeData->m_b_theta, "backTheta/F"); + m_validationTree->Branch("BackEta", &m_treeData->m_b_eta, "backEta/F"); + m_validationTree->Branch("BackPhi", &m_treeData->m_b_phi, "backPhi/F"); + m_validationTree->Branch("BackP", &m_treeData->m_b_p, "backP/F"); + m_validationTree->Branch("BackX0", &m_treeData->m_b_X0, "backX0/F"); + m_validationTree->Branch("BackEloss", &m_treeData->m_b_Eloss, "backEloss/F"); - m_validationTree->Branch("G4Steps", &m_g4_steps, "g4steps/I"); - m_validationTree->Branch("TrkStepScats", &m_trk_scats, "trkscats/I"); - - m_validationTree->Branch("G4StepP", m_g4_p, "g4stepP[g4steps]/F"); - m_validationTree->Branch("G4StepEta", m_g4_eta, "g4stepEta[g4steps]/F"); - m_validationTree->Branch("G4StepTheta", m_g4_theta, "g4stepTheta[g4steps]/F"); - m_validationTree->Branch("G4StepPhi", m_g4_phi, "g4stepPhi[g4steps]/F"); - m_validationTree->Branch("G4StepX", m_g4_x, "g4stepX[g4steps]/F"); - m_validationTree->Branch("G4StepY", m_g4_y, "g4stepY[g4steps]/F"); - m_validationTree->Branch("G4StepZ", m_g4_z, "g4stepZ[g4steps]/F"); - m_validationTree->Branch("G4AccumTX0", m_g4_tX0, "g4stepAccTX0[g4steps]/F"); - m_validationTree->Branch("G4StepT", m_g4_t, "g4stepTX[g4steps]/F"); - m_validationTree->Branch("G4StepX0", m_g4_X0, "g4stepX0[g4steps]/F"); + m_validationTree->Branch("G4Steps", &m_treeData->m_g4_steps, "g4steps/I"); + m_validationTree->Branch("TrkStepScats", &m_treeData->m_trk_scats, "trkscats/I"); + + m_validationTree->Branch("G4StepP", m_treeData->m_g4_p, "g4stepP[g4steps]/F"); + m_validationTree->Branch("G4StepEta", m_treeData->m_g4_eta, "g4stepEta[g4steps]/F"); + m_validationTree->Branch("G4StepTheta", m_treeData->m_g4_theta, "g4stepTheta[g4steps]/F"); + m_validationTree->Branch("G4StepPhi", m_treeData->m_g4_phi, "g4stepPhi[g4steps]/F"); + m_validationTree->Branch("G4StepX", m_treeData->m_g4_x, "g4stepX[g4steps]/F"); + m_validationTree->Branch("G4StepY", m_treeData->m_g4_y, "g4stepY[g4steps]/F"); + m_validationTree->Branch("G4StepZ", m_treeData->m_g4_z, "g4stepZ[g4steps]/F"); + m_validationTree->Branch("G4AccumTX0", m_treeData->m_g4_tX0, "g4stepAccTX0[g4steps]/F"); + m_validationTree->Branch("G4StepT", m_treeData->m_g4_t, "g4stepTX[g4steps]/F"); + m_validationTree->Branch("G4StepX0", m_treeData->m_g4_X0, "g4stepX0[g4steps]/F"); - m_validationTree->Branch("TrkStepStatus",m_trk_status, "trkstepStatus[g4steps]/I"); - m_validationTree->Branch("TrkStepP", m_trk_p, "trkstepP[g4steps]/F"); - m_validationTree->Branch("TrkStepEta", m_trk_eta, "trkstepEta[g4steps]/F"); - m_validationTree->Branch("TrkStepTheta", m_trk_theta, "trkstepTheta[g4steps]/F"); - m_validationTree->Branch("TrkStepPhi", m_trk_phi, "trkstepPhi[g4steps]/F"); - m_validationTree->Branch("TrkStepX", m_trk_x, "trkstepX[g4steps]/F"); - m_validationTree->Branch("TrkStepY", m_trk_y, "trkstepY[g4steps]/F"); - m_validationTree->Branch("TrkStepZ", m_trk_z, "trkstepZ[g4steps]/F"); - m_validationTree->Branch("TrkStepLocX", m_trk_lx, "trkstepLX[g4steps]/F"); - m_validationTree->Branch("TrkStepLocY", m_trk_ly, "trkstepLY[g4steps]/F"); - m_validationTree->Branch("TrkStepEloss", m_trk_eloss, "trkstepEloss[g4steps]/F"); - m_validationTree->Branch("TrkStepEloss1", m_trk_eloss1, "trkstepEloss1[g4steps]/F"); - m_validationTree->Branch("TrkStepEloss0", m_trk_eloss0, "trkstepEloss0[g4steps]/F"); - m_validationTree->Branch("TrkStepEloss5", m_trk_eloss5, "trkstepEloss5[g4steps]/F"); - m_validationTree->Branch("TrkStepEloss10", m_trk_eloss10,"trkstepEloss10[g4steps]/F"); - m_validationTree->Branch("TrkStepScaleEloss",m_trk_scaleeloss, "trkstepScaleEloss[g4steps]/F"); - m_validationTree->Branch("TrkStepScaleX0",m_trk_scalex0,"trkstepScaleX0[g4steps]/F"); - m_validationTree->Branch("TrkStepX0", m_trk_x0, "trkstepX0[g4steps]/F"); - m_validationTree->Branch("TrkStepErd0", m_trk_erd0, "trkstepErd0[g4steps]/F"); - m_validationTree->Branch("TrkStepErz0", m_trk_erz0, "trkstepErz0[g4steps]/F"); - m_validationTree->Branch("TrkStepErphi", m_trk_erphi, "trkstepErphi[g4steps]/F"); - m_validationTree->Branch("TrkStepErtheta",m_trk_ertheta,"trkstepErtheta[g4steps]/F"); - m_validationTree->Branch("TrkStepErqoverp",m_trk_erqoverp,"trkstepErqoverp[g4steps]/F"); + m_validationTree->Branch("TrkStepStatus",m_treeData->m_trk_status, "trkstepStatus[g4steps]/I"); + m_validationTree->Branch("TrkStepP", m_treeData->m_trk_p, "trkstepP[g4steps]/F"); + m_validationTree->Branch("TrkStepEta", m_treeData->m_trk_eta, "trkstepEta[g4steps]/F"); + m_validationTree->Branch("TrkStepTheta", m_treeData->m_trk_theta, "trkstepTheta[g4steps]/F"); + m_validationTree->Branch("TrkStepPhi", m_treeData->m_trk_phi, "trkstepPhi[g4steps]/F"); + m_validationTree->Branch("TrkStepX", m_treeData->m_trk_x, "trkstepX[g4steps]/F"); + m_validationTree->Branch("TrkStepY", m_treeData->m_trk_y, "trkstepY[g4steps]/F"); + m_validationTree->Branch("TrkStepZ", m_treeData->m_trk_z, "trkstepZ[g4steps]/F"); + m_validationTree->Branch("TrkStepLocX", m_treeData->m_trk_lx, "trkstepLX[g4steps]/F"); + m_validationTree->Branch("TrkStepLocY", m_treeData->m_trk_ly, "trkstepLY[g4steps]/F"); + m_validationTree->Branch("TrkStepEloss", m_treeData->m_trk_eloss, "trkstepEloss[g4steps]/F"); + m_validationTree->Branch("TrkStepEloss1", m_treeData->m_trk_eloss1, "trkstepEloss1[g4steps]/F"); + m_validationTree->Branch("TrkStepEloss0", m_treeData->m_trk_eloss0, "trkstepEloss0[g4steps]/F"); + m_validationTree->Branch("TrkStepEloss5", m_treeData->m_trk_eloss5, "trkstepEloss5[g4steps]/F"); + m_validationTree->Branch("TrkStepEloss10", m_treeData->m_trk_eloss10,"trkstepEloss10[g4steps]/F"); + m_validationTree->Branch("TrkStepScaleEloss",m_treeData->m_trk_scaleeloss, "trkstepScaleEloss[g4steps]/F"); + m_validationTree->Branch("TrkStepScaleX0",m_treeData->m_trk_scalex0,"trkstepScaleX0[g4steps]/F"); + m_validationTree->Branch("TrkStepX0", m_treeData->m_trk_x0, "trkstepX0[g4steps]/F"); + m_validationTree->Branch("TrkStepErd0", m_treeData->m_trk_erd0, "trkstepErd0[g4steps]/F"); + m_validationTree->Branch("TrkStepErz0", m_treeData->m_trk_erz0, "trkstepErz0[g4steps]/F"); + m_validationTree->Branch("TrkStepErphi", m_treeData->m_trk_erphi, "trkstepErphi[g4steps]/F"); + m_validationTree->Branch("TrkStepErtheta",m_treeData->m_trk_ertheta,"trkstepErtheta[g4steps]/F"); + m_validationTree->Branch("TrkStepErqoverp",m_treeData->m_trk_erqoverp,"trkstepErqoverp[g4steps]/F"); - m_validationTree->Branch("TrkStepScatStatus", m_trk_sstatus,"trkscatStatus[trkscats]/I"); - m_validationTree->Branch("TrkStepScatX", m_trk_sx, "trkscatX[trkscats]/F"); - m_validationTree->Branch("TrkStepScatY", m_trk_sy, "trkscatY[trkscats]/F"); - m_validationTree->Branch("TrkStepScatZ", m_trk_sz, "trkscatZ[trkscats]/F"); - m_validationTree->Branch("TrkStepScatX0", m_trk_sx0, "trkscatX0[trkscats]/F"); - m_validationTree->Branch("TrkStepScatEloss", m_trk_seloss, "trkscatEloss[trkscats]/F"); - m_validationTree->Branch("TrkStepScatMeanIoni",m_trk_smeanIoni, "trkscatMeanIoni[trkscats]/F"); - m_validationTree->Branch("TrkStepScatSigIoni",m_trk_ssigIoni, "trkscatSigIoni[trkscats]/F"); - m_validationTree->Branch("TrkStepScatMeanRad",m_trk_smeanRad, "trkscatMeanRad[trkscats]/F"); - m_validationTree->Branch("TrkStepScatSigRad", m_trk_ssigRad, "trkscatSigRad[trkscats]/F"); - m_validationTree->Branch("TrkStepScatSigTheta", m_trk_ssigTheta, "trkscatSigTheta[trkscats]/F"); - m_validationTree->Branch("TrkStepScatSigPhi", m_trk_ssigPhi, "trkscatSigPhi[trkscats]/F"); + m_validationTree->Branch("TrkStepScatStatus", m_treeData->m_trk_sstatus,"trkscatStatus[trkscats]/I"); + m_validationTree->Branch("TrkStepScatX", m_treeData->m_trk_sx, "trkscatX[trkscats]/F"); + m_validationTree->Branch("TrkStepScatY", m_treeData->m_trk_sy, "trkscatY[trkscats]/F"); + m_validationTree->Branch("TrkStepScatZ", m_treeData->m_trk_sz, "trkscatZ[trkscats]/F"); + m_validationTree->Branch("TrkStepScatX0", m_treeData->m_trk_sx0, "trkscatX0[trkscats]/F"); + m_validationTree->Branch("TrkStepScatEloss", m_treeData->m_trk_seloss, "trkscatEloss[trkscats]/F"); + m_validationTree->Branch("TrkStepScatMeanIoni",m_treeData->m_trk_smeanIoni, "trkscatMeanIoni[trkscats]/F"); + m_validationTree->Branch("TrkStepScatSigIoni",m_treeData->m_trk_ssigIoni, "trkscatSigIoni[trkscats]/F"); + m_validationTree->Branch("TrkStepScatMeanRad",m_treeData->m_trk_smeanRad, "trkscatMeanRad[trkscats]/F"); + m_validationTree->Branch("TrkStepScatSigRad", m_treeData->m_trk_ssigRad, "trkscatSigRad[trkscats]/F"); + m_validationTree->Branch("TrkStepScatSigTheta", m_treeData->m_trk_ssigTheta, "trkscatSigTheta[trkscats]/F"); + m_validationTree->Branch("TrkStepScatSigPhi", m_treeData->m_trk_ssigPhi, "trkscatSigPhi[trkscats]/F"); // initialize // - m_t_x = 0.; - m_t_y = 0.; - m_t_z = 0.; - m_t_theta = 0.; - m_t_eta = 0.; - m_t_phi = 0.; - m_t_p = 0.; - m_t_charge = 0.; - m_t_pdg = 0; - m_g4_steps = -1; - - m_m_x = 0.; - m_m_y = 0.; - m_m_z = 0.; - m_m_theta = 0.; - m_m_eta = 0.; - m_m_phi = 0.; - m_m_p = 0.; - - m_b_x = 0.; - m_b_y = 0.; - m_b_z = 0.; - m_b_theta = 0.; - m_b_eta = 0.; - m_b_phi = 0.; - m_b_p = 0.; - m_b_X0 = 0.; - m_b_Eloss = 0.; - - m_trk_scats = 0; + m_treeData->m_t_x = 0.; + m_treeData->m_t_y = 0.; + m_treeData->m_t_z = 0.; + m_treeData->m_t_theta = 0.; + m_treeData->m_t_eta = 0.; + m_treeData->m_t_phi = 0.; + m_treeData->m_t_p = 0.; + m_treeData->m_t_charge = 0.; + m_treeData->m_t_pdg = 0; + m_treeData->m_g4_steps = -1; + + m_treeData->m_m_x = 0.; + m_treeData->m_m_y = 0.; + m_treeData->m_m_z = 0.; + m_treeData->m_m_theta = 0.; + m_treeData->m_m_eta = 0.; + m_treeData->m_m_phi = 0.; + m_treeData->m_m_p = 0.; + + m_treeData->m_b_x = 0.; + m_treeData->m_b_y = 0.; + m_treeData->m_b_z = 0.; + m_treeData->m_b_theta = 0.; + m_treeData->m_b_eta = 0.; + m_treeData->m_b_phi = 0.; + m_treeData->m_b_p = 0.; + m_treeData->m_b_X0 = 0.; + m_treeData->m_b_Eloss = 0.; + + m_treeData->m_trk_scats = 0; m_crossedMuonEntry = false; m_exitLayer = false; @@ -294,37 +221,37 @@ StatusCode Trk::GeantFollowerMSHelper::finalize() void Trk::GeantFollowerMSHelper::beginEvent() const { - m_t_x = 0.; - m_t_y = 0.; - m_t_z = 0.; - m_t_theta = 0.; - m_t_eta = 0.; - m_t_phi = 0.; - m_t_p = 0.; - m_t_charge = 0.; - m_t_pdg = 0; - - m_m_x = 0.; - m_m_y = 0.; - m_m_z = 0.; - m_m_theta = 0.; - m_m_eta = 0.; - m_m_phi = 0.; - m_m_p = 0.; - - m_b_x = 0.; - m_b_y = 0.; - m_b_z = 0.; - m_b_theta = 0.; - m_b_eta = 0.; - m_b_phi = 0.; - m_b_p = 0.; - m_b_X0 = 0.; - m_b_Eloss = 0.; - - m_g4_steps = -1; - m_g4_stepsMS = -1; - m_trk_scats = 0; + m_treeData->m_t_x = 0.; + m_treeData->m_t_y = 0.; + m_treeData->m_t_z = 0.; + m_treeData->m_t_theta = 0.; + m_treeData->m_t_eta = 0.; + m_treeData->m_t_phi = 0.; + m_treeData->m_t_p = 0.; + m_treeData->m_t_charge = 0.; + m_treeData->m_t_pdg = 0; + + m_treeData->m_m_x = 0.; + m_treeData->m_m_y = 0.; + m_treeData->m_m_z = 0.; + m_treeData->m_m_theta = 0.; + m_treeData->m_m_eta = 0.; + m_treeData->m_m_phi = 0.; + m_treeData->m_m_p = 0.; + + m_treeData->m_b_x = 0.; + m_treeData->m_b_y = 0.; + m_treeData->m_b_z = 0.; + m_treeData->m_b_theta = 0.; + m_treeData->m_b_eta = 0.; + m_treeData->m_b_phi = 0.; + m_treeData->m_b_p = 0.; + m_treeData->m_b_X0 = 0.; + m_treeData->m_b_Eloss = 0.; + + m_treeData->m_g4_steps = -1; + m_treeData->m_g4_stepsMS = -1; + m_treeData->m_trk_scats = 0; m_tX0Cache = 0.; m_crossedMuonEntry = false; @@ -351,18 +278,18 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // if(m_crossedMuonEntry) std::cout << " crossed Muon Entry " << std::endl; // if(m_exitLayer) std::cout << " crossed Exit Layer " << std::endl; - if (m_g4_steps==-1){ + if (m_treeData->m_g4_steps==-1){ ATH_MSG_INFO("Initial step ... preparing event cache."); - m_t_x = npos.x(); - m_t_y = npos.y(); - m_t_z = npos.z(); - m_t_theta = nmom.theta(); - m_t_eta = nmom.eta(); - m_t_phi = nmom.phi(); - m_t_p = nmom.mag(); - m_t_charge = charge; - m_t_pdg = pdg; - m_g4_steps = 0; + m_treeData->m_t_x = npos.x(); + m_treeData->m_t_y = npos.y(); + m_treeData->m_t_z = npos.z(); + m_treeData->m_t_theta = nmom.theta(); + m_treeData->m_t_eta = nmom.eta(); + m_treeData->m_t_phi = nmom.phi(); + m_treeData->m_t_p = nmom.mag(); + m_treeData->m_t_charge = charge; + m_treeData->m_t_pdg = pdg; + m_treeData->m_g4_steps = 0; m_tX0Cache = 0.; // construct the intial parameters @@ -384,15 +311,15 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // if(useMuonEntry&&!m_crossedMuonEntry&&(fabs(npos.z())>2744||npos.perp()>1106)) { // Muon Entry if(useMuonEntry&&!m_crossedMuonEntry&&(fabs(npos.z())>zMuonEntry||npos.perp()>4254)) { - m_m_x = npos.x(); - m_m_y = npos.y(); - m_m_z = npos.z(); - m_m_theta = nmom.theta(); - m_m_eta = nmom.eta(); - m_m_phi = nmom.phi(); - m_m_p = nmom.mag(); + m_treeData->m_m_x = npos.x(); + m_treeData->m_m_y = npos.y(); + m_treeData->m_m_z = npos.z(); + m_treeData->m_m_theta = nmom.theta(); + m_treeData->m_m_eta = nmom.eta(); + m_treeData->m_m_phi = nmom.phi(); + m_treeData->m_m_p = nmom.mag(); // overwrite everything before ME layer - m_g4_stepsMS = 0; + m_treeData->m_g4_stepsMS = 0; // construct the intial parameters m_parameterCacheMS = new Trk::CurvilinearParameters(npos, nmom, charge); m_parameterCache = new Trk::CurvilinearParameters(npos, nmom, charge); @@ -401,7 +328,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G m_parameterCacheMSCov = new Trk::CurvilinearParameters(npos, nmom, charge, covMatrix); ATH_MSG_DEBUG( "m_crossedMuonEntry x " << m_parameterCacheMS->position().x() << " y " << m_parameterCacheMS->position().y() << " z " << m_parameterCacheMS->position().z() ); m_crossedMuonEntry = true; - Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_t_charge); + Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_treeData->m_t_charge); // Muon Entry m_destinationSurface = &(g4Parameters->associatedSurface()); delete g4Parameters; @@ -409,14 +336,14 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // jumping over inital step - m_g4_steps = (m_g4_steps == -1) ? 0 : m_g4_steps; + m_treeData->m_g4_steps = (m_treeData->m_g4_steps == -1) ? 0 : m_treeData->m_g4_steps; if (!m_parameterCache){ ATH_MSG_WARNING("No Parameters available. Bailing out."); return; } - if ( m_g4_steps >= MAXPROBES) { + if ( m_treeData->m_g4_steps >= MAXPROBES) { ATH_MSG_WARNING("Maximum number of " << MAXPROBES << " reached, step is ignored."); return; } @@ -433,9 +360,9 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // ID envelop // if(fabs(npos.z())>zMuonEntry||npos.perp()>4255) crossedExitLayer = true; if(fabs(npos.z())>21800||npos.perp()>12500) crossedExitLayer = true; - if(m_crossedMuonEntry&&m_g4_steps>=2&&!crossedExitLayer) return; - if(m_g4_steps>2) return; - if(m_g4_steps>4) return; + if(m_crossedMuonEntry&&m_treeData->m_g4_steps>=2&&!crossedExitLayer) return; + if(m_treeData->m_g4_steps>2) return; + if(m_treeData->m_g4_steps>4) return; } Trk::EnergyLoss* eloss = new EnergyLoss(0.,0.,0.,0.,0.,0); @@ -444,14 +371,14 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // Cache ONLY used for extrapolateM and extrapolate with covariance Matrix // parameters of the G4 step point - Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_t_charge); + Trk::CurvilinearParameters* g4Parameters = new Trk::CurvilinearParameters(npos, nmom, m_treeData->m_t_charge); // destination surface const Trk::PlaneSurface& destinationSurface = g4Parameters->associatedSurface(); // extrapolate to the destination surface const Trk::TrackParameters* trkParameters = m_extrapolateDirectly&&m_crossedMuonEntry ? m_extrapolator->extrapolateDirectly(*m_parameterCache,destinationSurface,Trk::alongMomentum,false,Trk::muon) : m_extrapolator->extrapolate(*m_parameterCache,destinationSurface,Trk::alongMomentum,false,Trk::muon); - if(m_g4_stepsMS==0) { + if(m_treeData->m_g4_stepsMS==0) { ATH_MSG_DEBUG( " Extrapolate m_parameterCacheCov with covMatrix "); extrapolationCache->reset(); trkParameters = m_extrapolateDirectly&&m_crossedMuonEntry ? @@ -465,7 +392,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G } //sroe: coverity 31530 - m_trk_status[m_g4_steps] = trkParameters ? 1 : 0; + m_treeData->m_trk_status[m_treeData->m_g4_steps] = trkParameters ? 1 : 0; if(!trkParameters) { delete eloss; @@ -480,7 +407,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // if(!m_exitLayer&&(fabs(npos.z())>zMuonEntry||npos.perp()>4255)&&trkParameters) { if(!m_exitLayer&&(fabs(npos.z())>21800||npos.perp()>12500)&&trkParameters) { ATH_MSG_DEBUG (" exit layer found "); - m_trk_status[m_g4_steps] = 1000; + m_treeData->m_trk_status[m_treeData->m_g4_steps] = 1000; // Get extrapolatio with errors extrapolationCache->reset(); trkParameters = m_extrapolateDirectly&&m_crossedMuonEntry ? @@ -506,14 +433,14 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G if(trkParameters_BACK) { ATH_MSG_DEBUG (" back extrapolation succeeded "); m_exitLayer = true; - m_b_p = trkParameters_BACK->momentum().mag(); - m_b_eta = trkParameters_BACK->momentum().eta(); - m_b_theta = trkParameters_BACK->momentum().theta(); - m_b_phi = trkParameters_BACK->momentum().phi(); - m_b_x = trkParameters_BACK->position().x(); - m_b_y = trkParameters_BACK->position().y(); - m_b_z = trkParameters_BACK->position().z(); - if(fabs(m_m_p-m_b_p)>10.) ATH_MSG_DEBUG (" Back extrapolation to Muon Entry finds different momentum difference MeV " << m_m_p-m_b_p); + m_treeData->m_b_p = trkParameters_BACK->momentum().mag(); + m_treeData->m_b_eta = trkParameters_BACK->momentum().eta(); + m_treeData->m_b_theta = trkParameters_BACK->momentum().theta(); + m_treeData->m_b_phi = trkParameters_BACK->momentum().phi(); + m_treeData->m_b_x = trkParameters_BACK->position().x(); + m_treeData->m_b_y = trkParameters_BACK->position().y(); + m_treeData->m_b_z = trkParameters_BACK->position().z(); + if(fabs(m_treeData->m_m_p-m_treeData->m_b_p)>10.) ATH_MSG_DEBUG (" Back extrapolation to Muon Entry finds different momentum difference MeV " << m_treeData->m_m_p-m_treeData->m_b_p); delete trkParameters_BACK; extrapolationCache->reset(); const std::vector<const Trk::TrackStateOnSurface*> *matvec_BACK = m_extrapolator->extrapolateM(*trkParameters_FW,*m_destinationSurface,Trk::oppositeMomentum,false,Trk::muon,extrapolationCache); @@ -528,7 +455,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G const Trk::MaterialEffectsBase* matEf = (*it)->materialEffectsOnTrack(); if( matEf ) { mmat++; - if(m_trk_status[m_g4_steps] == 1000) ATH_MSG_DEBUG (" mmat " << mmat << " matEf->thicknessInX0() " << matEf->thicknessInX0() ); + if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) ATH_MSG_DEBUG (" mmat " << mmat << " matEf->thicknessInX0() " << matEf->thicknessInX0() ); x0 += matEf->thicknessInX0(); const Trk::MaterialEffectsOnTrack* matEfs = dynamic_cast<const Trk::MaterialEffectsOnTrack*>(matEf); double eloss0 = 0.; @@ -547,7 +474,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G sigmaIoni = eLoss->sigmaIoni(); meanRad = eLoss->meanRad(); sigmaRad = eLoss->sigmaRad(); - if(m_trk_status[m_g4_steps] == 1000) ATH_MSG_DEBUG ( " mmat " << mmat << " eLoss->deltaE() " << eLoss->deltaE() << " eLoss->length() " << eLoss->length() ); + if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) ATH_MSG_DEBUG ( " mmat " << mmat << " eLoss->deltaE() " << eLoss->deltaE() << " eLoss->length() " << eLoss->length() ); } } const Trk::ScatteringAngles* scatAng = (matEfs)->scatteringAngles(); @@ -555,29 +482,29 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G sigmaTheta = scatAng->sigmaDeltaTheta(); sigmaPhi = scatAng->sigmaDeltaPhi(); } - if ( m_trk_scats < 500) { + if ( m_treeData->m_trk_scats < 500) { // backwards - if(m_trk_status[m_g4_steps] == 1000) m_trk_sstatus[m_trk_scats] = -1000; + if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) m_treeData->m_trk_sstatus[m_treeData->m_trk_scats] = -1000; if((*it)->trackParameters()) { - m_trk_sx[m_trk_scats] = (*it)->trackParameters()->position().x(); - m_trk_sy[m_trk_scats] = (*it)->trackParameters()->position().y(); - m_trk_sz[m_trk_scats] = (*it)->trackParameters()->position().z(); + m_treeData->m_trk_sx[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().x(); + m_treeData->m_trk_sy[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().y(); + m_treeData->m_trk_sz[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().z(); } - m_trk_sx0[m_trk_scats] = matEf->thicknessInX0(); - m_trk_seloss[m_trk_scats] = eloss0; - m_trk_smeanIoni[m_trk_scats] = meanIoni; - m_trk_ssigIoni[m_trk_scats] = sigmaIoni; - m_trk_smeanRad[m_trk_scats] = meanRad; - m_trk_ssigRad[m_trk_scats] = sigmaRad; - m_trk_ssigTheta[m_trk_scats] = sigmaTheta; - m_trk_ssigPhi[m_trk_scats] = sigmaPhi; - m_trk_scats++; + m_treeData->m_trk_sx0[m_treeData->m_trk_scats] = matEf->thicknessInX0(); + m_treeData->m_trk_seloss[m_treeData->m_trk_scats] = eloss0; + m_treeData->m_trk_smeanIoni[m_treeData->m_trk_scats] = meanIoni; + m_treeData->m_trk_ssigIoni[m_treeData->m_trk_scats] = sigmaIoni; + m_treeData->m_trk_smeanRad[m_treeData->m_trk_scats] = meanRad; + m_treeData->m_trk_ssigRad[m_treeData->m_trk_scats] = sigmaRad; + m_treeData->m_trk_ssigTheta[m_treeData->m_trk_scats] = sigmaTheta; + m_treeData->m_trk_ssigPhi[m_treeData->m_trk_scats] = sigmaPhi; + m_treeData->m_trk_scats++; } } } } - m_b_X0 = x0; - m_b_Eloss = Eloss; + m_treeData->m_b_X0 = x0; + m_treeData->m_b_Eloss = Eloss; delete matvec_BACK; } } @@ -587,10 +514,10 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G extrapolationCache->reset(); const std::vector<const Trk::TrackStateOnSurface*> *matvec = m_extrapolator->extrapolateM(*m_parameterCache,destinationSurface,Trk::alongMomentum,false,Trk::muon,extrapolationCache); - if(m_g4_stepsMS==0) matvec = m_extrapolator->extrapolateM(*m_parameterCacheCov,destinationSurface,Trk::alongMomentum,false,Trk::muon,extrapolationCache); + if(m_treeData->m_g4_stepsMS==0) matvec = m_extrapolator->extrapolateM(*m_parameterCacheCov,destinationSurface,Trk::alongMomentum,false,Trk::muon,extrapolationCache); - if(m_g4_stepsMS==0) ATH_MSG_DEBUG(" G4 extrapolateM to Muon Entry " << " X0 " << extrapolationCache->x0tot() << " Eloss deltaE " << extrapolationCache->eloss()->deltaE() << " Eloss sigma " << extrapolationCache->eloss()->sigmaDeltaE() << " meanIoni " << extrapolationCache->eloss()->meanIoni() << " sigmaIoni " << extrapolationCache->eloss()->sigmaIoni() << " meanRad " << extrapolationCache->eloss()->meanRad() << " sigmaRad " << extrapolationCache->eloss()->sigmaRad()); -// if(m_trk_status[m_g4_steps] == 1000) matvec = m_extrapolator->extrapolateM(*m_parameterCache,destinationSurface,Trk::alongMomentum,false,Trk::muon); + if(m_treeData->m_g4_stepsMS==0) ATH_MSG_DEBUG(" G4 extrapolateM to Muon Entry " << " X0 " << extrapolationCache->x0tot() << " Eloss deltaE " << extrapolationCache->eloss()->deltaE() << " Eloss sigma " << extrapolationCache->eloss()->sigmaDeltaE() << " meanIoni " << extrapolationCache->eloss()->meanIoni() << " sigmaIoni " << extrapolationCache->eloss()->sigmaIoni() << " meanRad " << extrapolationCache->eloss()->meanRad() << " sigmaRad " << extrapolationCache->eloss()->sigmaRad()); +// if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) matvec = m_extrapolator->extrapolateM(*m_parameterCache,destinationSurface,Trk::alongMomentum,false,Trk::muon); // modifyTSOSvector(const std::vector<const Trk::TrackStateOnSurface*> matvec, double scaleX0, double scaleEloss, bool reposition, bool aggregate, bool updateEloss, double caloEnergy, double caloEnergyError, double pCaloEntry, double momentumError, double & Eloss_tot); double Elosst = 0.; @@ -616,15 +543,15 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // // Muon sytem // - m_elossupdator->getX0ElossScales(0, m_m_eta, m_m_phi, X0Scale, ElossScale ); + m_elossupdator->getX0ElossScales(0, m_treeData->m_m_eta, m_treeData->m_m_phi, X0Scale, ElossScale ); ATH_MSG_DEBUG ( " muonSystem scales X0 " << X0Scale << " ElossScale " << ElossScale); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew1 = modifyTSOSvector(*matvec, X0Scale , 1., true, true, true, 0., 0., m_m_p, 0., Eloss1); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew0 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_m_p, 0., Eloss0); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew1 = modifyTSOSvector(*matvec, X0Scale , 1., true, true, true, 0., 0., m_treeData->m_m_p, 0., Eloss1); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew0 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_m_p, 0., Eloss0); ATH_MSG_DEBUG ( " muon system modify with 5 percent "); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew5 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_m_p, 0.05*m_m_p, Eloss5); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew5 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_m_p, 0.05*m_treeData->m_m_p, Eloss5); ATH_MSG_DEBUG ( " muon system modify with 10 percent "); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew10 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_m_p, 0.10*m_m_p, Eloss10); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew10 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_m_p, 0.10*m_treeData->m_m_p, Eloss10); // if(&matvecNew0!=0) delete &matvecNew0; // if(&matvecNew5!=0) delete &matvecNew5; @@ -634,24 +561,24 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G // // Calorimeter sytem // - double phiCaloExit = atan2(m_m_y,m_m_x); - m_elossupdator->getX0ElossScales(1, m_t_eta, phiCaloExit , X0Scale, ElossScale ); + double phiCaloExit = atan2(m_treeData->m_m_y,m_treeData->m_m_x); + m_elossupdator->getX0ElossScales(1, m_treeData->m_t_eta, phiCaloExit , X0Scale, ElossScale ); ATH_MSG_DEBUG ( " calorimeter scales X0 " << X0Scale << " ElossScale " << ElossScale); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew1 = modifyTSOSvector(*matvec, X0Scale , 1., true, true, true, 0., 0., m_m_p, 0., Eloss1); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew0 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_t_p, 0., Eloss0); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew1 = modifyTSOSvector(*matvec, X0Scale , 1., true, true, true, 0., 0., m_treeData->m_m_p, 0., Eloss1); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew0 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_t_p, 0., Eloss0); if(fabs(Eloss1)>0) ATH_MSG_DEBUG ( " **** Cross Check calorimeter with Eloss Scale1 " << Eloss1 << " Eloss0 " << Eloss0 << " ratio " << Eloss0/Eloss1 ); ATH_MSG_DEBUG ( " calorimeter modify with 5 percent "); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew5 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_t_p, 0.05*m_m_p, Eloss5); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew5 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_t_p, 0.05*m_treeData->m_m_p, Eloss5); ATH_MSG_DEBUG ( " calorimeter modify with 10 percent "); - const std::vector<const Trk::TrackStateOnSurface*> matvecNew10 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_t_p, 0.10*m_m_p, Eloss10); + const std::vector<const Trk::TrackStateOnSurface*> matvecNew10 = modifyTSOSvector(*matvec, X0Scale , ElossScale, true, true, true, 0., 0., m_treeData->m_t_p, 0.10*m_treeData->m_m_p, Eloss10); // if(&matvecNew0!=0) delete &matvecNew0; // if(&matvecNew5!=0) delete &matvecNew5; // if(&matvecNew10!=0) delete &matvecNew10; } - ATH_MSG_DEBUG ( " status " << m_trk_status[m_g4_steps] << "Eloss1 " << Eloss1 << " Eloss0 " << Eloss0 << " Eloss5 " << Eloss5 << " Eloss10 " << Eloss10 ); + ATH_MSG_DEBUG ( " status " << m_treeData->m_trk_status[m_treeData->m_g4_steps] << "Eloss1 " << Eloss1 << " Eloss0 " << Eloss0 << " Eloss5 " << Eloss5 << " Eloss10 " << Eloss10 ); double Eloss = 0.; @@ -666,7 +593,7 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G const Trk::MaterialEffectsBase* matEf = (*it)->materialEffectsOnTrack(); if( matEf ) { mmat++; - if(m_trk_status[m_g4_steps] == 1000) ATH_MSG_DEBUG (" mmat " << mmat << " matEf->thicknessInX0() " << matEf->thicknessInX0() ); + if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) ATH_MSG_DEBUG (" mmat " << mmat << " matEf->thicknessInX0() " << matEf->thicknessInX0() ); x0 += matEf->thicknessInX0(); const Trk::MaterialEffectsOnTrack* matEfs = dynamic_cast<const Trk::MaterialEffectsOnTrack*>(matEf); double eloss0 = 0.; @@ -685,8 +612,8 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G sigmaIoni = eLoss->sigmaIoni(); meanRad = eLoss->meanRad(); sigmaRad = eLoss->sigmaRad(); - ATH_MSG_DEBUG ( "m_g4_stepsMS " << m_g4_stepsMS <<" mmat " << mmat << " X0 " << matEf->thicknessInX0() << " eLoss->deltaE() " << eLoss->deltaE() << " meanIoni " << meanIoni << " Total Eloss " << Eloss << " eLoss->length() " << eLoss->length() ); -// if(m_trk_status[m_g4_steps] == 1000) ATH_MSG_DEBUG ( " mmat " << mmat << " eLoss->deltaE() " << eLoss->deltaE() ); + ATH_MSG_DEBUG ( "m_treeData->m_g4_stepsMS " << m_treeData->m_g4_stepsMS <<" mmat " << mmat << " X0 " << matEf->thicknessInX0() << " eLoss->deltaE() " << eLoss->deltaE() << " meanIoni " << meanIoni << " Total Eloss " << Eloss << " eLoss->length() " << eLoss->length() ); +// if(m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000) ATH_MSG_DEBUG ( " mmat " << mmat << " eLoss->deltaE() " << eLoss->deltaE() ); } } //sroe: coverity 31532 @@ -695,29 +622,29 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G if(scatAng) { sigmaTheta = scatAng->sigmaDeltaTheta(); sigmaPhi = scatAng->sigmaDeltaPhi(); - ATH_MSG_DEBUG ( "m_g4_stepsMS " << m_g4_stepsMS <<" mmat " << mmat << " sigmaTheta " << sigmaTheta << " sigmaPhi " << sigmaPhi ); + ATH_MSG_DEBUG ( "m_treeData->m_g4_stepsMS " << m_treeData->m_g4_stepsMS <<" mmat " << mmat << " sigmaTheta " << sigmaTheta << " sigmaPhi " << sigmaPhi ); } - if ( m_trk_scats < 500) { - if( m_g4_stepsMS==0 || m_trk_status[m_g4_steps]==1000 ) { + if ( m_treeData->m_trk_scats < 500) { + if( m_treeData->m_g4_stepsMS==0 || m_treeData->m_trk_status[m_treeData->m_g4_steps]==1000 ) { // forwards - if(m_g4_stepsMS==0) m_trk_sstatus[m_trk_scats] = 10; - if(m_trk_status[m_g4_steps]==1000) m_trk_sstatus[m_trk_scats] = 1000; + if(m_treeData->m_g4_stepsMS==0) m_treeData->m_trk_sstatus[m_treeData->m_trk_scats] = 10; + if(m_treeData->m_trk_status[m_treeData->m_g4_steps]==1000) m_treeData->m_trk_sstatus[m_treeData->m_trk_scats] = 1000; if((*it)->trackParameters()) { - m_trk_sx[m_trk_scats] = (*it)->trackParameters()->position().x(); - m_trk_sy[m_trk_scats] = (*it)->trackParameters()->position().y(); - m_trk_sz[m_trk_scats] = (*it)->trackParameters()->position().z(); + m_treeData->m_trk_sx[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().x(); + m_treeData->m_trk_sy[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().y(); + m_treeData->m_trk_sz[m_treeData->m_trk_scats] = (*it)->trackParameters()->position().z(); } - m_trk_sx0[m_trk_scats] = matEf->thicknessInX0(); - m_trk_seloss[m_trk_scats] = eloss0; - m_trk_smeanIoni[m_trk_scats] = meanIoni; + m_treeData->m_trk_sx0[m_treeData->m_trk_scats] = matEf->thicknessInX0(); + m_treeData->m_trk_seloss[m_treeData->m_trk_scats] = eloss0; + m_treeData->m_trk_smeanIoni[m_treeData->m_trk_scats] = meanIoni; // std::cout << " eloss0 " << eloss0 << " meanIoni " << meanIoni << std::endl; - m_trk_ssigIoni[m_trk_scats] = sigmaIoni; - m_trk_smeanRad[m_trk_scats] = meanRad; - m_trk_ssigRad[m_trk_scats] = sigmaRad; - m_trk_ssigTheta[m_trk_scats] = sigmaTheta; - m_trk_ssigPhi[m_trk_scats] = sigmaPhi; - m_trk_scats++; + m_treeData->m_trk_ssigIoni[m_treeData->m_trk_scats] = sigmaIoni; + m_treeData->m_trk_smeanRad[m_treeData->m_trk_scats] = meanRad; + m_treeData->m_trk_ssigRad[m_treeData->m_trk_scats] = sigmaRad; + m_treeData->m_trk_ssigTheta[m_treeData->m_trk_scats] = sigmaTheta; + m_treeData->m_trk_ssigPhi[m_treeData->m_trk_scats] = sigmaPhi; + m_treeData->m_trk_scats++; } } } @@ -725,38 +652,38 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G delete matvec; } - ATH_MSG_DEBUG (" m_g4_steps " << m_g4_steps << " Radius " << npos.perp() << " z " << npos.z() << " size matvec " << " total X0 " << x0 << " total Eloss " << Eloss ); -// std::cout << " m_g4_steps " << m_g4_steps << " Radius " << npos.perp() << " z " << npos.z() << " size matvec " << " total X0 " << x0 << " total Eloss " << Eloss << std::endl; + ATH_MSG_DEBUG (" m_treeData->m_g4_steps " << m_treeData->m_g4_steps << " Radius " << npos.perp() << " z " << npos.z() << " size matvec " << " total X0 " << x0 << " total Eloss " << Eloss ); +// std::cout << " m_treeData->m_g4_steps " << m_treeData->m_g4_steps << " Radius " << npos.perp() << " z " << npos.z() << " size matvec " << " total X0 " << x0 << " total Eloss " << Eloss << std::endl; // fill the geant information and the trk information - m_g4_p[m_g4_steps] = nmom.mag(); - m_g4_eta[m_g4_steps] = nmom.eta(); - m_g4_theta[m_g4_steps] = nmom.theta(); - m_g4_phi[m_g4_steps] = nmom.phi(); - m_g4_x[m_g4_steps] = npos.x(); - m_g4_y[m_g4_steps] = npos.y(); - m_g4_z[m_g4_steps] = npos.z(); - m_g4_tX0[m_g4_steps] = m_tX0Cache; - m_g4_t[m_g4_steps] = t; - m_g4_X0[m_g4_steps] = X0; + m_treeData->m_g4_p[m_treeData->m_g4_steps] = nmom.mag(); + m_treeData->m_g4_eta[m_treeData->m_g4_steps] = nmom.eta(); + m_treeData->m_g4_theta[m_treeData->m_g4_steps] = nmom.theta(); + m_treeData->m_g4_phi[m_treeData->m_g4_steps] = nmom.phi(); + m_treeData->m_g4_x[m_treeData->m_g4_steps] = npos.x(); + m_treeData->m_g4_y[m_treeData->m_g4_steps] = npos.y(); + m_treeData->m_g4_z[m_treeData->m_g4_steps] = npos.z(); + m_treeData->m_g4_tX0[m_treeData->m_g4_steps] = m_tX0Cache; + m_treeData->m_g4_t[m_treeData->m_g4_steps] = t; + m_treeData->m_g4_X0[m_treeData->m_g4_steps] = X0; - m_trk_p[m_g4_steps] = trkParameters ? trkParameters->momentum().mag() : 0.; - m_trk_eta[m_g4_steps] = trkParameters ? trkParameters->momentum().eta() : 0.; - m_trk_theta[m_g4_steps] = trkParameters ? trkParameters->momentum().theta() : 0.; - m_trk_phi[m_g4_steps] = trkParameters ? trkParameters->momentum().phi() : 0.; - m_trk_x[m_g4_steps] = trkParameters ? trkParameters->position().x() : 0.; - m_trk_y[m_g4_steps] = trkParameters ? trkParameters->position().y() : 0.; - m_trk_z[m_g4_steps] = trkParameters ? trkParameters->position().z() : 0.; - m_trk_lx[m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locX] : 0.; - m_trk_ly[m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locY] : 0.; - m_trk_eloss[m_g4_steps] = Eloss; - m_trk_eloss0[m_g4_steps] = Eloss0; - m_trk_eloss1[m_g4_steps] = Eloss1; - m_trk_eloss5[m_g4_steps] = Eloss5; - m_trk_eloss10[m_g4_steps]= Eloss10; - m_trk_scaleeloss[m_g4_steps]= ElossScale; - m_trk_scalex0[m_g4_steps] = X0Scale; - m_trk_x0[m_g4_steps] = x0; - if(m_g4_stepsMS==0) m_trk_status[m_g4_steps] = 10; + m_treeData->m_trk_p[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().mag() : 0.; + m_treeData->m_trk_eta[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().eta() : 0.; + m_treeData->m_trk_theta[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().theta() : 0.; + m_treeData->m_trk_phi[m_treeData->m_g4_steps] = trkParameters ? trkParameters->momentum().phi() : 0.; + m_treeData->m_trk_x[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().x() : 0.; + m_treeData->m_trk_y[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().y() : 0.; + m_treeData->m_trk_z[m_treeData->m_g4_steps] = trkParameters ? trkParameters->position().z() : 0.; + m_treeData->m_trk_lx[m_treeData->m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locX] : 0.; + m_treeData->m_trk_ly[m_treeData->m_g4_steps] = trkParameters ? trkParameters->parameters()[Trk::locY] : 0.; + m_treeData->m_trk_eloss[m_treeData->m_g4_steps] = Eloss; + m_treeData->m_trk_eloss0[m_treeData->m_g4_steps] = Eloss0; + m_treeData->m_trk_eloss1[m_treeData->m_g4_steps] = Eloss1; + m_treeData->m_trk_eloss5[m_treeData->m_g4_steps] = Eloss5; + m_treeData->m_trk_eloss10[m_treeData->m_g4_steps]= Eloss10; + m_treeData->m_trk_scaleeloss[m_treeData->m_g4_steps]= ElossScale; + m_treeData->m_trk_scalex0[m_treeData->m_g4_steps] = X0Scale; + m_treeData->m_trk_x0[m_treeData->m_g4_steps] = x0; + if(m_treeData->m_g4_stepsMS==0) m_treeData->m_trk_status[m_treeData->m_g4_steps] = 10; double errord0 = 0.; double errorz0 = 0.; @@ -769,25 +696,25 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G errorphi = (*trkParameters->covariance())(Trk::phi,Trk::phi); errortheta = (*trkParameters->covariance())(Trk::theta,Trk::theta); errorqoverp = (*trkParameters->covariance())(Trk::qOverP,Trk::qOverP); - ATH_MSG_DEBUG (" Covariance found for m_trk_status " << m_trk_status[m_g4_steps]); - if( m_trk_status[m_g4_steps] == 10 || m_trk_status[m_g4_steps] == 1000 ) { + ATH_MSG_DEBUG (" Covariance found for m_treeData->m_trk_status " << m_treeData->m_trk_status[m_treeData->m_g4_steps]); + if( m_treeData->m_trk_status[m_treeData->m_g4_steps] == 10 || m_treeData->m_trk_status[m_treeData->m_g4_steps] == 1000 ) { double x00 = errortheta*1000000.; // assume beta = 1 for check - double sigPhi = sqrt(x0)*13.6*(1+0.038*log(x00))/m_trk_p[m_g4_steps]/sin(m_trk_theta[m_g4_steps]); + double sigPhi = sqrt(x0)*13.6*(1+0.038*log(x00))/m_treeData->m_trk_p[m_treeData->m_g4_steps]/sin(m_treeData->m_trk_theta[m_treeData->m_g4_steps]); double ratio = sqrt(errorphi)/sigPhi; - std::cout << " m_trk_x " << m_trk_x[m_g4_steps] << " m_trk_y " << m_trk_y[m_g4_steps] << " m_trk_z " << m_trk_z[m_g4_steps] << " cov 33 " << errortheta*1000000. << " cov22 " << errorphi*1000000000. << " ratio error in phi " << ratio << std::endl; + std::cout << " m_treeData->m_trk_x " << m_treeData->m_trk_x[m_treeData->m_g4_steps] << " m_treeData->m_trk_y " << m_treeData->m_trk_y[m_treeData->m_g4_steps] << " m_treeData->m_trk_z " << m_treeData->m_trk_z[m_treeData->m_g4_steps] << " cov 33 " << errortheta*1000000. << " cov22 " << errorphi*1000000000. << " ratio error in phi " << ratio << std::endl; std::cout << " " << std::endl; } } - m_trk_erd0[m_g4_steps] = sqrt(errord0); - m_trk_erz0[m_g4_steps] = sqrt(errorz0); - m_trk_erphi[m_g4_steps] = sqrt(errorphi); - m_trk_ertheta[m_g4_steps] = sqrt(errortheta); - m_trk_erqoverp[m_g4_steps] = sqrt(errorqoverp); + m_treeData->m_trk_erd0[m_treeData->m_g4_steps] = sqrt(errord0); + m_treeData->m_trk_erz0[m_treeData->m_g4_steps] = sqrt(errorz0); + m_treeData->m_trk_erphi[m_treeData->m_g4_steps] = sqrt(errorphi); + m_treeData->m_trk_ertheta[m_treeData->m_g4_steps] = sqrt(errortheta); + m_treeData->m_trk_erqoverp[m_treeData->m_g4_steps] = sqrt(errorqoverp); // reset X0 at Muon Entry - if(m_g4_stepsMS==0) m_tX0Cache = 0.; + if(m_treeData->m_g4_stepsMS==0) m_tX0Cache = 0.; // update the parameters if needed/configured if (m_extrapolateIncrementally && trkParameters) { delete m_parameterCache; @@ -804,8 +731,8 @@ void Trk::GeantFollowerMSHelper::trackParticle(const G4ThreeVector& pos, const G delete extrapolationCache; delete g4Parameters; delete trkParameters; - ++m_g4_steps; - if(m_g4_stepsMS!=-1) ++m_g4_stepsMS; + ++m_treeData->m_g4_steps; + if(m_treeData->m_g4_stepsMS!=-1) ++m_treeData->m_g4_stepsMS; } const std::vector<const Trk::TrackStateOnSurface*> Trk::GeantFollowerMSHelper::modifyTSOSvector(const std::vector<const Trk::TrackStateOnSurface*> matvec, double scaleX0, double scaleEloss, bool reposition, bool aggregate, bool updateEloss, double caloEnergy, double caloEnergyError, double pCaloEntry, double momentumError, double & Eloss_tot) const { -- GitLab From 467d0b7e3d7106be6b55d3eeda56c1e77c5136ab Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 26 Jan 2019 00:48:04 +0000 Subject: [PATCH 128/192] The Dict.so does not need to be linked with the library,just some standalone enums --- Event/xAOD/xAODBase/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Event/xAOD/xAODBase/CMakeLists.txt b/Event/xAOD/xAODBase/CMakeLists.txt index 19ad43af8518..070d24a61b75 100644 --- a/Event/xAOD/xAODBase/CMakeLists.txt +++ b/Event/xAOD/xAODBase/CMakeLists.txt @@ -38,8 +38,7 @@ atlas_add_dictionary( xAODBaseDict atlas_add_dictionary( xAODBaseObjectTypeDict xAODBase/xAODBaseObjectTypeDict.h - xAODBase/selection-ObjectType.xml - LINK_LIBRARIES xAODBase ) + xAODBase/selection-ObjectType.xml) # Test(s) in the package: atlas_add_test( ut_xAODObjectType_test -- GitLab From 4d2272dff8690850ed767e42cb9be1bffeade3c3 Mon Sep 17 00:00:00 2001 From: John Derek Chapman <chapman@hep.phy.cam.ac.uk> Date: Fri, 25 Jan 2019 10:21:14 +0000 Subject: [PATCH 129/192] Merge branch 'integrate_matching' into '21.3' Integrate NSW matching algorithm in NSWPRDTest finalize See merge request atlas/athena!20412 (cherry picked from commit c5b06e392c2c496bfdf470dcd5846b363e608981) 74bcdf2d Integrating NSW matching algorithm in finalise of NSWPRDTest e58d78b2 Fixing some minor bugs in the NSW Matching algorithm dc624d26 Renaming NSWHitstree to NSWValtree, to avoid confusion 7ac558ac Removing unused function 3e853128 documenting histogram macros of Matching algorithm 907036d9 NSWValAlg: updating copyright 7824abeb NSWValAlg: small fix in header 415ca0a8 Small fixes, adding stds to NSWValAlg --- .../CxxUtils/ATLAS_CHECK_THREAD_SAFETY | 0 .../macros/NSWMatching_offline/NSWstudies.C | 47 + .../macros/NSWMatching_offline/NSWstudies.h | 1222 +++++++++++++++++ .../NSWMatching_offline/NSWstudies_match.C | 456 ++++++ .../NSWMatching_offline/NSWstudies_match.h | 202 +++ .../macros/NSWMatching_offline/run_matching.C | 29 + .../MuonPRDTest/src/EDM_object.cxx | 121 ++ .../MuonPRDTest/src/EDM_object.h | 64 + .../MuonPRDTest/src/NSWPRDValAlg.cxx | 228 ++- .../MuonPRDTest/src/NSWPRDValAlg.h | 13 +- 10 files changed, 2372 insertions(+), 10 deletions(-) mode change 100644 => 100755 Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.C create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.h create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.C create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.h create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/run_matching.C create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.cxx create mode 100644 MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.h diff --git a/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY b/Control/CxxUtils/CxxUtils/ATLAS_CHECK_THREAD_SAFETY old mode 100644 new mode 100755 diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.C b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.C new file mode 100644 index 000000000000..b0834871e3af --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.C @@ -0,0 +1,47 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#define NSWstudies_cxx +#include "NSWstudies.h" +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> + +void NSWstudies::Loop() +{ +// In a ROOT session, you can do: +// root> .L NSWstudies.C +// root> NSWstudies t +// root> t.GetEntry(12); // Fill t data members with entry number 12 +// root> t.Show(); // Show values of entry 12 +// root> t.Show(16); // Read and show values of entry 16 +// root> t.Loop(); // Loop on all entries +// + +// This is the loop skeleton where: +// jentry is the global entry number in the chain +// ientry is the entry number in the current Tree +// Note that the argument to GetEntry must be: +// jentry for TChain::GetEntry +// ientry for TTree::GetEntry and TBranch::GetEntry +// +// To read only selected branches, Insert statements like: +// METHOD1: +// fChain->SetBranchStatus("*",0); // disable all branches +// fChain->SetBranchStatus("branchname",1); // activate branchname +// METHOD2: replace line +// fChain->GetEntry(jentry); //read all branches +//by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + + Long64_t nbytes = 0, nb = 0; + for (Long64_t jentry=0; jentry<nentries;jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + } +} diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.h new file mode 100644 index 000000000000..484895fdec71 --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies.h @@ -0,0 +1,1222 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Thu Jul 26 12:33:06 2018 by ROOT version 6.12/04 +// from TTree NSWHitsTree/Ntuple of NSWHits +// found on file: NSWPRDValAlg.full.ntuple.root +////////////////////////////////////////////////////////// + +#ifndef NSWstudies_h +#define NSWstudies_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. +#include "vector" +#include "vector" +#include "vector" +#include "vector" +#include "vector" +#include "vector" + +class NSWstudies { +public : + //Additions + void match_Hits_Digits (Flocalize_collection&, Flocalize_collection&); + void fillHists (Flocalize_collection& oData, vector< TH1I* >& hist_vec); + void plotError (Flocalize_collection oPRD, vector<TH1F*> hists_pull); + + TTree *fChain; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + +// Fixed size dimensions of array or collections stored in the TTree if any. + + // Declaration of leaf types + UInt_t runNumber; + UInt_t eventNumber; + UInt_t TruthVertex_n; + vector<double> *TruthVertex_X; + vector<double> *TruthVertex_Y; + vector<double> *TruthVertex_Z; + vector<double> *TruthVertex_T; + vector<int> *TruthVertex_Id; + UInt_t TruthParticle_n; + vector<double> *TruthParticle_Pt; + vector<double> *TruthParticle_Eta; + vector<double> *TruthParticle_Phi; + vector<double> *TruthParticle_E; + vector<double> *TruthParticle_M; + vector<int> *TruthParticle_Pdg; + vector<int> *TruthParticle_Status; + vector<int> *TruthParticle_Barcode; + vector<int> *TruthParticle_Production_vertex_id; + vector<int> *TruthParticle_End_vertex_id; + UInt_t MuEntry_Particle_n; + vector<double> *MuEntry_Particle_Pt; + vector<double> *MuEntry_Particle_Eta; + vector<double> *MuEntry_Particle_Phi; + vector<int> *MuEntry_Particle_Pdg; + vector<int> *MuEntry_Particle_Barcode; + vector<double> *MuEntry_Position_Eta; + vector<double> *MuEntry_Position_Phi; + vector<double> *MuEntry_Position_X; + vector<double> *MuEntry_Position_Y; + vector<double> *MuEntry_Position_Z; + UInt_t Hits_sTGC_n; + vector<int> *Hits_sTGC_trackId; + vector<bool> *Hits_sTGC_isInsideBounds; + vector<double> *Hits_sTGC_globalTime; + vector<double> *Hits_sTGC_hitGlobalPositionX; + vector<double> *Hits_sTGC_hitGlobalPositionY; + vector<double> *Hits_sTGC_hitGlobalPositionZ; + vector<double> *Hits_sTGC_hitGlobalPositionR; + vector<double> *Hits_sTGC_hitGlobalPositionP; + vector<double> *Hits_sTGC_hitGlobalDirectionX; + vector<double> *Hits_sTGC_hitGlobalDirectionY; + vector<double> *Hits_sTGC_hitGlobalDirectionZ; + vector<double> *Hits_sTGC_hitLocalPositionX; + vector<double> *Hits_sTGC_hitLocalPositionY; + vector<double> *Hits_sTGC_hitLocalPositionZ; + vector<double> *Hits_sTGC_detector_globalPositionX; + vector<double> *Hits_sTGC_detector_globalPositionY; + vector<double> *Hits_sTGC_detector_globalPositionZ; + vector<double> *Hits_sTGC_detector_globalPositionR; + vector<double> *Hits_sTGC_detector_globalPositionP; + vector<double> *Hits_sTGC_hitToDsurfacePositionX; + vector<double> *Hits_sTGC_hitToDsurfacePositionY; + vector<double> *Hits_sTGC_hitToDsurfacePositionZ; + vector<double> *Hits_sTGC_hitToRsurfacePositionX; + vector<double> *Hits_sTGC_hitToRsurfacePositionY; + vector<double> *Hits_sTGC_hitToRsurfacePositionZ; + vector<double> *Hits_sTGC_FastDigitRsurfacePositionX; + vector<double> *Hits_sTGC_FastDigitRsurfacePositionY; + vector<int> *Hits_sTGC_particleEncoding; + vector<double> *Hits_sTGC_kineticEnergy; + vector<double> *Hits_sTGC_depositEnergy; + vector<double> *Hits_sTGC_StepLength; + vector<string> *Hits_sTGC_sim_stationName; + vector<int> *Hits_sTGC_wedgeId; + vector<int> *Hits_sTGC_wedgeType; + vector<int> *Hits_sTGC_detectorNumber; + vector<int> *Hits_sTGC_sim_stationEta; + vector<int> *Hits_sTGC_sim_stationPhi; + vector<int> *Hits_sTGC_sim_multilayer; + vector<int> *Hits_sTGC_sim_layer; + vector<int> *Hits_sTGC_sim_side; + vector<int> *Hits_sTGC_stripNumber; + vector<int> *Hits_sTGC_wireNumber; + vector<string> *Hits_sTGC_off_stationName; + vector<int> *Hits_sTGC_off_stationEta; + vector<int> *Hits_sTGC_off_stationPhi; + vector<int> *Hits_sTGC_off_multiplet; + vector<int> *Hits_sTGC_off_gas_gap; + vector<int> *Hits_sTGC_off_channel_type; + vector<int> *Hits_sTGC_off_channel; + UInt_t Digits_sTGC; + UInt_t Digits_sTGC_Pad_Digits; + vector<double> *Digits_sTGC_time; + vector<int> *Digits_sTGC_bctag; + vector<double> *Digits_sTGC_charge; + vector<bool> *Digits_sTGC_isDead; + vector<bool> *Digits_sTGC_isPileup; + vector<string> *Digits_sTGC_stationName; + vector<int> *Digits_sTGC_stationEta; + vector<int> *Digits_sTGC_stationPhi; + vector<int> *Digits_sTGC_multiplet; + vector<int> *Digits_sTGC_gas_gap; + vector<int> *Digits_sTGC_channel_type; + vector<int> *Digits_sTGC_channel; + vector<int> *Digits_sTGC_stationEtaMin; + vector<int> *Digits_sTGC_stationEtaMax; + vector<int> *Digits_sTGC_stationPhiMin; + vector<int> *Digits_sTGC_stationPhiMax; + vector<int> *Digits_sTGC_gas_gapMin; + vector<int> *Digits_sTGC_gas_gapMax; + vector<int> *Digits_sTGC_padEta; + vector<int> *Digits_sTGC_padPhi; + vector<int> *Digits_sTGC_numberOfMultilayers; + vector<int> *Digits_sTGC_multilayerMin; + vector<int> *Digits_sTGC_multilayerMax; + vector<int> *Digits_sTGC_channelTypeMin; + vector<int> *Digits_sTGC_channelTypeMax; + vector<int> *Digits_sTGC_channelMin; + vector<int> *Digits_sTGC_channelMax; + vector<int> *Digits_sTGC_channelNumber; + vector<double> *Digits_sTGC_channelPosX; + vector<double> *Digits_sTGC_channelPosY; + vector<double> *Digits_sTGC_localPosX; + vector<double> *Digits_sTGC_localPosY; + vector<double> *Digits_sTGC_globalPosX; + vector<double> *Digits_sTGC_globalPosY; + vector<double> *Digits_sTGC_globalPosZ; + vector<double> *Digits_sTGC_PadglobalCornerPosX; + vector<double> *Digits_sTGC_PadglobalCornerPosY; + vector<double> *Digits_sTGC_PadglobalCornerPosZ; + UInt_t SDO_sTGC; + vector<string> *SDO_sTGC_stationName; + vector<int> *SDO_sTGC_stationEta; + vector<int> *SDO_sTGC_stationPhi; + vector<int> *SDO_sTGC_multiplet; + vector<int> *SDO_sTGC_gas_gap; + vector<int> *SDO_sTGC_channel; + vector<int> *SDO_sTGC_channel_type; + vector<int> *SDO_sTGC_word; + vector<int> *SDO_sTGC_barcode; + vector<double> *SDO_sTGC_globalPosX; + vector<double> *SDO_sTGC_globalPosY; + vector<double> *SDO_sTGC_globalPosZ; + vector<double> *SDO_sTGC_global_time; + vector<double> *SDO_sTGC_Energy; + vector<double> *SDO_sTGC_tof; + vector<double> *SDO_sTGC_localPosX; + vector<double> *SDO_sTGC_localPosY; + Int_t RDO_sTGC_n; + vector<string> *RDO_sTGC_stationName; + vector<int> *RDO_sTGC_stationEta; + vector<int> *RDO_sTGC_stationPhi; + vector<int> *RDO_sTGC_multiplet; + vector<int> *RDO_sTGC_gas_gap; + vector<int> *RDO_sTGC_channel; + vector<int> *RDO_sTGC_channel_type; + vector<double> *RDO_sTGC_time; + vector<double> *RDO_sTGC_charge; + vector<unsigned short> *RDO_sTGC_bcTag; + vector<bool> *RDO_sTGC_isDead; + UInt_t PRD_sTGC; + vector<string> *PRD_sTGC_stationName; + vector<int> *PRD_sTGC_stationEta; + vector<int> *PRD_sTGC_stationPhi; + vector<int> *PRD_sTGC_multiplet; + vector<int> *PRD_sTGC_gas_gap; + vector<int> *PRD_sTGC_channel_type; + vector<int> *PRD_sTGC_channel; + vector<double> *PRD_sTGC_globalPosX; + vector<double> *PRD_sTGC_globalPosY; + vector<double> *PRD_sTGC_globalPosZ; + vector<double> *PRD_sTGC_localPosX; + vector<double> *PRD_sTGC_localPosY; + vector<double> *PRD_sTGC_covMatrix_1_1; + vector<double> *PRD_sTGC_covMatrix_2_2; + UInt_t Hits_MM_n; + vector<int> *Hits_MM_trackId; + vector<bool> *Hits_MM_isInsideBounds; + vector<double> *Hits_MM_globalTime; + vector<double> *Hits_MM_hitGlobalPositionX; + vector<double> *Hits_MM_hitGlobalPositionY; + vector<double> *Hits_MM_hitGlobalPositionZ; + vector<double> *Hits_MM_hitGlobalPositionR; + vector<double> *Hits_MM_hitGlobalPositionP; + vector<double> *Hits_MM_hitGlobalDirectionX; + vector<double> *Hits_MM_hitGlobalDirectionY; + vector<double> *Hits_MM_hitGlobalDirectionZ; + vector<double> *Hits_MM_hitLocalPositionX; + vector<double> *Hits_MM_hitLocalPositionY; + vector<double> *Hits_MM_hitLocalPositionZ; + vector<double> *Hits_MM_detector_globalPositionX; + vector<double> *Hits_MM_detector_globalPositionY; + vector<double> *Hits_MM_detector_globalPositionZ; + vector<double> *Hits_MM_detector_globalPositionR; + vector<double> *Hits_MM_detector_globalPositionP; + vector<double> *Hits_MM_hitToDsurfacePositionX; + vector<double> *Hits_MM_hitToDsurfacePositionY; + vector<double> *Hits_MM_hitToDsurfacePositionZ; + vector<double> *Hits_MM_hitToRsurfacePositionX; + vector<double> *Hits_MM_hitToRsurfacePositionY; + vector<double> *Hits_MM_hitToRsurfacePositionZ; + vector<double> *Hits_MM_FastDigitRsurfacePositionX; + vector<double> *Hits_MM_FastDigitRsurfacePositionY; + vector<int> *Hits_MM_particleEncoding; + vector<double> *Hits_MM_kineticEnergy; + vector<double> *Hits_MM_depositEnergy; + vector<double> *Hits_MM_StepLength; + vector<string> *Hits_MM_sim_stationName; + vector<int> *Hits_MM_sim_stationEta; + vector<int> *Hits_MM_sim_stationPhi; + vector<int> *Hits_MM_sim_multilayer; + vector<int> *Hits_MM_sim_layer; + vector<int> *Hits_MM_sim_side; + vector<string> *Hits_MM_off_stationName; + vector<int> *Hits_MM_off_stationEta; + vector<int> *Hits_MM_off_stationPhi; + vector<int> *Hits_MM_off_multiplet; + vector<int> *Hits_MM_off_gas_gap; + vector<int> *Hits_MM_off_channel; + UInt_t Digits_MM; + vector<string> *Digits_MM_stationName; + vector<int> *Digits_MM_stationEta; + vector<int> *Digits_MM_stationPhi; + vector<int> *Digits_MM_multiplet; + vector<int> *Digits_MM_gas_gap; + vector<int> *Digits_MM_channel; + vector<vector<float> > *Digits_MM_time; + vector<vector<float> > *Digits_MM_charge; + vector<vector<int> > *Digits_MM_stripPosition; + vector<vector<double> > *Digits_MM_stripLposX; + vector<vector<double> > *Digits_MM_stripLposY; + vector<vector<double> > *Digits_MM_stripGposX; + vector<vector<double> > *Digits_MM_stripGposY; + vector<vector<double> > *Digits_MM_stripGposZ; + vector<vector<float> > *Digits_MM_stripResponse_time; + vector<vector<float> > *Digits_MM_stripResponse_charge; + vector<vector<int> > *Digits_MM_stripResponse_stripPosition; + vector<vector<double> > *Digits_MM_stripResponse_stripLposX; + vector<vector<double> > *Digits_MM_stripResponse_stripLposY; + vector<vector<double> > *Digits_MM_stripresponse_stripGposX; + vector<vector<double> > *Digits_MM_stripResponse_stripGposY; + vector<vector<double> > *Digits_MM_stripResponse_stripGposZ; + vector<vector<float> > *Digits_MM_time_trigger; + vector<vector<float> > *Digits_MM_charge_trigger; + vector<vector<int> > *Digits_MM_position_trigger; + vector<vector<int> > *Digits_MM_MMFE_VMM_id_trigger; + vector<vector<int> > *Digits_MM_VMM_id_trigger; + UInt_t SDO_MM; + vector<string> *SDO_MM_stationName; + vector<int> *SDO_MM_stationEta; + vector<int> *SDO_MM_stationPhi; + vector<int> *SDO_MM_multiplet; + vector<int> *SDO_MM_gas_gap; + vector<int> *SDO_MM_channel; + vector<int> *SDO_MM_word; + vector<int> *SDO_MM_barcode; + vector<double> *SDO_MM_globalPosX; + vector<double> *SDO_MM_globalPosY; + vector<double> *SDO_MM_globalPosZ; + vector<double> *SDO_MM_global_time; + vector<double> *SDO_MM_localPosX; + vector<double> *SDO_MM_localPosY; + Int_t RDO_MM_n; + vector<string> *RDO_MM_stationName; + vector<int> *RDO_MM_stationEta; + vector<int> *RDO_MM_stationPhi; + vector<int> *RDO_MM_multiplet; + vector<int> *RDO_MM_gas_gap; + vector<int> *RDO_MM_channel; + vector<int> *RDO_MM_time; + vector<int> *RDO_MM_charge; + UInt_t PRD_MM; + vector<string> *PRD_MM_stationName; + vector<int> *PRD_MM_stationEta; + vector<int> *PRD_MM_stationPhi; + vector<int> *PRD_MM_multiplet; + vector<int> *PRD_MM_gas_gap; + vector<int> *PRD_MM_channel; + vector<double> *PRD_MM_globalPosX; + vector<double> *PRD_MM_globalPosY; + vector<double> *PRD_MM_globalPosZ; + vector<double> *PRD_MM_localPosX; + vector<double> *PRD_MM_localPosY; + vector<double> *PRD_MM_covMatrix_1_1; + + // List of branches + TBranch *b_runNumber; //! + TBranch *b_eventNumber; //! + TBranch *b_TruthVertex_n; //! + TBranch *b_TruthVertex_X; //! + TBranch *b_TruthVertex_Y; //! + TBranch *b_TruthVertex_Z; //! + TBranch *b_TruthVertex_T; //! + TBranch *b_TruthVertex_Id; //! + TBranch *b_TruthParticle_n; //! + TBranch *b_TruthParticle_Pt; //! + TBranch *b_TruthParticle_Eta; //! + TBranch *b_TruthParticle_Phi; //! + TBranch *b_TruthParticle_E; //! + TBranch *b_TruthParticle_M; //! + TBranch *b_TruthParticle_Pdg; //! + TBranch *b_TruthParticle_Status; //! + TBranch *b_TruthParticle_Barcode; //! + TBranch *b_TruthParticle_Production_vertex_id; //! + TBranch *b_TruthParticle_End_vertex_id; //! + TBranch *b_MuEntryParticle_n; //! + TBranch *b_MuEntry_Particle_Pt; //! + TBranch *b_MuEntry_Particle_Eta; //! + TBranch *b_MuEntry_Particle_Phi; //! + TBranch *b_MuEntry_Particle_Pdg; //! + TBranch *b_MuEntry_Particle_Barcode; //! + TBranch *b_MuEntry_Position_Eta; //! + TBranch *b_MuEntry_Position_Phi; //! + TBranch *b_MuEntry_Position_X; //! + TBranch *b_MuEntry_Position_Y; //! + TBranch *b_MuEntry_Position_Z; //! + TBranch *b_Hits_sTGC_nSimHits; //! + TBranch *b_Hits_sTGC_trackId; //! + TBranch *b_Hits_sTGC_isInsideBounds; //! + TBranch *b_Hits_sTGC_globalTime; //! + TBranch *b_Hits_sTGC_hitGlobalPositionX; //! + TBranch *b_Hits_sTGC_hitGlobalPositionY; //! + TBranch *b_Hits_sTGC_hitGlobalPositionZ; //! + TBranch *b_Hits_sTGC_hitGlobalPositionR; //! + TBranch *b_Hits_sTGC_hitGlobalPositionP; //! + TBranch *b_Hits_sTGC_hitGlobalDirectionX; //! + TBranch *b_Hits_sTGC_hitGlobalDirectionY; //! + TBranch *b_Hits_sTGC_hitGlobalDirectionZ; //! + TBranch *b_Hits_sTGC_hitLocalPositionX; //! + TBranch *b_Hits_sTGC_hitLocalPositionY; //! + TBranch *b_Hits_sTGC_hitLocalPositionZ; //! + TBranch *b_Hits_sTGC_detector_globalPositionX; //! + TBranch *b_Hits_sTGC_detector_globalPositionY; //! + TBranch *b_Hits_sTGC_detector_globalPositionZ; //! + TBranch *b_Hits_sTGC_detector_globalPositionR; //! + TBranch *b_Hits_sTGC_detector_globalPositionP; //! + TBranch *b_Hits_sTGC_hitToDsurfacePositionX; //! + TBranch *b_Hits_sTGC_hitToDsurfacePositionY; //! + TBranch *b_Hits_sTGC_hitToDsurfacePositionZ; //! + TBranch *b_Hits_sTGC_hitToRsurfacePositionX; //! + TBranch *b_Hits_sTGC_hitToRsurfacePositionY; //! + TBranch *b_Hits_sTGC_hitToRsurfacePositionZ; //! + TBranch *b_Hits_sTGC_FastDigitRsurfacePositionX; //! + TBranch *b_Hits_sTGC_FastDigitRsurfacePositionY; //! + TBranch *b_Hits_sTGC_particleEncoding; //! + TBranch *b_Hits_sTGC_kineticEnergy; //! + TBranch *b_Hits_sTGC_depositEnergy; //! + TBranch *b_Hits_sTGC_StepLength; //! + TBranch *b_Hits_sTGC_sim_stationName; //! + TBranch *b_Hits_sTGC_wedgeId; //! + TBranch *b_Hits_sTGC_wedgeType; //! + TBranch *b_Hits_sTGC_detectorNumber; //! + TBranch *b_Hits_sTGC_sim_stationEta; //! + TBranch *b_Hits_sTGC_sim_stationPhi; //! + TBranch *b_Hits_sTGC_sim_multilayer; //! + TBranch *b_Hits_sTGC_sim_layer; //! + TBranch *b_Hits_sTGC_sim_side; //! + TBranch *b_Hits_sTGC_stripNumber; //! + TBranch *b_Hits_sTGC_wireNumber; //! + TBranch *b_Hits_sTGC_off_stationName; //! + TBranch *b_Hits_sTGC_off_stationEta; //! + TBranch *b_Hits_sTGC_off_stationPhi; //! + TBranch *b_Hits_sTGC_off_multiplet; //! + TBranch *b_Hits_sTGC_off_gas_gap; //! + TBranch *b_Hits_sTGC_off_channel_type; //! + TBranch *b_Hits_sTGC_off_channel; //! + TBranch *b_Digits_sTGC_n; //! + TBranch *b_Digits_sTGC_Pad_Digits_n; //! + TBranch *b_Digits_sTGC_time; //! + TBranch *b_Digits_sTGC_bctag; //! + TBranch *b_Digits_sTGC_charge; //! + TBranch *b_Digits_sTGC_isDead; //! + TBranch *b_Digits_sTGC_isPileup; //! + TBranch *b_Digits_sTGC_stationName; //! + TBranch *b_Digits_sTGC_stationEta; //! + TBranch *b_Digits_sTGC_stationPhi; //! + TBranch *b_Digits_sTGC_multiplet; //! + TBranch *b_Digits_sTGC_gas_gap; //! + TBranch *b_Digits_sTGC_channel_type; //! + TBranch *b_Digits_sTGC_channel; //! + TBranch *b_Digits_sTGC_stationEtaMin; //! + TBranch *b_Digits_sTGC_stationEtaMax; //! + TBranch *b_Digits_sTGC_stationPhiMin; //! + TBranch *b_Digits_sTGC_stationPhiMax; //! + TBranch *b_Digits_sTGC_gas_gapMin; //! + TBranch *b_Digits_sTGC_gas_gapMax; //! + TBranch *b_Digits_sTGC_padEta; //! + TBranch *b_Digits_sTGC_padPhi; //! + TBranch *b_Digits_sTGC_numberOfMultilayers; //! + TBranch *b_Digits_sTGC_multilayerMin; //! + TBranch *b_Digits_sTGC_multilayerMax; //! + TBranch *b_Digits_sTGC_channelTypeMin; //! + TBranch *b_Digits_sTGC_channelTypeMax; //! + TBranch *b_Digits_sTGC_channelMin; //! + TBranch *b_Digits_sTGC_channelMax; //! + TBranch *b_Digits_sTGC_channelNumber; //! + TBranch *b_Digits_sTGC_channelPosX; //! + TBranch *b_Digits_sTGC_channelPosY; //! + TBranch *b_Digits_sTGC_localPosX; //! + TBranch *b_Digits_sTGC_localPosY; //! + TBranch *b_Digits_sTGC_globalPosX; //! + TBranch *b_Digits_sTGC_globalPosY; //! + TBranch *b_Digits_sTGC_globalPosZ; //! + TBranch *b_Digits_sTGC_PadglobalCornerPosX; //! + TBranch *b_Digits_sTGC_PadglobalCornerPosY; //! + TBranch *b_Digits_sTGC_PadglobalCornerPosZ; //! + TBranch *b_SDOs_sTGC_n; //! + TBranch *b_SDO_sTGC_stationName; //! + TBranch *b_SDO_sTGC_stationEta; //! + TBranch *b_SDO_sTGC_stationPhi; //! + TBranch *b_SDO_sTGC_multiplet; //! + TBranch *b_SDO_sTGC_gas_gap; //! + TBranch *b_SDO_sTGC_channel; //! + TBranch *b_SDO_sTGC_channel_type; //! + TBranch *b_SDO_sTGC_word; //! + TBranch *b_SDO_sTGC_barcode; //! + TBranch *b_SDO_sTGC_globalPosX; //! + TBranch *b_SDO_sTGC_globalPosY; //! + TBranch *b_SDO_sTGC_globalPosZ; //! + TBranch *b_SDO_sTGC_global_time; //! + TBranch *b_SDO_sTGC_Energy; //! + TBranch *b_SDO_sTGC_tof; //! + TBranch *b_SDO_sTGC_localPosX; //! + TBranch *b_SDO_sTGC_localPosY; //! + TBranch *b_RDO_sTGC_n; //! + TBranch *b_RDO_sTGC_stationName; //! + TBranch *b_RDO_sTGC_stationEta; //! + TBranch *b_RDO_sTGC_stationPhi; //! + TBranch *b_RDO_sTGC_multiplet; //! + TBranch *b_RDO_sTGC_gas_gap; //! + TBranch *b_RDO_sTGC_channel; //! + TBranch *b_RDO_sTGC_channel_type; //! + TBranch *b_RDO_sTGC_time; //! + TBranch *b_RDO_sTGC_charge; //! + TBranch *b_RDO_sTGC_bcTag; //! + TBranch *b_RDO_sTGC_isDead; //! + TBranch *b_PRDs_sTGC_n; //! + TBranch *b_PRD_sTGC_stationName; //! + TBranch *b_PRD_sTGC_stationEta; //! + TBranch *b_PRD_sTGC_stationPhi; //! + TBranch *b_PRD_sTGC_multiplet; //! + TBranch *b_PRD_sTGC_gas_gap; //! + TBranch *b_PRD_sTGC_channel_type; //! + TBranch *b_PRD_sTGC_channel; //! + TBranch *b_PRD_sTGC_globalPosX; //! + TBranch *b_PRD_sTGC_globalPosY; //! + TBranch *b_PRD_sTGC_globalPosZ; //! + TBranch *b_PRD_sTGC_localPosX; //! + TBranch *b_PRD_sTGC_localPosY; //! + TBranch *b_PRD_sTGC_covMatrix_1_1; //! + TBranch *b_PRD_sTGC_covMatrix_2_2; //! + TBranch *b_Hits_MM_n; //! + TBranch *b_Hits_MM_trackId; //! + TBranch *b_Hits_MM_isInsideBounds; //! + TBranch *b_Hits_MM_globalTime; //! + TBranch *b_Hits_MM_hitGlobalPositionX; //! + TBranch *b_Hits_MM_hitGlobalPositionY; //! + TBranch *b_Hits_MM_hitGlobalPositionZ; //! + TBranch *b_Hits_MM_hitGlobalPositionR; //! + TBranch *b_Hits_MM_hitGlobalPositionP; //! + TBranch *b_Hits_MM_hitGlobalDirectionX; //! + TBranch *b_Hits_MM_hitGlobalDirectionY; //! + TBranch *b_Hits_MM_hitGlobalDirectionZ; //! + TBranch *b_Hits_MM_hitLocalPositionX; //! + TBranch *b_Hits_MM_hitLocalPositionY; //! + TBranch *b_Hits_MM_hitLocalPositionZ; //! + TBranch *b_Hits_MM_detector_globalPositionX; //! + TBranch *b_Hits_MM_detector_globalPositionY; //! + TBranch *b_Hits_MM_detector_globalPositionZ; //! + TBranch *b_Hits_MM_detector_globalPositionR; //! + TBranch *b_Hits_MM_detector_globalPositionP; //! + TBranch *b_Hits_MM_hitToDsurfacePositionX; //! + TBranch *b_Hits_MM_hitToDsurfacePositionY; //! + TBranch *b_Hits_MM_hitToDsurfacePositionZ; //! + TBranch *b_Hits_MM_hitToRsurfacePositionX; //! + TBranch *b_Hits_MM_hitToRsurfacePositionY; //! + TBranch *b_Hits_MM_hitToRsurfacePositionZ; //! + TBranch *b_Hits_MM_FastDigitRsurfacePositionX; //! + TBranch *b_Hits_MM_FastDigitRsurfacePositionY; //! + TBranch *b_Hits_MM_particleEncoding; //! + TBranch *b_Hits_MM_kineticEnergy; //! + TBranch *b_Hits_MM_depositEnergy; //! + TBranch *b_Hits_MM_StepLength; //! + TBranch *b_Hits_MM_sim_stationName; //! + TBranch *b_Hits_MM_sim_stationEta; //! + TBranch *b_Hits_MM_sim_stationPhi; //! + TBranch *b_Hits_MM_sim_multilayer; //! + TBranch *b_Hits_MM_sim_layer; //! + TBranch *b_Hits_MM_sim_side; //! + TBranch *b_Hits_MM_off_stationName; //! + TBranch *b_Hits_MM_off_stationEta; //! + TBranch *b_Hits_MM_off_stationPhi; //! + TBranch *b_Hits_MM_off_multiplet; //! + TBranch *b_Hits_MM_off_gas_gap; //! + TBranch *b_Hits_MM_off_channel; //! + TBranch *b_Digits_MM_n; //! + TBranch *b_Digits_MM_stationName; //! + TBranch *b_Digits_MM_stationEta; //! + TBranch *b_Digits_MM_stationPhi; //! + TBranch *b_Digits_MM_multiplet; //! + TBranch *b_Digits_MM_gas_gap; //! + TBranch *b_Digits_MM_channel; //! + TBranch *b_Digits_MM_time; //! + TBranch *b_Digits_MM_charge; //! + TBranch *b_Digits_MM_stripPosition; //! + TBranch *b_Digits_MM_stripLposX; //! + TBranch *b_Digits_MM_stripLposY; //! + TBranch *b_Digits_MM_stripGposX; //! + TBranch *b_Digits_MM_stripGposY; //! + TBranch *b_Digits_MM_stripGposZ; //! + TBranch *b_Digits_MM_stripResponse_time; //! + TBranch *b_Digits_MM_stripResponse_charge; //! + TBranch *b_Digits_MM_stripResponse_stripPosition; //! + TBranch *b_Digits_MM_stripResponse_stripLposX; //! + TBranch *b_Digits_MM_stripResponse_stripLposY; //! + TBranch *b_Digits_MM_stripresponse_stripGposX; //! + TBranch *b_Digits_MM_stripResponse_stripGposY; //! + TBranch *b_Digits_MM_stripResponse_stripGposZ; //! + TBranch *b_Digits_MM_time_trigger; //! + TBranch *b_Digits_MM_charge_trigger; //! + TBranch *b_Digits_MM_position_trigger; //! + TBranch *b_Digits_MM_MMFE_VMM_id_trigger; //! + TBranch *b_Digits_MM_VMM_id_trigger; //! + TBranch *b_SDOs_MM_n; //! + TBranch *b_SDO_MM_stationName; //! + TBranch *b_SDO_MM_stationEta; //! + TBranch *b_SDO_MM_stationPhi; //! + TBranch *b_SDO_MM_multiplet; //! + TBranch *b_SDO_MM_gas_gap; //! + TBranch *b_SDO_MM_channel; //! + TBranch *b_SDO_MM_word; //! + TBranch *b_SDO_MM_barcode; //! + TBranch *b_SDO_MM_globalPosX; //! + TBranch *b_SDO_MM_globalPosY; //! + TBranch *b_SDO_MM_globalPosZ; //! + TBranch *b_SDO_MM_global_time; //! + TBranch *b_SDO_MM_localPosX; //! + TBranch *b_SDO_MM_localPosY; //! + TBranch *b_RDO_MM_n; //! + TBranch *b_RDO_MM_stationName; //! + TBranch *b_RDO_MM_stationEta; //! + TBranch *b_RDO_MM_stationPhi; //! + TBranch *b_RDO_MM_multiplet; //! + TBranch *b_RDO_MM_gas_gap; //! + TBranch *b_RDO_MM_channel; //! + TBranch *b_RDO_MM_time; //! + TBranch *b_RDO_MM_charge; //! + TBranch *b_PRDs_MM_n; //! + TBranch *b_PRD_MM_stationName; //! + TBranch *b_PRD_MM_stationEta; //! + TBranch *b_PRD_MM_stationPhi; //! + TBranch *b_PRD_MM_multiplet; //! + TBranch *b_PRD_MM_gas_gap; //! + TBranch *b_PRD_MM_channel; //! + TBranch *b_PRD_MM_globalPosX; //! + TBranch *b_PRD_MM_globalPosY; //! + TBranch *b_PRD_MM_globalPosZ; //! + TBranch *b_PRD_MM_localPosX; //! + TBranch *b_PRD_MM_localPosY; //! + TBranch *b_PRD_MM_covMatrix_1_1; //! + + NSWstudies(TTree *tree=0); + virtual ~NSWstudies(); + virtual Int_t Cut(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry); + virtual Long64_t LoadTree(Long64_t entry); + virtual void Init(TTree *tree); + virtual void Loop(); + virtual Bool_t Notify(); + virtual void Show(Long64_t entry = -1); +}; + +#endif + +#ifdef NSWstudies_cxx +NSWstudies::NSWstudies(TTree *tree) : fChain(0) +{ +// if parameter tree is not specified (or zero), connect the file +// used to generate this class and read the Tree. + if (tree == 0) { + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("NSWPRDValAlg.reco.ntuple.root"); + if (!f || !f->IsOpen()) { + f = new TFile("NSWPRDValAlg.reco.ntuple.root"); + } + f->GetObject("NSWValTree",tree); + + } + Init(tree); +} + +NSWstudies::~NSWstudies() +{ + if (!fChain) return; + delete fChain->GetCurrentFile(); +} + +Int_t NSWstudies::GetEntry(Long64_t entry) +{ +// Read contents of entry. + if (!fChain) return 0; + return fChain->GetEntry(entry); +} +Long64_t NSWstudies::LoadTree(Long64_t entry) +{ +// Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (fChain->GetTreeNumber() != fCurrent) { + fCurrent = fChain->GetTreeNumber(); + Notify(); + } + return centry; +} + +void NSWstudies::Init(TTree *tree) +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set object pointer + TruthVertex_X = 0; + TruthVertex_Y = 0; + TruthVertex_Z = 0; + TruthVertex_T = 0; + TruthVertex_Id = 0; + TruthParticle_Pt = 0; + TruthParticle_Eta = 0; + TruthParticle_Phi = 0; + TruthParticle_E = 0; + TruthParticle_M = 0; + TruthParticle_Pdg = 0; + TruthParticle_Status = 0; + TruthParticle_Barcode = 0; + TruthParticle_Production_vertex_id = 0; + TruthParticle_End_vertex_id = 0; + MuEntry_Particle_Pt = 0; + MuEntry_Particle_Eta = 0; + MuEntry_Particle_Phi = 0; + MuEntry_Particle_Pdg = 0; + MuEntry_Particle_Barcode = 0; + MuEntry_Position_Eta = 0; + MuEntry_Position_Phi = 0; + MuEntry_Position_X = 0; + MuEntry_Position_Y = 0; + MuEntry_Position_Z = 0; + Hits_sTGC_trackId = 0; + Hits_sTGC_isInsideBounds = 0; + Hits_sTGC_globalTime = 0; + Hits_sTGC_hitGlobalPositionX = 0; + Hits_sTGC_hitGlobalPositionY = 0; + Hits_sTGC_hitGlobalPositionZ = 0; + Hits_sTGC_hitGlobalPositionR = 0; + Hits_sTGC_hitGlobalPositionP = 0; + Hits_sTGC_hitGlobalDirectionX = 0; + Hits_sTGC_hitGlobalDirectionY = 0; + Hits_sTGC_hitGlobalDirectionZ = 0; + Hits_sTGC_hitLocalPositionX = 0; + Hits_sTGC_hitLocalPositionY = 0; + Hits_sTGC_hitLocalPositionZ = 0; + Hits_sTGC_detector_globalPositionX = 0; + Hits_sTGC_detector_globalPositionY = 0; + Hits_sTGC_detector_globalPositionZ = 0; + Hits_sTGC_detector_globalPositionR = 0; + Hits_sTGC_detector_globalPositionP = 0; + Hits_sTGC_hitToDsurfacePositionX = 0; + Hits_sTGC_hitToDsurfacePositionY = 0; + Hits_sTGC_hitToDsurfacePositionZ = 0; + Hits_sTGC_hitToRsurfacePositionX = 0; + Hits_sTGC_hitToRsurfacePositionY = 0; + Hits_sTGC_hitToRsurfacePositionZ = 0; + Hits_sTGC_FastDigitRsurfacePositionX = 0; + Hits_sTGC_FastDigitRsurfacePositionY = 0; + Hits_sTGC_particleEncoding = 0; + Hits_sTGC_kineticEnergy = 0; + Hits_sTGC_depositEnergy = 0; + Hits_sTGC_StepLength = 0; + Hits_sTGC_sim_stationName = 0; + Hits_sTGC_wedgeId = 0; + Hits_sTGC_wedgeType = 0; + Hits_sTGC_detectorNumber = 0; + Hits_sTGC_sim_stationEta = 0; + Hits_sTGC_sim_stationPhi = 0; + Hits_sTGC_sim_multilayer = 0; + Hits_sTGC_sim_layer = 0; + Hits_sTGC_sim_side = 0; + Hits_sTGC_stripNumber = 0; + Hits_sTGC_wireNumber = 0; + Hits_sTGC_off_stationName = 0; + Hits_sTGC_off_stationEta = 0; + Hits_sTGC_off_stationPhi = 0; + Hits_sTGC_off_multiplet = 0; + Hits_sTGC_off_gas_gap = 0; + Hits_sTGC_off_channel_type = 0; + Hits_sTGC_off_channel = 0; + Digits_sTGC_time = 0; + Digits_sTGC_bctag = 0; + Digits_sTGC_charge = 0; + Digits_sTGC_isDead = 0; + Digits_sTGC_isPileup = 0; + Digits_sTGC_stationName = 0; + Digits_sTGC_stationEta = 0; + Digits_sTGC_stationPhi = 0; + Digits_sTGC_multiplet = 0; + Digits_sTGC_gas_gap = 0; + Digits_sTGC_channel_type = 0; + Digits_sTGC_channel = 0; + Digits_sTGC_stationEtaMin = 0; + Digits_sTGC_stationEtaMax = 0; + Digits_sTGC_stationPhiMin = 0; + Digits_sTGC_stationPhiMax = 0; + Digits_sTGC_gas_gapMin = 0; + Digits_sTGC_gas_gapMax = 0; + Digits_sTGC_padEta = 0; + Digits_sTGC_padPhi = 0; + Digits_sTGC_numberOfMultilayers = 0; + Digits_sTGC_multilayerMin = 0; + Digits_sTGC_multilayerMax = 0; + Digits_sTGC_channelTypeMin = 0; + Digits_sTGC_channelTypeMax = 0; + Digits_sTGC_channelMin = 0; + Digits_sTGC_channelMax = 0; + Digits_sTGC_channelNumber = 0; + Digits_sTGC_channelPosX = 0; + Digits_sTGC_channelPosY = 0; + Digits_sTGC_localPosX = 0; + Digits_sTGC_localPosY = 0; + Digits_sTGC_globalPosX = 0; + Digits_sTGC_globalPosY = 0; + Digits_sTGC_globalPosZ = 0; + Digits_sTGC_PadglobalCornerPosX = 0; + Digits_sTGC_PadglobalCornerPosY = 0; + Digits_sTGC_PadglobalCornerPosZ = 0; + SDO_sTGC_stationName = 0; + SDO_sTGC_stationEta = 0; + SDO_sTGC_stationPhi = 0; + SDO_sTGC_multiplet = 0; + SDO_sTGC_gas_gap = 0; + SDO_sTGC_channel = 0; + SDO_sTGC_channel_type = 0; + SDO_sTGC_word = 0; + SDO_sTGC_barcode = 0; + SDO_sTGC_globalPosX = 0; + SDO_sTGC_globalPosY = 0; + SDO_sTGC_globalPosZ = 0; + SDO_sTGC_global_time = 0; + SDO_sTGC_Energy = 0; + SDO_sTGC_tof = 0; + SDO_sTGC_localPosX = 0; + SDO_sTGC_localPosY = 0; + RDO_sTGC_stationName = 0; + RDO_sTGC_stationEta = 0; + RDO_sTGC_stationPhi = 0; + RDO_sTGC_multiplet = 0; + RDO_sTGC_gas_gap = 0; + RDO_sTGC_channel = 0; + RDO_sTGC_channel_type = 0; + RDO_sTGC_time = 0; + RDO_sTGC_charge = 0; + RDO_sTGC_bcTag = 0; + RDO_sTGC_isDead = 0; + PRD_sTGC_stationName = 0; + PRD_sTGC_stationEta = 0; + PRD_sTGC_stationPhi = 0; + PRD_sTGC_multiplet = 0; + PRD_sTGC_gas_gap = 0; + PRD_sTGC_channel_type = 0; + PRD_sTGC_channel = 0; + PRD_sTGC_globalPosX = 0; + PRD_sTGC_globalPosY = 0; + PRD_sTGC_globalPosZ = 0; + PRD_sTGC_localPosX = 0; + PRD_sTGC_localPosY = 0; + PRD_sTGC_covMatrix_1_1 = 0; + PRD_sTGC_covMatrix_2_2 = 0; + Hits_MM_trackId = 0; + Hits_MM_isInsideBounds = 0; + Hits_MM_globalTime = 0; + Hits_MM_hitGlobalPositionX = 0; + Hits_MM_hitGlobalPositionY = 0; + Hits_MM_hitGlobalPositionZ = 0; + Hits_MM_hitGlobalPositionR = 0; + Hits_MM_hitGlobalPositionP = 0; + Hits_MM_hitGlobalDirectionX = 0; + Hits_MM_hitGlobalDirectionY = 0; + Hits_MM_hitGlobalDirectionZ = 0; + Hits_MM_hitLocalPositionX = 0; + Hits_MM_hitLocalPositionY = 0; + Hits_MM_hitLocalPositionZ = 0; + Hits_MM_detector_globalPositionX = 0; + Hits_MM_detector_globalPositionY = 0; + Hits_MM_detector_globalPositionZ = 0; + Hits_MM_detector_globalPositionR = 0; + Hits_MM_detector_globalPositionP = 0; + Hits_MM_hitToDsurfacePositionX = 0; + Hits_MM_hitToDsurfacePositionY = 0; + Hits_MM_hitToDsurfacePositionZ = 0; + Hits_MM_hitToRsurfacePositionX = 0; + Hits_MM_hitToRsurfacePositionY = 0; + Hits_MM_hitToRsurfacePositionZ = 0; + Hits_MM_FastDigitRsurfacePositionX = 0; + Hits_MM_FastDigitRsurfacePositionY = 0; + Hits_MM_particleEncoding = 0; + Hits_MM_kineticEnergy = 0; + Hits_MM_depositEnergy = 0; + Hits_MM_StepLength = 0; + Hits_MM_sim_stationName = 0; + Hits_MM_sim_stationEta = 0; + Hits_MM_sim_stationPhi = 0; + Hits_MM_sim_multilayer = 0; + Hits_MM_sim_layer = 0; + Hits_MM_sim_side = 0; + Hits_MM_off_stationName = 0; + Hits_MM_off_stationEta = 0; + Hits_MM_off_stationPhi = 0; + Hits_MM_off_multiplet = 0; + Hits_MM_off_gas_gap = 0; + Hits_MM_off_channel = 0; + Digits_MM_stationName = 0; + Digits_MM_stationEta = 0; + Digits_MM_stationPhi = 0; + Digits_MM_multiplet = 0; + Digits_MM_gas_gap = 0; + Digits_MM_channel = 0; + Digits_MM_time = 0; + Digits_MM_charge = 0; + Digits_MM_stripPosition = 0; + Digits_MM_stripLposX = 0; + Digits_MM_stripLposY = 0; + Digits_MM_stripGposX = 0; + Digits_MM_stripGposY = 0; + Digits_MM_stripGposZ = 0; + Digits_MM_stripResponse_time = 0; + Digits_MM_stripResponse_charge = 0; + Digits_MM_stripResponse_stripPosition = 0; + Digits_MM_stripResponse_stripLposX = 0; + Digits_MM_stripResponse_stripLposY = 0; + Digits_MM_stripresponse_stripGposX = 0; + Digits_MM_stripResponse_stripGposY = 0; + Digits_MM_stripResponse_stripGposZ = 0; + Digits_MM_time_trigger = 0; + Digits_MM_charge_trigger = 0; + Digits_MM_position_trigger = 0; + Digits_MM_MMFE_VMM_id_trigger = 0; + Digits_MM_VMM_id_trigger = 0; + SDO_MM_stationName = 0; + SDO_MM_stationEta = 0; + SDO_MM_stationPhi = 0; + SDO_MM_multiplet = 0; + SDO_MM_gas_gap = 0; + SDO_MM_channel = 0; + SDO_MM_word = 0; + SDO_MM_barcode = 0; + SDO_MM_globalPosX = 0; + SDO_MM_globalPosY = 0; + SDO_MM_globalPosZ = 0; + SDO_MM_global_time = 0; + SDO_MM_localPosX = 0; + SDO_MM_localPosY = 0; + RDO_MM_stationName = 0; + RDO_MM_stationEta = 0; + RDO_MM_stationPhi = 0; + RDO_MM_multiplet = 0; + RDO_MM_gas_gap = 0; + RDO_MM_channel = 0; + RDO_MM_time = 0; + RDO_MM_charge = 0; + PRD_MM_stationName = 0; + PRD_MM_stationEta = 0; + PRD_MM_stationPhi = 0; + PRD_MM_multiplet = 0; + PRD_MM_gas_gap = 0; + PRD_MM_channel = 0; + PRD_MM_globalPosX = 0; + PRD_MM_globalPosY = 0; + PRD_MM_globalPosZ = 0; + PRD_MM_localPosX = 0; + PRD_MM_localPosY = 0; + PRD_MM_covMatrix_1_1 = 0; + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("runNumber", &runNumber, &b_runNumber); + fChain->SetBranchAddress("eventNumber", &eventNumber, &b_eventNumber); + fChain->SetBranchAddress("TruthVertex_n", &TruthVertex_n, &b_TruthVertex_n); + fChain->SetBranchAddress("TruthVertex_X", &TruthVertex_X, &b_TruthVertex_X); + fChain->SetBranchAddress("TruthVertex_Y", &TruthVertex_Y, &b_TruthVertex_Y); + fChain->SetBranchAddress("TruthVertex_Z", &TruthVertex_Z, &b_TruthVertex_Z); + fChain->SetBranchAddress("TruthVertex_T", &TruthVertex_T, &b_TruthVertex_T); + fChain->SetBranchAddress("TruthVertex_Id", &TruthVertex_Id, &b_TruthVertex_Id); + fChain->SetBranchAddress("TruthParticle_n", &TruthParticle_n, &b_TruthParticle_n); + fChain->SetBranchAddress("TruthParticle_Pt", &TruthParticle_Pt, &b_TruthParticle_Pt); + fChain->SetBranchAddress("TruthParticle_Eta", &TruthParticle_Eta, &b_TruthParticle_Eta); + fChain->SetBranchAddress("TruthParticle_Phi", &TruthParticle_Phi, &b_TruthParticle_Phi); + fChain->SetBranchAddress("TruthParticle_E", &TruthParticle_E, &b_TruthParticle_E); + fChain->SetBranchAddress("TruthParticle_M", &TruthParticle_M, &b_TruthParticle_M); + fChain->SetBranchAddress("TruthParticle_Pdg", &TruthParticle_Pdg, &b_TruthParticle_Pdg); + fChain->SetBranchAddress("TruthParticle_Status", &TruthParticle_Status, &b_TruthParticle_Status); + fChain->SetBranchAddress("TruthParticle_Barcode", &TruthParticle_Barcode, &b_TruthParticle_Barcode); + fChain->SetBranchAddress("TruthParticle_Production_vertex_id", &TruthParticle_Production_vertex_id, &b_TruthParticle_Production_vertex_id); + fChain->SetBranchAddress("TruthParticle_End_vertex_id", &TruthParticle_End_vertex_id, &b_TruthParticle_End_vertex_id); + fChain->SetBranchAddress("MuEntry_Particle_n", &MuEntry_Particle_n, &b_MuEntryParticle_n); + fChain->SetBranchAddress("MuEntry_Particle_Pt", &MuEntry_Particle_Pt, &b_MuEntry_Particle_Pt); + fChain->SetBranchAddress("MuEntry_Particle_Eta", &MuEntry_Particle_Eta, &b_MuEntry_Particle_Eta); + fChain->SetBranchAddress("MuEntry_Particle_Phi", &MuEntry_Particle_Phi, &b_MuEntry_Particle_Phi); + fChain->SetBranchAddress("MuEntry_Particle_Pdg", &MuEntry_Particle_Pdg, &b_MuEntry_Particle_Pdg); + fChain->SetBranchAddress("MuEntry_Particle_Barcode", &MuEntry_Particle_Barcode, &b_MuEntry_Particle_Barcode); + fChain->SetBranchAddress("MuEntry_Position_Eta", &MuEntry_Position_Eta, &b_MuEntry_Position_Eta); + fChain->SetBranchAddress("MuEntry_Position_Phi", &MuEntry_Position_Phi, &b_MuEntry_Position_Phi); + fChain->SetBranchAddress("MuEntry_Position_X", &MuEntry_Position_X, &b_MuEntry_Position_X); + fChain->SetBranchAddress("MuEntry_Position_Y", &MuEntry_Position_Y, &b_MuEntry_Position_Y); + fChain->SetBranchAddress("MuEntry_Position_Z", &MuEntry_Position_Z, &b_MuEntry_Position_Z); + fChain->SetBranchAddress("Hits_sTGC_n", &Hits_sTGC_n, &b_Hits_sTGC_nSimHits); + fChain->SetBranchAddress("Hits_sTGC_trackId", &Hits_sTGC_trackId, &b_Hits_sTGC_trackId); + fChain->SetBranchAddress("Hits_sTGC_isInsideBounds", &Hits_sTGC_isInsideBounds, &b_Hits_sTGC_isInsideBounds); + fChain->SetBranchAddress("Hits_sTGC_globalTime", &Hits_sTGC_globalTime, &b_Hits_sTGC_globalTime); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalPositionX", &Hits_sTGC_hitGlobalPositionX, &b_Hits_sTGC_hitGlobalPositionX); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalPositionY", &Hits_sTGC_hitGlobalPositionY, &b_Hits_sTGC_hitGlobalPositionY); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalPositionZ", &Hits_sTGC_hitGlobalPositionZ, &b_Hits_sTGC_hitGlobalPositionZ); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalPositionR", &Hits_sTGC_hitGlobalPositionR, &b_Hits_sTGC_hitGlobalPositionR); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalPositionP", &Hits_sTGC_hitGlobalPositionP, &b_Hits_sTGC_hitGlobalPositionP); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalDirectionX", &Hits_sTGC_hitGlobalDirectionX, &b_Hits_sTGC_hitGlobalDirectionX); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalDirectionY", &Hits_sTGC_hitGlobalDirectionY, &b_Hits_sTGC_hitGlobalDirectionY); + fChain->SetBranchAddress("Hits_sTGC_hitGlobalDirectionZ", &Hits_sTGC_hitGlobalDirectionZ, &b_Hits_sTGC_hitGlobalDirectionZ); + fChain->SetBranchAddress("Hits_sTGC_hitLocalPositionX", &Hits_sTGC_hitLocalPositionX, &b_Hits_sTGC_hitLocalPositionX); + fChain->SetBranchAddress("Hits_sTGC_hitLocalPositionY", &Hits_sTGC_hitLocalPositionY, &b_Hits_sTGC_hitLocalPositionY); + fChain->SetBranchAddress("Hits_sTGC_hitLocalPositionZ", &Hits_sTGC_hitLocalPositionZ, &b_Hits_sTGC_hitLocalPositionZ); + fChain->SetBranchAddress("Hits_sTGC_detector_globalPositionX", &Hits_sTGC_detector_globalPositionX, &b_Hits_sTGC_detector_globalPositionX); + fChain->SetBranchAddress("Hits_sTGC_detector_globalPositionY", &Hits_sTGC_detector_globalPositionY, &b_Hits_sTGC_detector_globalPositionY); + fChain->SetBranchAddress("Hits_sTGC_detector_globalPositionZ", &Hits_sTGC_detector_globalPositionZ, &b_Hits_sTGC_detector_globalPositionZ); + fChain->SetBranchAddress("Hits_sTGC_detector_globalPositionR", &Hits_sTGC_detector_globalPositionR, &b_Hits_sTGC_detector_globalPositionR); + fChain->SetBranchAddress("Hits_sTGC_detector_globalPositionP", &Hits_sTGC_detector_globalPositionP, &b_Hits_sTGC_detector_globalPositionP); + fChain->SetBranchAddress("Hits_sTGC_hitToDsurfacePositionX", &Hits_sTGC_hitToDsurfacePositionX, &b_Hits_sTGC_hitToDsurfacePositionX); + fChain->SetBranchAddress("Hits_sTGC_hitToDsurfacePositionY", &Hits_sTGC_hitToDsurfacePositionY, &b_Hits_sTGC_hitToDsurfacePositionY); + fChain->SetBranchAddress("Hits_sTGC_hitToDsurfacePositionZ", &Hits_sTGC_hitToDsurfacePositionZ, &b_Hits_sTGC_hitToDsurfacePositionZ); + fChain->SetBranchAddress("Hits_sTGC_hitToRsurfacePositionX", &Hits_sTGC_hitToRsurfacePositionX, &b_Hits_sTGC_hitToRsurfacePositionX); + fChain->SetBranchAddress("Hits_sTGC_hitToRsurfacePositionY", &Hits_sTGC_hitToRsurfacePositionY, &b_Hits_sTGC_hitToRsurfacePositionY); + fChain->SetBranchAddress("Hits_sTGC_hitToRsurfacePositionZ", &Hits_sTGC_hitToRsurfacePositionZ, &b_Hits_sTGC_hitToRsurfacePositionZ); + fChain->SetBranchAddress("Hits_sTGC_FastDigitRsurfacePositionX", &Hits_sTGC_FastDigitRsurfacePositionX, &b_Hits_sTGC_FastDigitRsurfacePositionX); + fChain->SetBranchAddress("Hits_sTGC_FastDigitRsurfacePositionY", &Hits_sTGC_FastDigitRsurfacePositionY, &b_Hits_sTGC_FastDigitRsurfacePositionY); + fChain->SetBranchAddress("Hits_sTGC_particleEncoding", &Hits_sTGC_particleEncoding, &b_Hits_sTGC_particleEncoding); + fChain->SetBranchAddress("Hits_sTGC_kineticEnergy", &Hits_sTGC_kineticEnergy, &b_Hits_sTGC_kineticEnergy); + fChain->SetBranchAddress("Hits_sTGC_depositEnergy", &Hits_sTGC_depositEnergy, &b_Hits_sTGC_depositEnergy); + fChain->SetBranchAddress("Hits_sTGC_StepLength", &Hits_sTGC_StepLength, &b_Hits_sTGC_StepLength); + fChain->SetBranchAddress("Hits_sTGC_sim_stationName", &Hits_sTGC_sim_stationName, &b_Hits_sTGC_sim_stationName); + fChain->SetBranchAddress("Hits_sTGC_wedgeId", &Hits_sTGC_wedgeId, &b_Hits_sTGC_wedgeId); + fChain->SetBranchAddress("Hits_sTGC_wedgeType", &Hits_sTGC_wedgeType, &b_Hits_sTGC_wedgeType); + fChain->SetBranchAddress("Hits_sTGC_detectorNumber", &Hits_sTGC_detectorNumber, &b_Hits_sTGC_detectorNumber); + fChain->SetBranchAddress("Hits_sTGC_sim_stationEta", &Hits_sTGC_sim_stationEta, &b_Hits_sTGC_sim_stationEta); + fChain->SetBranchAddress("Hits_sTGC_sim_stationPhi", &Hits_sTGC_sim_stationPhi, &b_Hits_sTGC_sim_stationPhi); + fChain->SetBranchAddress("Hits_sTGC_sim_multilayer", &Hits_sTGC_sim_multilayer, &b_Hits_sTGC_sim_multilayer); + fChain->SetBranchAddress("Hits_sTGC_sim_layer", &Hits_sTGC_sim_layer, &b_Hits_sTGC_sim_layer); + fChain->SetBranchAddress("Hits_sTGC_sim_side", &Hits_sTGC_sim_side, &b_Hits_sTGC_sim_side); + fChain->SetBranchAddress("Hits_sTGC_stripNumber", &Hits_sTGC_stripNumber, &b_Hits_sTGC_stripNumber); + fChain->SetBranchAddress("Hits_sTGC_wireNumber", &Hits_sTGC_wireNumber, &b_Hits_sTGC_wireNumber); + fChain->SetBranchAddress("Hits_sTGC_off_stationName", &Hits_sTGC_off_stationName, &b_Hits_sTGC_off_stationName); + fChain->SetBranchAddress("Hits_sTGC_off_stationEta", &Hits_sTGC_off_stationEta, &b_Hits_sTGC_off_stationEta); + fChain->SetBranchAddress("Hits_sTGC_off_stationPhi", &Hits_sTGC_off_stationPhi, &b_Hits_sTGC_off_stationPhi); + fChain->SetBranchAddress("Hits_sTGC_off_multiplet", &Hits_sTGC_off_multiplet, &b_Hits_sTGC_off_multiplet); + fChain->SetBranchAddress("Hits_sTGC_off_gas_gap", &Hits_sTGC_off_gas_gap, &b_Hits_sTGC_off_gas_gap); + fChain->SetBranchAddress("Hits_sTGC_off_channel_type", &Hits_sTGC_off_channel_type, &b_Hits_sTGC_off_channel_type); + fChain->SetBranchAddress("Hits_sTGC_off_channel", &Hits_sTGC_off_channel, &b_Hits_sTGC_off_channel); + fChain->SetBranchAddress("Digits_sTGC", &Digits_sTGC, &b_Digits_sTGC_n); + fChain->SetBranchAddress("Digits_sTGC_Pad_Digits", &Digits_sTGC_Pad_Digits, &b_Digits_sTGC_Pad_Digits_n); + fChain->SetBranchAddress("Digits_sTGC_time", &Digits_sTGC_time, &b_Digits_sTGC_time); + fChain->SetBranchAddress("Digits_sTGC_bctag", &Digits_sTGC_bctag, &b_Digits_sTGC_bctag); + fChain->SetBranchAddress("Digits_sTGC_charge", &Digits_sTGC_charge, &b_Digits_sTGC_charge); + fChain->SetBranchAddress("Digits_sTGC_isDead", &Digits_sTGC_isDead, &b_Digits_sTGC_isDead); + fChain->SetBranchAddress("Digits_sTGC_isPileup", &Digits_sTGC_isPileup, &b_Digits_sTGC_isPileup); + fChain->SetBranchAddress("Digits_sTGC_stationName", &Digits_sTGC_stationName, &b_Digits_sTGC_stationName); + fChain->SetBranchAddress("Digits_sTGC_stationEta", &Digits_sTGC_stationEta, &b_Digits_sTGC_stationEta); + fChain->SetBranchAddress("Digits_sTGC_stationPhi", &Digits_sTGC_stationPhi, &b_Digits_sTGC_stationPhi); + fChain->SetBranchAddress("Digits_sTGC_multiplet", &Digits_sTGC_multiplet, &b_Digits_sTGC_multiplet); + fChain->SetBranchAddress("Digits_sTGC_gas_gap", &Digits_sTGC_gas_gap, &b_Digits_sTGC_gas_gap); + fChain->SetBranchAddress("Digits_sTGC_channel_type", &Digits_sTGC_channel_type, &b_Digits_sTGC_channel_type); + fChain->SetBranchAddress("Digits_sTGC_channel", &Digits_sTGC_channel, &b_Digits_sTGC_channel); + fChain->SetBranchAddress("Digits_sTGC_stationEtaMin", &Digits_sTGC_stationEtaMin, &b_Digits_sTGC_stationEtaMin); + fChain->SetBranchAddress("Digits_sTGC_stationEtaMax", &Digits_sTGC_stationEtaMax, &b_Digits_sTGC_stationEtaMax); + fChain->SetBranchAddress("Digits_sTGC_stationPhiMin", &Digits_sTGC_stationPhiMin, &b_Digits_sTGC_stationPhiMin); + fChain->SetBranchAddress("Digits_sTGC_stationPhiMax", &Digits_sTGC_stationPhiMax, &b_Digits_sTGC_stationPhiMax); + fChain->SetBranchAddress("Digits_sTGC_gas_gapMin", &Digits_sTGC_gas_gapMin, &b_Digits_sTGC_gas_gapMin); + fChain->SetBranchAddress("Digits_sTGC_gas_gapMax", &Digits_sTGC_gas_gapMax, &b_Digits_sTGC_gas_gapMax); + fChain->SetBranchAddress("Digits_sTGC_padEta", &Digits_sTGC_padEta, &b_Digits_sTGC_padEta); + fChain->SetBranchAddress("Digits_sTGC_padPhi", &Digits_sTGC_padPhi, &b_Digits_sTGC_padPhi); + fChain->SetBranchAddress("Digits_sTGC_numberOfMultilayers", &Digits_sTGC_numberOfMultilayers, &b_Digits_sTGC_numberOfMultilayers); + fChain->SetBranchAddress("Digits_sTGC_multilayerMin", &Digits_sTGC_multilayerMin, &b_Digits_sTGC_multilayerMin); + fChain->SetBranchAddress("Digits_sTGC_multilayerMax", &Digits_sTGC_multilayerMax, &b_Digits_sTGC_multilayerMax); + fChain->SetBranchAddress("Digits_sTGC_channelTypeMin", &Digits_sTGC_channelTypeMin, &b_Digits_sTGC_channelTypeMin); + fChain->SetBranchAddress("Digits_sTGC_channelTypeMax", &Digits_sTGC_channelTypeMax, &b_Digits_sTGC_channelTypeMax); + fChain->SetBranchAddress("Digits_sTGC_channelMin", &Digits_sTGC_channelMin, &b_Digits_sTGC_channelMin); + fChain->SetBranchAddress("Digits_sTGC_channelMax", &Digits_sTGC_channelMax, &b_Digits_sTGC_channelMax); + fChain->SetBranchAddress("Digits_sTGC_channelNumber", &Digits_sTGC_channelNumber, &b_Digits_sTGC_channelNumber); + fChain->SetBranchAddress("Digits_sTGC_channelPosX", &Digits_sTGC_channelPosX, &b_Digits_sTGC_channelPosX); + fChain->SetBranchAddress("Digits_sTGC_channelPosY", &Digits_sTGC_channelPosY, &b_Digits_sTGC_channelPosY); + fChain->SetBranchAddress("Digits_sTGC_localPosX", &Digits_sTGC_localPosX, &b_Digits_sTGC_localPosX); + fChain->SetBranchAddress("Digits_sTGC_localPosY", &Digits_sTGC_localPosY, &b_Digits_sTGC_localPosY); + fChain->SetBranchAddress("Digits_sTGC_globalPosX", &Digits_sTGC_globalPosX, &b_Digits_sTGC_globalPosX); + fChain->SetBranchAddress("Digits_sTGC_globalPosY", &Digits_sTGC_globalPosY, &b_Digits_sTGC_globalPosY); + fChain->SetBranchAddress("Digits_sTGC_globalPosZ", &Digits_sTGC_globalPosZ, &b_Digits_sTGC_globalPosZ); + fChain->SetBranchAddress("Digits_sTGC_PadglobalCornerPosX", &Digits_sTGC_PadglobalCornerPosX, &b_Digits_sTGC_PadglobalCornerPosX); + fChain->SetBranchAddress("Digits_sTGC_PadglobalCornerPosY", &Digits_sTGC_PadglobalCornerPosY, &b_Digits_sTGC_PadglobalCornerPosY); + fChain->SetBranchAddress("Digits_sTGC_PadglobalCornerPosZ", &Digits_sTGC_PadglobalCornerPosZ, &b_Digits_sTGC_PadglobalCornerPosZ); + fChain->SetBranchAddress("SDO_sTGC", &SDO_sTGC, &b_SDOs_sTGC_n); + fChain->SetBranchAddress("SDO_sTGC_stationName", &SDO_sTGC_stationName, &b_SDO_sTGC_stationName); + fChain->SetBranchAddress("SDO_sTGC_stationEta", &SDO_sTGC_stationEta, &b_SDO_sTGC_stationEta); + fChain->SetBranchAddress("SDO_sTGC_stationPhi", &SDO_sTGC_stationPhi, &b_SDO_sTGC_stationPhi); + fChain->SetBranchAddress("SDO_sTGC_multiplet", &SDO_sTGC_multiplet, &b_SDO_sTGC_multiplet); + fChain->SetBranchAddress("SDO_sTGC_gas_gap", &SDO_sTGC_gas_gap, &b_SDO_sTGC_gas_gap); + fChain->SetBranchAddress("SDO_sTGC_channel", &SDO_sTGC_channel, &b_SDO_sTGC_channel); + fChain->SetBranchAddress("SDO_sTGC_channel_type", &SDO_sTGC_channel_type, &b_SDO_sTGC_channel_type); + fChain->SetBranchAddress("SDO_sTGC_word", &SDO_sTGC_word, &b_SDO_sTGC_word); + fChain->SetBranchAddress("SDO_sTGC_barcode", &SDO_sTGC_barcode, &b_SDO_sTGC_barcode); + fChain->SetBranchAddress("SDO_sTGC_globalPosX", &SDO_sTGC_globalPosX, &b_SDO_sTGC_globalPosX); + fChain->SetBranchAddress("SDO_sTGC_globalPosY", &SDO_sTGC_globalPosY, &b_SDO_sTGC_globalPosY); + fChain->SetBranchAddress("SDO_sTGC_globalPosZ", &SDO_sTGC_globalPosZ, &b_SDO_sTGC_globalPosZ); + fChain->SetBranchAddress("SDO_sTGC_global_time", &SDO_sTGC_global_time, &b_SDO_sTGC_global_time); + fChain->SetBranchAddress("SDO_sTGC_Energy", &SDO_sTGC_Energy, &b_SDO_sTGC_Energy); + fChain->SetBranchAddress("SDO_sTGC_tof", &SDO_sTGC_tof, &b_SDO_sTGC_tof); + fChain->SetBranchAddress("SDO_sTGC_localPosX", &SDO_sTGC_localPosX, &b_SDO_sTGC_localPosX); + fChain->SetBranchAddress("SDO_sTGC_localPosY", &SDO_sTGC_localPosY, &b_SDO_sTGC_localPosY); + fChain->SetBranchAddress("RDO_sTGC_n", &RDO_sTGC_n, &b_RDO_sTGC_n); + fChain->SetBranchAddress("RDO_sTGC_stationName", &RDO_sTGC_stationName, &b_RDO_sTGC_stationName); + fChain->SetBranchAddress("RDO_sTGC_stationEta", &RDO_sTGC_stationEta, &b_RDO_sTGC_stationEta); + fChain->SetBranchAddress("RDO_sTGC_stationPhi", &RDO_sTGC_stationPhi, &b_RDO_sTGC_stationPhi); + fChain->SetBranchAddress("RDO_sTGC_multiplet", &RDO_sTGC_multiplet, &b_RDO_sTGC_multiplet); + fChain->SetBranchAddress("RDO_sTGC_gas_gap", &RDO_sTGC_gas_gap, &b_RDO_sTGC_gas_gap); + fChain->SetBranchAddress("RDO_sTGC_channel", &RDO_sTGC_channel, &b_RDO_sTGC_channel); + fChain->SetBranchAddress("RDO_sTGC_channel_type", &RDO_sTGC_channel_type, &b_RDO_sTGC_channel_type); + fChain->SetBranchAddress("RDO_sTGC_time", &RDO_sTGC_time, &b_RDO_sTGC_time); + fChain->SetBranchAddress("RDO_sTGC_charge", &RDO_sTGC_charge, &b_RDO_sTGC_charge); + fChain->SetBranchAddress("RDO_sTGC_bcTag", &RDO_sTGC_bcTag, &b_RDO_sTGC_bcTag); + fChain->SetBranchAddress("RDO_sTGC_isDead", &RDO_sTGC_isDead, &b_RDO_sTGC_isDead); + fChain->SetBranchAddress("PRD_sTGC", &PRD_sTGC, &b_PRDs_sTGC_n); + fChain->SetBranchAddress("PRD_sTGC_stationName", &PRD_sTGC_stationName, &b_PRD_sTGC_stationName); + fChain->SetBranchAddress("PRD_sTGC_stationEta", &PRD_sTGC_stationEta, &b_PRD_sTGC_stationEta); + fChain->SetBranchAddress("PRD_sTGC_stationPhi", &PRD_sTGC_stationPhi, &b_PRD_sTGC_stationPhi); + fChain->SetBranchAddress("PRD_sTGC_multiplet", &PRD_sTGC_multiplet, &b_PRD_sTGC_multiplet); + fChain->SetBranchAddress("PRD_sTGC_gas_gap", &PRD_sTGC_gas_gap, &b_PRD_sTGC_gas_gap); + fChain->SetBranchAddress("PRD_sTGC_channel_type", &PRD_sTGC_channel_type, &b_PRD_sTGC_channel_type); + fChain->SetBranchAddress("PRD_sTGC_channel", &PRD_sTGC_channel, &b_PRD_sTGC_channel); + fChain->SetBranchAddress("PRD_sTGC_globalPosX", &PRD_sTGC_globalPosX, &b_PRD_sTGC_globalPosX); + fChain->SetBranchAddress("PRD_sTGC_globalPosY", &PRD_sTGC_globalPosY, &b_PRD_sTGC_globalPosY); + fChain->SetBranchAddress("PRD_sTGC_globalPosZ", &PRD_sTGC_globalPosZ, &b_PRD_sTGC_globalPosZ); + fChain->SetBranchAddress("PRD_sTGC_localPosX", &PRD_sTGC_localPosX, &b_PRD_sTGC_localPosX); + fChain->SetBranchAddress("PRD_sTGC_localPosY", &PRD_sTGC_localPosY, &b_PRD_sTGC_localPosY); + fChain->SetBranchAddress("PRD_sTGC_covMatrix_1_1", &PRD_sTGC_covMatrix_1_1, &b_PRD_sTGC_covMatrix_1_1); + fChain->SetBranchAddress("PRD_sTGC_covMatrix_2_2", &PRD_sTGC_covMatrix_2_2, &b_PRD_sTGC_covMatrix_2_2); + fChain->SetBranchAddress("Hits_MM_n", &Hits_MM_n, &b_Hits_MM_n); + fChain->SetBranchAddress("Hits_MM_trackId", &Hits_MM_trackId, &b_Hits_MM_trackId); + fChain->SetBranchAddress("Hits_MM_isInsideBounds", &Hits_MM_isInsideBounds, &b_Hits_MM_isInsideBounds); + fChain->SetBranchAddress("Hits_MM_globalTime", &Hits_MM_globalTime, &b_Hits_MM_globalTime); + fChain->SetBranchAddress("Hits_MM_hitGlobalPositionX", &Hits_MM_hitGlobalPositionX, &b_Hits_MM_hitGlobalPositionX); + fChain->SetBranchAddress("Hits_MM_hitGlobalPositionY", &Hits_MM_hitGlobalPositionY, &b_Hits_MM_hitGlobalPositionY); + fChain->SetBranchAddress("Hits_MM_hitGlobalPositionZ", &Hits_MM_hitGlobalPositionZ, &b_Hits_MM_hitGlobalPositionZ); + fChain->SetBranchAddress("Hits_MM_hitGlobalPositionR", &Hits_MM_hitGlobalPositionR, &b_Hits_MM_hitGlobalPositionR); + fChain->SetBranchAddress("Hits_MM_hitGlobalPositionP", &Hits_MM_hitGlobalPositionP, &b_Hits_MM_hitGlobalPositionP); + fChain->SetBranchAddress("Hits_MM_hitGlobalDirectionX", &Hits_MM_hitGlobalDirectionX, &b_Hits_MM_hitGlobalDirectionX); + fChain->SetBranchAddress("Hits_MM_hitGlobalDirectionY", &Hits_MM_hitGlobalDirectionY, &b_Hits_MM_hitGlobalDirectionY); + fChain->SetBranchAddress("Hits_MM_hitGlobalDirectionZ", &Hits_MM_hitGlobalDirectionZ, &b_Hits_MM_hitGlobalDirectionZ); + fChain->SetBranchAddress("Hits_MM_hitLocalPositionX", &Hits_MM_hitLocalPositionX, &b_Hits_MM_hitLocalPositionX); + fChain->SetBranchAddress("Hits_MM_hitLocalPositionY", &Hits_MM_hitLocalPositionY, &b_Hits_MM_hitLocalPositionY); + fChain->SetBranchAddress("Hits_MM_hitLocalPositionZ", &Hits_MM_hitLocalPositionZ, &b_Hits_MM_hitLocalPositionZ); + fChain->SetBranchAddress("Hits_MM_detector_globalPositionX", &Hits_MM_detector_globalPositionX, &b_Hits_MM_detector_globalPositionX); + fChain->SetBranchAddress("Hits_MM_detector_globalPositionY", &Hits_MM_detector_globalPositionY, &b_Hits_MM_detector_globalPositionY); + fChain->SetBranchAddress("Hits_MM_detector_globalPositionZ", &Hits_MM_detector_globalPositionZ, &b_Hits_MM_detector_globalPositionZ); + fChain->SetBranchAddress("Hits_MM_detector_globalPositionR", &Hits_MM_detector_globalPositionR, &b_Hits_MM_detector_globalPositionR); + fChain->SetBranchAddress("Hits_MM_detector_globalPositionP", &Hits_MM_detector_globalPositionP, &b_Hits_MM_detector_globalPositionP); + fChain->SetBranchAddress("Hits_MM_hitToDsurfacePositionX", &Hits_MM_hitToDsurfacePositionX, &b_Hits_MM_hitToDsurfacePositionX); + fChain->SetBranchAddress("Hits_MM_hitToDsurfacePositionY", &Hits_MM_hitToDsurfacePositionY, &b_Hits_MM_hitToDsurfacePositionY); + fChain->SetBranchAddress("Hits_MM_hitToDsurfacePositionZ", &Hits_MM_hitToDsurfacePositionZ, &b_Hits_MM_hitToDsurfacePositionZ); + fChain->SetBranchAddress("Hits_MM_hitToRsurfacePositionX", &Hits_MM_hitToRsurfacePositionX, &b_Hits_MM_hitToRsurfacePositionX); + fChain->SetBranchAddress("Hits_MM_hitToRsurfacePositionY", &Hits_MM_hitToRsurfacePositionY, &b_Hits_MM_hitToRsurfacePositionY); + fChain->SetBranchAddress("Hits_MM_hitToRsurfacePositionZ", &Hits_MM_hitToRsurfacePositionZ, &b_Hits_MM_hitToRsurfacePositionZ); + fChain->SetBranchAddress("Hits_MM_FastDigitRsurfacePositionX", &Hits_MM_FastDigitRsurfacePositionX, &b_Hits_MM_FastDigitRsurfacePositionX); + fChain->SetBranchAddress("Hits_MM_FastDigitRsurfacePositionY", &Hits_MM_FastDigitRsurfacePositionY, &b_Hits_MM_FastDigitRsurfacePositionY); + fChain->SetBranchAddress("Hits_MM_particleEncoding", &Hits_MM_particleEncoding, &b_Hits_MM_particleEncoding); + fChain->SetBranchAddress("Hits_MM_kineticEnergy", &Hits_MM_kineticEnergy, &b_Hits_MM_kineticEnergy); + fChain->SetBranchAddress("Hits_MM_depositEnergy", &Hits_MM_depositEnergy, &b_Hits_MM_depositEnergy); + fChain->SetBranchAddress("Hits_MM_StepLength", &Hits_MM_StepLength, &b_Hits_MM_StepLength); + fChain->SetBranchAddress("Hits_MM_sim_stationName", &Hits_MM_sim_stationName, &b_Hits_MM_sim_stationName); + fChain->SetBranchAddress("Hits_MM_sim_stationEta", &Hits_MM_sim_stationEta, &b_Hits_MM_sim_stationEta); + fChain->SetBranchAddress("Hits_MM_sim_stationPhi", &Hits_MM_sim_stationPhi, &b_Hits_MM_sim_stationPhi); + fChain->SetBranchAddress("Hits_MM_sim_multilayer", &Hits_MM_sim_multilayer, &b_Hits_MM_sim_multilayer); + fChain->SetBranchAddress("Hits_MM_sim_layer", &Hits_MM_sim_layer, &b_Hits_MM_sim_layer); + fChain->SetBranchAddress("Hits_MM_sim_side", &Hits_MM_sim_side, &b_Hits_MM_sim_side); + fChain->SetBranchAddress("Hits_MM_off_stationName", &Hits_MM_off_stationName, &b_Hits_MM_off_stationName); + fChain->SetBranchAddress("Hits_MM_off_stationEta", &Hits_MM_off_stationEta, &b_Hits_MM_off_stationEta); + fChain->SetBranchAddress("Hits_MM_off_stationPhi", &Hits_MM_off_stationPhi, &b_Hits_MM_off_stationPhi); + fChain->SetBranchAddress("Hits_MM_off_multiplet", &Hits_MM_off_multiplet, &b_Hits_MM_off_multiplet); + fChain->SetBranchAddress("Hits_MM_off_gas_gap", &Hits_MM_off_gas_gap, &b_Hits_MM_off_gas_gap); + fChain->SetBranchAddress("Hits_MM_off_channel", &Hits_MM_off_channel, &b_Hits_MM_off_channel); + fChain->SetBranchAddress("Digits_MM", &Digits_MM, &b_Digits_MM_n); + fChain->SetBranchAddress("Digits_MM_stationName", &Digits_MM_stationName, &b_Digits_MM_stationName); + fChain->SetBranchAddress("Digits_MM_stationEta", &Digits_MM_stationEta, &b_Digits_MM_stationEta); + fChain->SetBranchAddress("Digits_MM_stationPhi", &Digits_MM_stationPhi, &b_Digits_MM_stationPhi); + fChain->SetBranchAddress("Digits_MM_multiplet", &Digits_MM_multiplet, &b_Digits_MM_multiplet); + fChain->SetBranchAddress("Digits_MM_gas_gap", &Digits_MM_gas_gap, &b_Digits_MM_gas_gap); + fChain->SetBranchAddress("Digits_MM_channel", &Digits_MM_channel, &b_Digits_MM_channel); + fChain->SetBranchAddress("Digits_MM_time", &Digits_MM_time, &b_Digits_MM_time); + fChain->SetBranchAddress("Digits_MM_charge", &Digits_MM_charge, &b_Digits_MM_charge); + fChain->SetBranchAddress("Digits_MM_stripPosition", &Digits_MM_stripPosition, &b_Digits_MM_stripPosition); + fChain->SetBranchAddress("Digits_MM_stripLposX", &Digits_MM_stripLposX, &b_Digits_MM_stripLposX); + fChain->SetBranchAddress("Digits_MM_stripLposY", &Digits_MM_stripLposY, &b_Digits_MM_stripLposY); + fChain->SetBranchAddress("Digits_MM_stripGposX", &Digits_MM_stripGposX, &b_Digits_MM_stripGposX); + fChain->SetBranchAddress("Digits_MM_stripGposY", &Digits_MM_stripGposY, &b_Digits_MM_stripGposY); + fChain->SetBranchAddress("Digits_MM_stripGposZ", &Digits_MM_stripGposZ, &b_Digits_MM_stripGposZ); + fChain->SetBranchAddress("Digits_MM_stripResponse_time", &Digits_MM_stripResponse_time, &b_Digits_MM_stripResponse_time); + fChain->SetBranchAddress("Digits_MM_stripResponse_charge", &Digits_MM_stripResponse_charge, &b_Digits_MM_stripResponse_charge); + fChain->SetBranchAddress("Digits_MM_stripResponse_stripPosition", &Digits_MM_stripResponse_stripPosition, &b_Digits_MM_stripResponse_stripPosition); + fChain->SetBranchAddress("Digits_MM_stripResponse_stripLposX", &Digits_MM_stripResponse_stripLposX, &b_Digits_MM_stripResponse_stripLposX); + fChain->SetBranchAddress("Digits_MM_stripResponse_stripLposY", &Digits_MM_stripResponse_stripLposY, &b_Digits_MM_stripResponse_stripLposY); + fChain->SetBranchAddress("Digits_MM_stripresponse_stripGposX", &Digits_MM_stripresponse_stripGposX, &b_Digits_MM_stripresponse_stripGposX); + fChain->SetBranchAddress("Digits_MM_stripResponse_stripGposY", &Digits_MM_stripResponse_stripGposY, &b_Digits_MM_stripResponse_stripGposY); + fChain->SetBranchAddress("Digits_MM_stripResponse_stripGposZ", &Digits_MM_stripResponse_stripGposZ, &b_Digits_MM_stripResponse_stripGposZ); + fChain->SetBranchAddress("Digits_MM_time_trigger", &Digits_MM_time_trigger, &b_Digits_MM_time_trigger); + fChain->SetBranchAddress("Digits_MM_charge_trigger", &Digits_MM_charge_trigger, &b_Digits_MM_charge_trigger); + fChain->SetBranchAddress("Digits_MM_position_trigger", &Digits_MM_position_trigger, &b_Digits_MM_position_trigger); + fChain->SetBranchAddress("Digits_MM_MMFE_VMM_id_trigger", &Digits_MM_MMFE_VMM_id_trigger, &b_Digits_MM_MMFE_VMM_id_trigger); + fChain->SetBranchAddress("Digits_MM_VMM_id_trigger", &Digits_MM_VMM_id_trigger, &b_Digits_MM_VMM_id_trigger); + fChain->SetBranchAddress("SDO_MM", &SDO_MM, &b_SDOs_MM_n); + fChain->SetBranchAddress("SDO_MM_stationName", &SDO_MM_stationName, &b_SDO_MM_stationName); + fChain->SetBranchAddress("SDO_MM_stationEta", &SDO_MM_stationEta, &b_SDO_MM_stationEta); + fChain->SetBranchAddress("SDO_MM_stationPhi", &SDO_MM_stationPhi, &b_SDO_MM_stationPhi); + fChain->SetBranchAddress("SDO_MM_multiplet", &SDO_MM_multiplet, &b_SDO_MM_multiplet); + fChain->SetBranchAddress("SDO_MM_gas_gap", &SDO_MM_gas_gap, &b_SDO_MM_gas_gap); + fChain->SetBranchAddress("SDO_MM_channel", &SDO_MM_channel, &b_SDO_MM_channel); + fChain->SetBranchAddress("SDO_MM_word", &SDO_MM_word, &b_SDO_MM_word); + fChain->SetBranchAddress("SDO_MM_barcode", &SDO_MM_barcode, &b_SDO_MM_barcode); + fChain->SetBranchAddress("SDO_MM_globalPosX", &SDO_MM_globalPosX, &b_SDO_MM_globalPosX); + fChain->SetBranchAddress("SDO_MM_globalPosY", &SDO_MM_globalPosY, &b_SDO_MM_globalPosY); + fChain->SetBranchAddress("SDO_MM_globalPosZ", &SDO_MM_globalPosZ, &b_SDO_MM_globalPosZ); + fChain->SetBranchAddress("SDO_MM_global_time", &SDO_MM_global_time, &b_SDO_MM_global_time); + fChain->SetBranchAddress("SDO_MM_localPosX", &SDO_MM_localPosX, &b_SDO_MM_localPosX); + fChain->SetBranchAddress("SDO_MM_localPosY", &SDO_MM_localPosY, &b_SDO_MM_localPosY); + fChain->SetBranchAddress("RDO_MM_n", &RDO_MM_n, &b_RDO_MM_n); + fChain->SetBranchAddress("RDO_MM_stationName", &RDO_MM_stationName, &b_RDO_MM_stationName); + fChain->SetBranchAddress("RDO_MM_stationEta", &RDO_MM_stationEta, &b_RDO_MM_stationEta); + fChain->SetBranchAddress("RDO_MM_stationPhi", &RDO_MM_stationPhi, &b_RDO_MM_stationPhi); + fChain->SetBranchAddress("RDO_MM_multiplet", &RDO_MM_multiplet, &b_RDO_MM_multiplet); + fChain->SetBranchAddress("RDO_MM_gas_gap", &RDO_MM_gas_gap, &b_RDO_MM_gas_gap); + fChain->SetBranchAddress("RDO_MM_channel", &RDO_MM_channel, &b_RDO_MM_channel); + fChain->SetBranchAddress("RDO_MM_time", &RDO_MM_time, &b_RDO_MM_time); + fChain->SetBranchAddress("RDO_MM_charge", &RDO_MM_charge, &b_RDO_MM_charge); + fChain->SetBranchAddress("PRD_MM", &PRD_MM, &b_PRDs_MM_n); + fChain->SetBranchAddress("PRD_MM_stationName", &PRD_MM_stationName, &b_PRD_MM_stationName); + fChain->SetBranchAddress("PRD_MM_stationEta", &PRD_MM_stationEta, &b_PRD_MM_stationEta); + fChain->SetBranchAddress("PRD_MM_stationPhi", &PRD_MM_stationPhi, &b_PRD_MM_stationPhi); + fChain->SetBranchAddress("PRD_MM_multiplet", &PRD_MM_multiplet, &b_PRD_MM_multiplet); + fChain->SetBranchAddress("PRD_MM_gas_gap", &PRD_MM_gas_gap, &b_PRD_MM_gas_gap); + fChain->SetBranchAddress("PRD_MM_channel", &PRD_MM_channel, &b_PRD_MM_channel); + fChain->SetBranchAddress("PRD_MM_globalPosX", &PRD_MM_globalPosX, &b_PRD_MM_globalPosX); + fChain->SetBranchAddress("PRD_MM_globalPosY", &PRD_MM_globalPosY, &b_PRD_MM_globalPosY); + fChain->SetBranchAddress("PRD_MM_globalPosZ", &PRD_MM_globalPosZ, &b_PRD_MM_globalPosZ); + fChain->SetBranchAddress("PRD_MM_localPosX", &PRD_MM_localPosX, &b_PRD_MM_localPosX); + fChain->SetBranchAddress("PRD_MM_localPosY", &PRD_MM_localPosY, &b_PRD_MM_localPosY); + fChain->SetBranchAddress("PRD_MM_covMatrix_1_1", &PRD_MM_covMatrix_1_1, &b_PRD_MM_covMatrix_1_1); + Notify(); +} + +Bool_t NSWstudies::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +void NSWstudies::Show(Long64_t entry) +{ +// Print contents of entry. +// If entry is not specified, print current entry + if (!fChain) return; + fChain->Show(entry); +} +Int_t NSWstudies::Cut(Long64_t entry) +{ +// This function may be called from Loop. +// returns 1 if entry is accepted. +// returns -1 otherwise. + return 1; +} +#endif // #ifdef NSWstudies_cxx diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.C b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.C new file mode 100644 index 000000000000..fc59bc4428ab --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.C @@ -0,0 +1,456 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#define NSWstudies_cxx +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> +#include <TFile.h> +#include <TH1.h> +#include <TH3.h> +#include <cmath> +#include <iostream> + +#include "../efficiency.C" + +#include "NSWstudies_match.h" +#include "NSWstudies.h" + +using namespace std; + +void validateHits(Flocalize_collection& Hits, vector<bool>* insideBounds, vector<int>* pdgCodes); +void init_hists (vector< TH1I* >& hist_vec, bool isMM, string datatype, string matchedwith); +bool doEvt (int evtnr); +void write_and_delete (vector< TH1I* > vec); +void init_hist_pull (vector< TH1F*>& hist_pull); + +//Inputs +int min_mismatched_channel = 0; +int max_diff = 3; + +// log settings +bool quiet = true; +bool printDigits = false; +bool printHits = false; + +// Helpers in development: +// Validate hits beforehand +bool digi_test = false; +// Does the electron check do anything? +bool doElectronCheck = true; + + +// To test two data objects versus each other change the input of match_Hits_Digits and fillHists functions!! +void NSWstudies::Loop() +{ + bool doMM = 1; + bool dosTGC = 1; + + TFile *outFile = new TFile("RootFiles/NSWVal_Hists.root", "recreate"); + vector< TH1I* > hist_MM_digits; + vector< TH1I* > hist_MM_hits; + vector< TH1I* > hist_sTGC_digits; + vector< TH1I* > hist_sTGC_hits; + TH2D *hist_MM_global_digits = new TH2D ("MM_Global_pos_mismatched_digits", "MM_Global_pos_mismatched_digits", 50, -6000., 6000., 50, -6000., 6000.); + TH2D *hist_MM_global_hits = new TH2D ("MM_Global_pos_mismatched_hits", "MM_Global_pos_mismatched_hits", 50, -6000., 6000., 50, -6000., 6000.); + TH2D *hist_sTGC_global_digits = new TH2D ("sTGC_Global_pos_mismatched_digits", "sTGC_Global_pos_mismatched_digits", 50, -6000., 6000., 50, -6000., 6000.); + TH2D *hist_sTGC_global_hits = new TH2D ("sTGC_Global_pos_mismatched_hits", "sTGC_Global_pos_mismatched_hits", 50, -6000., 6000., 50, -6000., 6000.); + + vector< TH1F* > hist_pull; + init_hist_pull(hist_pull); + +// In a ROOT session, you can do: +// root> .L NSWstudies.C +// root> NSWstudies t +// root> t.GetEntry(12); // Fill t data members with entry number 12 +// root> t.Show(); // Show values of entry 12 +// root> t.Show(16); // Read and show values of entry 16 +// root> t.Loop(); // Loop on all entriess +// + +// This is the loop skeleton where: +// jentry is the global entry number in the chain +// ientry is the entry number in the current Tree +// Note that the argument to GetEntry must be: +// jentry for TChain::GetEntry +// ientry for TTree::GetEntry and TBranch::GetEntry +// +// To read only selected branches, Insert statements like: +// METHOD1: +// fChain->SetBranchStatus("*",0); // disable all branches +// fChain->SetBranchStatus("branchname",1); // activate branchname +// METHOD2: replace line +// fChain->GetEntry(jentry); //read all branches +//by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + + //DEBUG: look only at n events + Long64_t firstentry = 0; + //nentries = 100; + + Long64_t jentry; + Long64_t nbytes = 0, nb = 0; + for (jentry=firstentry; jentry<nentries;jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + if (!doEvt(eventNumber)) {continue;} + // if (Cut(ientry) < 0) continue; + + //only muon events: + bool allMu = true; + int mu_pdg = 13; + for (int pdg : *TruthParticle_Pdg) { allMu &= (abs(pdg) == mu_pdg); } + if (!allMu) { continue; } + + if (!quiet) { + printf("\n**** Event: %d ****\n", eventNumber); + /* printf("\nMM's\n");printf("number of truthparticles: %lu\n", TruthParticle_Pdg->size()); + for (int pdg : *TruthParticle_Pdg) { printf(" namely: %d\n", pdg);} + for (double Pt : *TruthParticle_Pt) { printf(" Pt: %f\n", Pt); }*/ + } + + if (dosTGC) { + Flocalize_collection oHits_sTGC ("Hits", Hits_sTGC_off_stationName, Hits_sTGC_off_stationEta, Hits_sTGC_off_stationPhi, Hits_sTGC_off_multiplet, Hits_sTGC_off_gas_gap, Hits_sTGC_off_channel, Hits_sTGC_off_channel_type); + if (digi_test) validateHits(oHits_sTGC, Hits_sTGC_isInsideBounds, Hits_sTGC_particleEncoding); + Flocalize_collection oDigits_sTGC ("Digits", Digits_sTGC_stationName, Digits_sTGC_stationEta, Digits_sTGC_stationPhi, Digits_sTGC_multiplet, Digits_sTGC_gas_gap, Digits_sTGC_channel, Digits_sTGC_channel_type); + Flocalize_collection oSDO_sTGC ("SDOs", SDO_sTGC_stationName, SDO_sTGC_stationEta, SDO_sTGC_stationPhi, SDO_sTGC_multiplet, SDO_sTGC_gas_gap, SDO_sTGC_channel, SDO_sTGC_channel_type); + Flocalize_collection oRDO_sTGC ("RDOs", RDO_sTGC_stationName, RDO_sTGC_stationEta, RDO_sTGC_stationPhi, RDO_sTGC_multiplet, RDO_sTGC_gas_gap, RDO_sTGC_channel, RDO_sTGC_channel_type); + Flocalize_collection oPRD_sTGC ("PRDs", PRD_sTGC_stationName, PRD_sTGC_stationEta, PRD_sTGC_stationPhi, PRD_sTGC_multiplet, PRD_sTGC_gas_gap, PRD_sTGC_channel, PRD_sTGC_channel_type); + match_Hits_Digits(oRDO_sTGC, oPRD_sTGC); + fillHists(oRDO_sTGC, hist_sTGC_hits); + fillHists(oPRD_sTGC, hist_sTGC_digits); + + plotError (oPRD_sTGC, hist_pull); + + /*/Digits to Hits 2D: + for (unsigned int k = 0; k < oDigits_sTGC.size(); ++k) { + int diff = oDigits_sTGC.matchedchannel.at(k) - oDigits_sTGC.channel->at(k); + if ((oDigits_sTGC.matchedchannel.at(k) < 0 || abs(diff) > 3) && oDigits_sTGC.channel->at(k) > min_mismatched_channel) { + hist_sTGC_global_digits->Fill(Digits_sTGC_globalPosX->at(k), Digits_sTGC_globalPosY->at(k)); + } + } + //Hits to Digits 2D: + for (unsigned int k = 0; k < oHits_sTGC.size(); ++k) { + int diff = oHits_sTGC.matchedchannel.at(k) - oHits_sTGC.channel->at(k); + if ((oHits_sTGC.matchedchannel.at(k) < 0 || abs(diff) > 3) && oHits_sTGC.channel->at(k) > min_mismatched_channel) { + hist_sTGC_global_hits->Fill(Hits_sTGC_detector_globalPositionX->at(k), Hits_sTGC_detector_globalPositionY->at(k)); + } + }*/ + } + if (doMM) { + // No channel type for MM! + Flocalize_collection oHits_MM ("Hits", Hits_MM_off_stationName, Hits_MM_off_stationEta, Hits_MM_off_stationPhi, Hits_MM_off_multiplet, Hits_MM_off_gas_gap, Hits_MM_off_channel); + if (digi_test) validateHits(oHits_MM, Hits_MM_isInsideBounds, Hits_MM_particleEncoding); + Flocalize_collection oDigits_MM ("Digits", Digits_MM_stationName, Digits_MM_stationEta, Digits_MM_stationPhi, Digits_MM_multiplet, Digits_MM_gas_gap, Digits_MM_channel); + Flocalize_collection oSDO_MM ("SDOs", SDO_MM_stationName, SDO_MM_stationEta, SDO_MM_stationPhi, SDO_MM_multiplet, SDO_MM_gas_gap, SDO_MM_channel); + Flocalize_collection oRDO_MM ("RDOs", RDO_MM_stationName, RDO_MM_stationEta, RDO_MM_stationPhi, RDO_MM_multiplet, RDO_MM_gas_gap, RDO_MM_channel); + Flocalize_collection oPRD_MM ("PRDs", PRD_MM_stationName, PRD_MM_stationEta, PRD_MM_stationPhi, PRD_MM_multiplet, PRD_MM_gas_gap, PRD_MM_channel); + match_Hits_Digits(oRDO_MM, oPRD_MM); + fillHists(oRDO_MM, hist_MM_hits); + fillHists(oPRD_MM, hist_MM_digits); + + plotError (oPRD_MM, hist_pull); + + /*/Digits to Hits 2D: + for (unsigned int k = 0; k < oDigits_MM.sizes(); ++k) { + int diff = oDigits_MM.matchedchannel.at(k) - oDigits_MM.channel->at(k); + if ((oDigits_MM.matchedchannel.at(k) < 0 || abs(diff) > 3) && oDigits_MM.channel->at(k) > min_mismatched_channel) { + hist_MM_global_digits->Fill(Digits_MM_globalPosX->at(k), Digits_MM_globalPosY->at(k)); + } + }/ + // //Hits to Digits 2D: + for (unsigned int k = 0; k < oHits_MM.size(); ++k) { + int diff = oHits_MM.matchedchannel.at(k) - oHits_MM.channel->at(k); + if ((oHits_MM.matchedchannel.at(k) < 0 || abs(diff) > 3) && oHits_MM.channel->at(k) > min_mismatched_channel) { + hist_MM_global_hits->Fill(Hits_MM_detector_globalPositionX->at(k), Hits_MM_detector_globalPositionY->at(k)); + } + }*/ + } + } + // Print efficiencies + float mm_digits, mm_hits, stgc_digits, stgc_hits, mm_hit_miss, stgc_hit_miss, mm_digit_miss, stgc_digit_miss; + if (doMM) { + mm_digits = hist_MM_digits[1]->GetEntries(); + mm_hits = hist_MM_hits[1]->GetEntries(); + mm_hit_miss = hist_MM_hits[3]->GetEntries(); + mm_digit_miss = hist_MM_digits[3]->GetEntries(); + std::cout << "MM: Conversion forwards: "; + efficiency(mm_hit_miss, mm_hits); + std::cout << "MM: Conversion backwards: "; + efficiency(mm_digit_miss, mm_digits); + } + if (dosTGC) { + stgc_digits = hist_sTGC_digits[1]->GetEntries(); + stgc_hits = hist_sTGC_hits[1]->GetEntries(); + stgc_hit_miss = hist_sTGC_hits[3]->GetEntries(); + stgc_digit_miss = hist_sTGC_digits[3]->GetEntries(); + std::cout << "sTGC: Conversion forwards: "; + efficiency(stgc_hit_miss, stgc_hits); + std::cout << "sTGC: Conversion backwards: "; + efficiency(stgc_digit_miss, stgc_digits); + } + // Bookkeeping: MM: Digits + write_and_delete(hist_MM_digits); + if (doMM) hist_MM_global_digits->Write(); + delete hist_MM_global_digits; + //Hits + write_and_delete(hist_MM_hits); + if (doMM) hist_MM_global_hits->Write(); + delete hist_MM_global_hits; + // sTGC: Digits + write_and_delete(hist_sTGC_digits); + if (dosTGC) hist_sTGC_global_digits->Write(); + delete hist_sTGC_global_digits; + // Hits + write_and_delete(hist_sTGC_hits); + if (dosTGC) hist_sTGC_global_hits->Write(); + delete hist_sTGC_global_hits; + // + for (TH1F* _h: hist_pull) { + _h->Write(); + delete _h; + } + // File + delete outFile; +} + +void validateHits(Flocalize_collection& Hits, vector<bool>* insideBounds, vector<int>* pdgCodes) { + //Function to take out hits which should not be digitized + bool accept_hit; + for (unsigned int i = 0; i < Hits.size(); ++i) { + accept_hit = true; + // check if hit is inside active volume + accept_hit &= insideBounds->at(i); + // check if hit is a muon hit + accept_hit &= abs(pdgCodes->at(i)) == 13; + // Alex: For the sTGC wire digits, channel numbers can only go up to 59. However I made it so that hits placed in the dead region are given the channelnumber 63. As 63 isn't a valid channel number, the digit isn't added. + if (!Hits.isMM) accept_hit &= (Hits.channel_type->at(i) != 2 || Hits.channel->at(i) != 63); + // Flag hits which should not be digitized + if (!accept_hit) { Hits.matchedchannel.at(i) = -100; } + } +} + + +void NSWstudies::match_Hits_Digits (Flocalize_collection& Hits, Flocalize_collection& Digits) { + static bool done_once = 0; + if (!done_once) { printf("Converting %s to %s\n", Hits.name.data(), Digits.name.data()); done_once = 1; } + //first level check: sizes + if (!quiet) printf("About to match, size of Hits: %lu, size of Digits:%lu \n", Hits.size(), Digits.size()); + + for (unsigned int i = 0; i < Hits.size(); ++i) + { + if (Hits.matchedchannel.at(i) == -100) { continue; } + //printf("current i: %d\n", i); + int nMatch = 0; + for (unsigned int j = 0; j < Digits.size(); ++j) + { + //printf("current j: %d\n", j); + if (Hits.at(i).isEqual( Digits.at(j) ) ) + { + nMatch++; + Hits.update_match(i, Digits.channel->at(j), j); + Digits.update_match(j, Hits.channel->at(i), i); + //printf("Found Hits in Digits at Hits index: %d, and Digits index: %d\n", i, j); + } + } + if (quiet) continue; + //Check for other matches + if (nMatch > 1 && Digits.isMM) { + printf("\nWARNING: More than 1 match for MM!, namely: %d matches\n", nMatch); + } + if (nMatch == 0) { + printf("\nWARNING: No match found!\n"); + printf("Hits info: \n"); + Hits.at(i).printInfo(); + } + //debug + if (nMatch == 1 ) { + //printf("Found single Digit for this Hit!\n"); + //(Hits.at(i).channel == Digits.at(jfound).channel) ? printf("Channels are the same: %d\n", Hits.at(i).channel) : printf("Channels are different: %d for Hit, %d for Digit\n", Hits.at(i).channel, Digits.at(jfound).channel); + } + } + Hits.matchedwith = Digits.name; + Digits.matchedwith = Hits.name; + if (printDigits) { printf("\nFull digits info (event: %d): \n", eventNumber); Digits.printInfo(); } + if (printHits) { printf("\nFull hits info (event: %d): \n", eventNumber); Hits.printInfo(); } + } + +void NSWstudies::fillHists (Flocalize_collection& oData, vector< TH1I* >& hist_vec) { + if (hist_vec.empty()) { init_hists(hist_vec, oData.isMM, oData.name, oData.matchedwith); } + TH1I* hist_diff = hist_vec[0]; + TH1I* hist_ndigits = hist_vec[1]; + TH1I* hist_match = hist_vec[2]; + TH1I* hist_missmatch = hist_vec[3]; + TH1I* hist_missmatched_evt = hist_vec[4]; + TH1I* hist_missmatched_chc = hist_vec[5]; + bool hasMissed = false; + for (unsigned int i = 0; i < oData.size(); ++i) { + int diff = oData.matchedchannel.at(i) - oData.channel->at(i); + if (abs(diff) > 19 ) { diff = -20; /*printf("Matchedchannel more then 20 strips away! Matchedchannel: %d\n", oData.matchedchannel.at(i));*/ } + //Check if hit inside volume & only muon: + if (oData.matchedchannel.at(i) == -100) { continue; } + if (oData.name == "Hits" && !digi_test && doElectronCheck) { + if (oData.isMM) { + bool accept_hit = Hits_MM_isInsideBounds->at(i) * (abs(Hits_MM_particleEncoding->at(i)) == 13); + //diff = accept_hit * diff; + if (!accept_hit) { continue; } + } else { + // For the wire digits, channel numbers can only go up to 59. However I made it so that hits placed in the dead region are given the channelnumber 63. As 63 isn't a valid channel number, the digit isn't added. + bool accept_hit = Hits_sTGC_isInsideBounds->at(i) * + (abs(Hits_sTGC_particleEncoding->at(i)) == 13) * + (oData.channel_type->at(i) != 2 || oData.channel->at(i) != 63); + //diff = accept_hit * diff; + if (!accept_hit) { continue; } + } + } + // + hist_diff->Fill(diff); + int nextbin = oData.localize(i); + const char* eta_sign = (oData.stationEta->at(i) > 0) ? "+" : "-" ; + int cht = oData.isMM ? -1 : oData.channel_type->at(i); + TString binName; + binName.Form("#eta:%s,%s,mp:%d,gg:%d,cht:%d", eta_sign, oData.stationName->at(i).data(), oData.multiplet->at(i), oData.gas_gap->at(i), cht); + // Note bin numbering for setbinlabel starts at 1 + hist_match->GetXaxis()->SetBinLabel(nextbin + 1, binName); + hist_missmatch->GetXaxis()->SetBinLabel(nextbin + 1, binName); + hist_ndigits->GetXaxis()->SetBinLabel(nextbin + 1, binName); + hist_ndigits->Fill(nextbin); + //Increment hist by 1 for each matched hit in matchedindices + //printf("size matchedindices: %d, empty: %d\n", oData.matchedindices.at(i).size() , 1 * oData.matchedindices.at(i).empty()); + for (unsigned int j = 0; j < oData.matchedindices.at(i).size(); ++j) { + hist_match->Fill(nextbin); + } + if (abs(diff) > max_diff && oData.channel->at(i) > min_mismatched_channel) { + hist_missmatch->Fill(nextbin); + hist_missmatched_chc->Fill(oData.channel->at(i)); + hasMissed = true; + if (!quiet) { printf("\nFound mismatched digit in event %d. Digit info:\n", eventNumber); oData.at(i).printInfo(); } + } + } + if (hasMissed) { + hist_missmatched_evt->Fill(eventNumber); + } +} + +void init_hists (vector< TH1I* >& hist_vec, bool isMM, string datatype, string matchedwith) { + int ndigits; + const char* obj = datatype.c_str(); + const char* type; + TString title; + if (isMM) { + ndigits = 34; + type = "MM"; + } else { + ndigits = 100; + type = "sTGC"; + } + title.Form("%s_Nearest_matched(%s)channel_minus_Channel_%s", type, matchedwith.c_str(), obj); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), 40, -20, 20) ); + hist_vec[0]->GetXaxis()->SetTitle("Difference(strips) (-20 = out of range)"); + title.Form("%s_Occurence_of_%s", type, obj); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), ndigits, 0, ndigits) ); + title.Form("%s_%s_per_%s",type, obj, matchedwith.c_str()); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), ndigits, 0, ndigits) ); + title.Form("%s_Nr_mismatched_%s", type, obj); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), ndigits, 0, ndigits) ); + title.Form("%s_Mismatched_events_%s", type, obj); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), 1000, 0, 1000) ); + title.Form("%s_Mismatched_channel_%s", type, obj); + hist_vec.push_back( new TH1I (title.Data(), title.Data(), 100, 0, 500) ); +} + +void NSWstudies::plotError (Flocalize_collection oPRD, vector<TH1F*> hists_pull) { + bool isMM = oPRD.isMM; + + double sTGC_error, sTGC_locX, sTGC_truthX, sTGC_pull; + double MM_error, MM_locX, MM_truthX, MM_pull; + int i, j ,chTy, gg; + for (i = 0; i < oPRD.size(); ++i) { + // assume only one SDO per PRD, if not, select the first one + j = oPRD.matchedindices[i][0]; + if (!isMM) { + // sTGC part + sTGC_locX = PRD_sTGC_localPosX->at(i); + sTGC_error = sqrt (PRD_sTGC_covMatrix_1_1->at(i)); + sTGC_truthX = SDO_sTGC_localPosX->at(j); + sTGC_pull = (sTGC_locX - sTGC_truthX) / sTGC_error; + + printf("PRD sTGC channel: %d, matched with SDO channel: %d\n", PRD_sTGC_channel->at(i), SDO_sTGC_channel->at(j)); + printf("PRD sTGC locX: %f, SDO locx: %f\n\n", sTGC_locX, sTGC_truthX); + + //printf("sTGC1\n"); + chTy = oPRD.channel_type->at(i); + //printf("sTGC2\n"); + hists_pull[chTy]->Fill((sTGC_locX - sTGC_truthX)); + //printf("sTGC3\n"); + hists_pull[chTy + 3]->Fill(sTGC_pull); + + } else { + + // MM part + MM_locX = PRD_MM_localPosX->at(i); + MM_error = sqrt (PRD_MM_covMatrix_1_1->at(i)); + MM_truthX = SDO_MM_localPosX->at(j); + MM_pull = (MM_locX - MM_truthX) / MM_error; + + printf("PRD MM channel: %d, matched with SDO channel: %d\n", PRD_MM_channel->at(i), SDO_MM_channel->at(j)); + printf("PRD MM locX: %f, SDO locx: %f\n\n", MM_locX, MM_truthX); + + gg = oPRD.gas_gap->at(i) + 5; + hists_pull[gg]->Fill((MM_locX - MM_truthX)); + hists_pull[gg + 4]->Fill(MM_pull); + } + } +} + +bool doEvt (int evtnr) { + //do all events: + return true; + //int events_to_investigate[] = { 11, 19, 21, 22, 25 }; + int events_to_investigate[] = {11}; + bool keep_event = false; + int size = sizeof(events_to_investigate)/sizeof(events_to_investigate[0]); + for (int i = 0; i < size; ++i) { keep_event |= events_to_investigate[i] == evtnr; } + return keep_event; +} + +void write_and_delete (vector< TH1I* > vec) { + for (TH1I* _h: vec) { + _h->Write(); + delete _h; + } +} + + +void init_hist_pull (vector< TH1F*>& hist_pull) { + hist_pull.push_back (new TH1F("sTGC_pad_distance", "sTGC_pad_distance", 200, -200, 200)); + hist_pull.push_back (new TH1F("sTGC_strip_distance", "sTGC_strip_distance", 200, -200, 200)); + hist_pull.push_back (new TH1F("sTGC_wire_distance", "sTGC_wire_distance", 200, -200, 200)); + hist_pull.push_back (new TH1F("sTGC_pad_pull", "sTGC_pad_pull", 200, -100, 100)); + hist_pull.push_back (new TH1F("sTGC_strip_pull", "sTGC_strip_pull", 200, -100, 100)); + hist_pull.push_back (new TH1F("sTGC_wire_pull", "sTGC_wire_pull", 200, -100, 100)); + + hist_pull.push_back (new TH1F("MM_gg1_distance", "MM_gg1_distance", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg2_distance", "MM_gg2_distance", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg3_distance", "MM_gg3_distance", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg4_distance", "MM_gg4_distance", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg1_pull", "MM_gg1_pull", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg2_pull", "MM_gg2_pull", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg3_pull", "MM_gg3_pull", 200, -20, 20)); + hist_pull.push_back (new TH1F("MM_gg4_pull", "MM_gg4_pull", 200, -20, 20)); + +} + + + + + + + + + + diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.h new file mode 100644 index 000000000000..2e2c68ce778f --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/NSWstudies_match.h @@ -0,0 +1,202 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef NSWstudies_match_h +#define NSWstudies_match_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. +#include "vector" + +using namespace std; + +class Flocalize { +private: +public: + ~Flocalize() {;} + Flocalize () { + stationName = string(""); + stationEta = 0; + stationPhi = 0; + multiplet = 0; + gas_gap = 0; + channel_type = 0; + channel = 0; + } + Flocalize (string i_stationName, int i_stationEta, int i_stationPhi, int i_multiplet, int i_gas_gap, int i_channel, int i_channel_type, int i_matchedchannel) { + stationName = i_stationName; + stationEta = i_stationEta; + stationPhi = i_stationPhi; + multiplet = i_multiplet; + gas_gap = i_gas_gap; + channel_type = i_channel_type; + channel = i_channel; + matchedchannel = i_matchedchannel; + } + //To do: oveload == operator? + bool isEqual(Flocalize _other) { + return ( stationName.compare(_other.stationName) == 0 + && stationEta == _other.stationEta + && stationPhi == _other.stationPhi + && multiplet == _other.multiplet + && gas_gap == _other.gas_gap + && channel_type == _other.channel_type + //&& channel == _other.channel + ); + } + bool isEqualecho (Flocalize _other) { + bool equal = true; + if (stationName.compare(_other.stationName) != 0) {printf("stationName is not equal\n"); equal = false;} + if (stationPhi != _other.stationPhi) {printf("stationPhi is not equal\n"); equal = false;} + if (multiplet != _other.multiplet) {printf("multiplet is not equal\n"); equal = false;} + if (gas_gap != _other.gas_gap) {printf("gas_gap is not equal\n"); equal = false;} + if (channel_type != _other.channel_type) {printf("channel_type is not equal\n"); equal = false;} + if (channel != _other.channel) {printf("channel is not equal\n"); equal = false;} + return equal; + } + void printInfo () { + printf("%-15s %-15s %-15s %-15s %-15s %-15s %-15s %-15s\n", "stationname", "stationEta", "stationPhi", "multiplet", "gas_gap", "channeltype", "channel", "matchedchannel"); + printf("%-15s %-15d %-15d %-15d %-15d %-15d %-15d %-15d\n", stationName.data(), stationEta, stationPhi, multiplet, gas_gap, channel_type, channel, matchedchannel); + } + string stationName; + int stationEta; + int stationPhi; + int multiplet; + int gas_gap; + int channel_type; + int channel; + int matchedchannel; +}; + +class Flocalize_collection { + //A class to hold all info to find a Hit in the Digits collection. Generalized to also be used on the RDO's. Does not take ownership of any of the parameters used, just a way to collect pointers. +private: +public: + Flocalize_collection () { + stationName = NULL; + stationEta = NULL; + stationPhi = NULL; + multiplet = NULL; + gas_gap = NULL; + channel_type = NULL; + channel = NULL; + } + ~Flocalize_collection() {;} + //NB: MM has no detector type: make this last entry, and ajust member functions for no type possibility. + Flocalize_collection (string i_name, vector<string>* i_stationName, vector<int>* i_stationEta, vector<int>* i_stationPhi, vector<int>* i_multiplet, vector<int>* i_gas_gap, vector<int>* i_channel, vector<int>* i_channel_type = nullptr) { + isMM = (i_channel_type == nullptr) ? 1 : 0; + stationName = i_stationName; + stationEta = i_stationEta; + stationPhi = i_stationPhi; + multiplet = i_multiplet; + gas_gap = i_gas_gap; + channel_type = i_channel_type; + channel = i_channel; + vector<int> mc(this->size()); + for (unsigned int i = 0; i < this->size(); ++i) { mc[i] = -10; } + matchedchannel = mc; + vector<vector<unsigned int>> mi(this->size()); + matchedindices = mi; + name = i_name; + this->checksize(); + } + size_t size() { + this->checksize(); + return stationName->size(); + } + bool checksize() { + size_t channel_type_size; + size_t col_size = stationName->size(); + //skip channel_type check if MM, as MM does not have this parameter. + channel_type_size = (isMM) ? col_size : channel_type->size(); + if (! (stationEta->size() == col_size || + stationPhi->size() == col_size || + multiplet->size() == col_size || + gas_gap->size() == col_size || + channel_type_size == col_size || + channel->size() == col_size) ) { printf("Sizes of localize collection do not match!\n"); return false;} + //else { printf("size checks out\n"); } + return true; + } + //also overlod operator [] ? + Flocalize at(unsigned int index) { + if (index > this->size()) { Flocalize local; return local; } + // set channel type to 0 if it is MM, as MM does not have channel type + int type_val; + type_val = (isMM) ? 0 : channel_type->at(index); + Flocalize local(stationName->at(index), stationEta->at(index), stationPhi->at(index), multiplet->at(index), gas_gap->at(index), channel->at(index), type_val, matchedchannel.at(index)); + return local; + } + void printInfo () { + if (isMM) { + printf("%-15s %-15s %-15s %-15s %-15s %-15s %-15s\n", "stationname", "stationEta", "stationPhi", "multiplet", "gas_gap", "channel", "matchedchannel"); + for (unsigned int i = 0; i < this->size(); ++i) + { printf("%-15s %-15d %-15d %-15d %-15d %-15d %-15d\n", stationName->at(i).data(), stationEta->at(i), stationPhi->at(i), multiplet->at(i), gas_gap->at(i), channel->at(i), matchedchannel.at(i));} + } else { + printf("%-15s %-15s %-15s %-15s %-15s %-15s %-15s %-15s\n", "stationname", "stationEta", "stationPhi", "multiplet", "gas_gap", "channel_type", "channel", "matchedchannel"); + for (unsigned int i = 0; i < this->size(); ++i) + { printf("%-15s %-15d %-15d %-15d %-15d %-15d %-15d %-15d\n", stationName->at(i).data(), stationEta->at(i), stationPhi->at(i), multiplet->at(i), gas_gap->at(i), channel_type->at(i), channel->at(i), matchedchannel.at(i));} + } + } + bool update_match(int index, int ch_candidate, unsigned int index_match) { + matchedindices.at(index).push_back(index_match); + if ( matchedchannel.at(index) == -10 ) { matchedchannel.at(index) = ch_candidate; } + if ( ch_candidate == -1 ) { return false; } + if (abs(ch_candidate - channel->at(index)) < abs(channel->at(index) - matchedchannel.at(index)) ) { + matchedchannel.at(index) = ch_candidate; + return true; + } + return false; + } + //Give a unique integer (1-16) based on name(2), multiplet(2) and gas gap(4) + int loc_unique (int index) { + return loc_unique_expanded(index); + int iname = (stationName->at(index).back() == 'L') + 1; + int unique = 100 * iname + 10 * multiplet->at(index) + gas_gap->at(index); + return unique; + } + int loc_unique_expanded (int index) { + int iname = (stationName->at(index).back() == 'L') + 1; + int iEta = (stationEta->at(index) > 0) + 1; + int i_cht = (isMM) ? 9 : channel_type->at(index); + int unique = 10000 * iEta + 1000 * i_cht + 100 * iname + 10 * multiplet->at(index) + gas_gap->at(index); + return unique; + } + int localize (int index) { + int _i = isMM ? localize_MM(index) : localize_sTGC(index); + return (_i); + } + int localize_sTGC (int index) { + int unique = loc_unique(index); + static vector<int> _vloc; + for (unsigned int i = 0; i < _vloc.size(); ++i) {if (_vloc[i] == unique ) {return i;} } + _vloc.push_back(unique); + return (_vloc.size() - 1); + } + int localize_MM (int index) { + int unique = loc_unique(index); + static vector<int> _vloc; + for (unsigned int i = 0; i < _vloc.size(); ++i) {if (_vloc[i] == unique ) {return i;} } + _vloc.push_back(unique); + return (_vloc.size() - 1); + } + vector<string> *stationName; + vector<int> *stationEta; + vector<int> *stationPhi; + vector<int> *multiplet; + vector<int> *gas_gap; + vector<int> *channel_type; + vector<int> *channel; + vector<int> matchedchannel; + vector<vector<unsigned int>> matchedindices; + string name; + string matchedwith; + bool isMM; + + }; + + #endif \ No newline at end of file diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/run_matching.C b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/run_matching.C new file mode 100644 index 000000000000..9e5a3eb1195b --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/macros/NSWMatching_offline/run_matching.C @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include "TROOT.h" + +void run_loop () { + gROOT->ProcessLine(".L NSWstudies_match.C++"); + gROOT->ProcessLine("NSWstudies t;"); + gROOT->ProcessLine("t.Loop()"); +} + +/* +This folder contains files used to makes histograms comparing various EDM objects of the NSW digitization chain. +The underlying matchin method is integrated in the NSW PRD Test, these files are to document the histogram production. +This is to allow others to reproduce results produced with these files. + +To use: +Copy the containts of this folder to any directory you like, it works offline. +A NSW Ntuple, as produced by the NSWPRDTest, needs to be present in the same directory. +(By default the filename is hardcoded to "NSWPRDValAlg.reco.ntuple.root", to allow a different name, change the creator in NSWstudies.h) +You will need to crate an extra directory named "Rootfiles", where the output histograms will be placed +To run simply run this file (terminal: root -l -q run_loop.C) +In the beginning of the "NSWstudies_match.C" file, the input variables of the NSW Matching algorithm can be set. +(These have the same default values as the NSWPRDTest version) + +By default the program will check RDO<->PRD for both sTGC and MM. +To test other objects, change the input of the match_Hits_Digits and fillHists in the Loop function of NSWstudies_match.C +*/ \ No newline at end of file diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.cxx new file mode 100644 index 000000000000..73694f6d0eac --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.cxx @@ -0,0 +1,121 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include <vector> +#include <string> +#include <iostream> + +#include "TTree.h" +#include "TBranch.h" +#include "TFile.h" + +#include "EDM_object.h" + +EDM_object::EDM_object () { + m_stationName = nullptr; + m_stationEta = nullptr; + m_stationPhi = nullptr; + m_multiplet = nullptr; + m_gas_gap = nullptr; + m_channel_type = nullptr; + m_channel = nullptr; + m_matchedchannel = nullptr; + m_mismatches = 0; + m_total = 0; +} + +void EDM_object::clearVars () { + if (m_matchedchannel) { + delete m_matchedchannel; + m_matchedchannel = nullptr; + } +} + +size_t EDM_object::size() { + if (!m_stationName) { return 0; } + checksize(); + return m_stationName->size(); +} + +void EDM_object::checksize() { + size_t channel_type_size; + size_t size = m_stationName->size(); + //skip channel_type check if MM, as MM does not have this parameter. + channel_type_size = (m_channel_type) ? m_channel_type->size() : size; + if (! (m_stationEta->size() == size || + m_stationPhi->size() == size || + m_multiplet->size() == size || + m_gas_gap->size() == size || + channel_type_size == size || + m_channel->size() == size) ) + { printf("NSWMatchingAlg: Sizes of data object %s_%s do not match!\n", m_name.Data(), m_detector.Data()); } +} + +void EDM_object::printInfo () { + // sTGC + if (m_channel_type) { + printf("%-15s %-15s %-15s %-15s %-15s %-15s %-15s %-15s\n", "stationname", "stationEta", "stationPhi", "multiplet", "gas_gap", "channel_type", "channel", "matchedchannel"); + for (uint i = 0; i < this->size(); ++i) + { printf("%-15s %-15d %-15d %-15d %-15d %-15d %-15d %-15d\n", m_stationName->at(i).data(), m_stationEta->at(i), m_stationPhi->at(i), m_multiplet->at(i), m_gas_gap->at(i), m_channel_type->at(i), m_channel->at(i), m_matchedchannel->at(i));} + // MM + } else { + printf("%-15s %-15s %-15s %-15s %-15s %-15s %-15s\n", "stationname", "stationEta", "stationPhi", "multiplet", "gas_gap", "channel", "matchedchannel"); + for (uint i = 0; i < this->size(); ++i) + { printf("%-15s %-15d %-15d %-15d %-15d %-15d %-15d\n", m_stationName->at(i).data(), m_stationEta->at(i), m_stationPhi->at(i), m_multiplet->at(i), m_gas_gap->at(i), m_channel->at(i), m_matchedchannel->at(i));} + } +} + +bool EDM_object::identifierMatch(EDM_object &data0, EDM_object &data1, uint i, uint j) { + bool match = true; + match &= data0.m_channel_type ? data0.m_channel_type->at(i) == data1.m_channel_type->at(j) : true; + match &= data0.m_stationName->at(i).compare(data1.m_stationName->at(j)) == 0; + match &= data0.m_stationEta->at(i) == data1.m_stationEta->at(j); + match &= data0.m_stationPhi->at(i) == data1.m_stationPhi->at(j); + match &= data0.m_multiplet->at(i) == data1.m_multiplet->at(j); + match &= data0.m_gas_gap->at(i) == data1.m_gas_gap->at(j); + return match; +} + +bool EDM_object::update_match(int index, int ch_candidate) { + // make sure the machedchannel is set to the default value (-10) + if (!m_matchedchannel) { return false; } + // If any match found, overwarite default value + if ( m_matchedchannel->at(index) == -10 ) { m_matchedchannel->at(index) = ch_candidate; } + // Default channel value in digitization = -1 + if ( ch_candidate == -1 ) { return false; } + // Check if the match is close enough + if (abs(ch_candidate - m_channel->at(index)) < abs(m_channel->at(index) - m_matchedchannel->at(index)) ) { + m_matchedchannel->at(index) = ch_candidate; + return true; + } + return false; +} + +void EDM_object::init_matching () { + if (empty()) { return; } + m_matchedchannel = new std::vector<int>(this->size()); + for ( uint i = 0; i < this->size(); ++i) { m_matchedchannel->at(i) = -10; } +} + +bool EDM_object::empty () { + if (!m_stationName) { return true; } + if (m_stationName->empty()) { return true; } + return false; +} + +void EDM_object::update_efficiency ( int maximum_difference ) { + uint nMatches = 0; + size_t n_obj = size(); + m_total += n_obj; + for (uint i = 0; i < n_obj; ++i) { + nMatches += abs( m_channel->at(i) - m_matchedchannel->at(i) ) <= maximum_difference; + } + m_mismatches += (n_obj - nMatches); +} + +void EDM_object::printEfficiency(std::ofstream& file) { + file << "\nMatching " << m_name << " to " << m_matchedwith << " for " << m_detector << std::endl; + file << "Total: " << m_total << ", number of mismatches: " << m_mismatches << std::endl; + file << "Efficiency: " << (m_total - m_mismatches) / (double)m_total * 100. << "%" << std::endl; +} diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.h new file mode 100644 index 000000000000..235e9a313b12 --- /dev/null +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/EDM_object.h @@ -0,0 +1,64 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef EDM_OBJECT_H +#define EDM_OBJECT_H + +#include "TString.h" + +#include <fstream> +#include <vector> + +class EDM_object +{ +public: + // Matching + void init_matching(); + bool update_match(int index, int ch_candidate); + bool identifierMatch(EDM_object &data0, EDM_object &data1, uint i, uint j); + + // Efficiency + void update_efficiency ( int maximum_difference ); + void printEfficiency (std::ofstream& file); + + // setters + void setName (TString name) { m_name = name; } + void setName (TString name, TString detector) { m_name = name; m_detector = detector; } + void setDetector (TString detector) { m_detector = detector; } + void setMatchedwith (TString matchedwith) { m_matchedwith = matchedwith; } + + // getters + TString getName () { return m_name; } + TString getDetector () { return m_detector; } + TString getMatchedwith () { return m_matchedwith; } + + // Helper functions + size_t size (); + void checksize (); + void printInfo(); + void clearVars(); + bool empty (); + + EDM_object (); + ~EDM_object () { clearVars(); } + + std::vector<std::string> *m_stationName; + std::vector<int> *m_stationEta; + std::vector<int> *m_stationPhi; + std::vector<int> *m_multiplet; + std::vector<int> *m_gas_gap; + std::vector<int> *m_channel_type; + std::vector<int> *m_channel; + + std::vector<int> *m_matchedchannel; + +private: + TString m_name; + TString m_matchedwith; + TString m_detector; + int m_mismatches; + int m_total; +}; + +#endif \ No newline at end of file diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.cxx index f1be5669b149..59e122326752 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.cxx @@ -1,7 +1,10 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ +#include <fstream> + +// NSWValAlg inlcudes #include "NSWPRDValAlg.h" #include "MMDigitVariables.h" @@ -21,18 +24,23 @@ #include "MuEntryVariables.h" #include "TruthVariables.h" -#include "GaudiKernel/ITHistSvc.h" -#include "TTree.h" +#include "EDM_object.h" +// Other NSW includes #include "MuonReadoutGeometry/MuonDetectorManager.h" - #include "MuonIdHelpers/MmIdHelper.h" #include "MuonIdHelpers/sTgcIdHelper.h" #include "MuonIdHelpers/CscIdHelper.h" +// ROOT includes +#include "TTree.h" + +// Misc includes +#include "GaudiKernel/ITHistSvc.h" #include "EventInfo/EventInfo.h" #include "EventInfo/EventID.h" + NSWPRDValAlg::NSWPRDValAlg(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), m_TruthVar(nullptr), @@ -45,7 +53,7 @@ NSWPRDValAlg::NSWPRDValAlg(const std::string& name, ISvcLocator* pSvcLocator) m_sTgcPrdVar(nullptr), m_MmSimHitVar(nullptr), m_MmSdoVar(nullptr), - m_MmFastSdoVar(nullptr), + m_MmFastSdoVar(nullptr), m_MmDigitVar(nullptr), m_MmRdoVar(nullptr), m_MmPrdVar(nullptr), @@ -59,6 +67,7 @@ NSWPRDValAlg::NSWPRDValAlg(const std::string& name, ISvcLocator* pSvcLocator) m_runNumber(0), m_eventNumber(0) { + // Input properties: Container names declareProperty("Truth_ContainerName", m_Truth_ContainerName="TruthEvent"); declareProperty("MuonEntryLayer_ContainerName", m_MuEntry_ContainerName="MuonEntryLayer"); declareProperty("NSWsTGC_ContainerName", m_NSWsTGC_ContainerName="sTGCSensitiveDetector"); @@ -73,6 +82,7 @@ NSWPRDValAlg::NSWPRDValAlg(const std::string& name, ISvcLocator* pSvcLocator) declareProperty("NSWMM_PRDContainerName", m_NSWMM_PRDContainerName="MM_Measurements"); declareProperty("CSC_DigitContainerName", m_CSC_DigitContainerName="CSC_DIGITS"); + // Input properties: do EDM objects declareProperty("doTruth", m_doTruth=false); declareProperty("doMuEntry", m_doMuEntry=false); declareProperty("doSTGCHit", m_doSTGCHit=false); @@ -86,6 +96,11 @@ NSWPRDValAlg::NSWPRDValAlg(const std::string& name, ISvcLocator* pSvcLocator) declareProperty("doMMRDO", m_doMMRDO=false); declareProperty("doMMPRD", m_doMMPRD=false); declareProperty("doCSCDigit", m_doCSCDigit=false); + + // Input properties: NSW Maching algorithm + declareProperty("doNSWMatchingAlg", m_doNSWMatching=true); + declareProperty("doNSWMatchingMuonOnly", m_doNSWMatchingMuon=false); + declareProperty("setMaxStripDistance", m_maxStripDiff=3); } StatusCode NSWPRDValAlg::initialize() { @@ -94,11 +109,11 @@ StatusCode NSWPRDValAlg::initialize() { ATH_CHECK( service("THistSvc", m_thistSvc) ); - m_tree = new TTree("NSWHitsTree", "Ntuple of NSWHits"); + m_tree = new TTree("NSWValTree", "Ntuple for NSW EDM Validation"); m_tree->Branch("runNumber", &m_runNumber, "runNumber/i"); m_tree->Branch("eventNumber", &m_eventNumber, "eventNumber/i"); - ATH_CHECK( m_thistSvc->regTree("/NSWPRDValAlg/NSWHitsTree", m_tree) ); + ATH_CHECK( m_thistSvc->regTree("/NSWPRDValAlg/NSWValTree", m_tree) ); ATH_CHECK( detStore()->retrieve( m_detManager ) ); @@ -210,7 +225,8 @@ StatusCode NSWPRDValAlg::initialize() { StatusCode NSWPRDValAlg::finalize() { - ATH_MSG_INFO("finalize()"); + ATH_MSG_DEBUG("NSWPRDValAlg:: Finalize + Matching"); + if (m_doNSWMatching) { ATH_CHECK ( NSWMatchingAlg() );} if (m_TruthVar) { delete m_TruthVar; m_TruthVar=0;} if (m_doMuEntry) { delete m_MuEntryVar; m_MuEntryVar=0;} @@ -233,7 +249,7 @@ StatusCode NSWPRDValAlg::finalize() StatusCode NSWPRDValAlg::execute() { - ATH_MSG_INFO("execute()"); + ATH_MSG_DEBUG("execute()"); // Event information const EventInfo* pevt(0); @@ -278,3 +294,197 @@ StatusCode NSWPRDValAlg::execute() return StatusCode::SUCCESS; } +/***************************************************************************************************************************************** +The rest of this file is the NSW matching algorithm. This can be (de)activated with the input variable doNSWMatchingAlg. +The matching algorithm will check each conversion in the Hit->PRD digitization chain. +For each conversion, the algorithm will try to match the two objects. +The input variable setMaxStripDistance (default value = 3) give the maximum strip distance two objects can have, while still be considered a match +The input variable doNSWMatchingMuonOnly can be set to true to only use events which contain exclusively muons +******************************************************************************************************************************************/ + +// First set up which object should be matched, given the input used to fill the NSW Ntuple +StatusCode NSWPRDValAlg::NSWMatchingAlg () { + + ATH_MSG_DEBUG("NSWMatchingAlg: building Data objects"); + + // Use the EDM object, as defined in EDM_object.h, to build the hits, digits, SDO, RDO and PRD for both sTGC and MM + EDM_object Hits_sTGC, Digits_sTGC, SDO_sTGC, RDO_sTGC, PRD_sTGC; + EDM_object Hits_MM, Digits_MM, SDO_MM, RDO_MM, PRD_MM; + + Hits_sTGC.setName("Hits", "sTGC"); + Digits_sTGC.setName("Digits", "sTGC"); + SDO_sTGC.setName("SDO", "sTGC"); + RDO_sTGC.setName("RDO", "sTGC"); + PRD_sTGC.setName("PRD", "sTGC"); + + Hits_MM.setName("Hits", "MM"); + Digits_MM.setName("Digits", "MM"); + SDO_MM.setName("SDO", "MM"); + RDO_MM.setName("RDO", "MM"); + PRD_MM.setName("PRD", "MM"); + + // Match the EDM objects with the variables in the NSW Validation Ntuple + TString branch_name; + TObjArray* brlst = m_tree->GetListOfBranches(); + for (TBranch *branch = (TBranch*) brlst->First(); branch; branch = (TBranch*) brlst->After(branch)) { + branch_name = branch->GetName(); + ATH_MSG_VERBOSE("About to check branch: " << branch_name); + + ATH_CHECK( setDataAdress(Hits_sTGC, branch_name) ); + ATH_CHECK( setDataAdress(Digits_sTGC, branch_name) ); + ATH_CHECK( setDataAdress(SDO_sTGC, branch_name) ); + ATH_CHECK( setDataAdress(RDO_sTGC, branch_name) ); + ATH_CHECK( setDataAdress(PRD_sTGC, branch_name) ); + + ATH_CHECK( setDataAdress(Hits_MM, branch_name) ); + ATH_CHECK( setDataAdress(Digits_MM, branch_name) ); + ATH_CHECK( setDataAdress(SDO_MM, branch_name) ); + ATH_CHECK( setDataAdress(RDO_MM, branch_name) ); + ATH_CHECK( setDataAdress(PRD_MM, branch_name) ); + } + + // Prepare the output file + std::ofstream efficiencies; + efficiencies.open("NSWMatchingAlg_efficiencies.txt"); + efficiencies << "NSW Matching algorithm, efficiencies of conversion from and to various EDM objects" << std::endl; + efficiencies << "Settings:\n" << m_doNSWMatchingMuon << std::endl; + efficiencies << " 'Maximum Strip Distance':" << m_maxStripDiff << std::endl; + efficiencies.close(); + + // sTGC matching + if (m_doSTGCHit && m_doSTGCDigit) { + ATH_CHECK( NSWMatchingAlg(Hits_sTGC, Digits_sTGC) ); + ATH_CHECK( NSWMatchingAlg(Hits_sTGC, SDO_sTGC) ); + } + if (m_doSTGCDigit && m_doSTGCRDO) { + ATH_CHECK( NSWMatchingAlg(Digits_sTGC, RDO_sTGC) ); + ATH_CHECK( NSWMatchingAlg(SDO_sTGC, RDO_sTGC) ); + } + if (m_doSTGCRDO && m_doSTGCPRD) { ATH_CHECK( NSWMatchingAlg(RDO_sTGC, PRD_sTGC) ); } + + // sTGC fast digitization + if (m_doSTGCHit && m_doSTGCFastDigit) { + ATH_CHECK( NSWMatchingAlg(Hits_sTGC, PRD_sTGC) ); + ATH_CHECK( NSWMatchingAlg(Hits_sTGC, SDO_sTGC) ); + ATH_CHECK( NSWMatchingAlg(SDO_sTGC, PRD_sTGC) ); + } + + // MM matching + if (m_doMMHit && m_doMMDigit) { + ATH_CHECK( NSWMatchingAlg(Hits_MM, Digits_MM) ); + ATH_CHECK( NSWMatchingAlg(Hits_MM, SDO_MM) ); + } + if (m_doMMDigit && m_doMMRDO) { + ATH_CHECK( NSWMatchingAlg(Digits_MM, RDO_MM) ); + ATH_CHECK( NSWMatchingAlg(SDO_MM, RDO_MM) ); + } + if (m_doMMRDO && m_doMMPRD) { ATH_CHECK( NSWMatchingAlg(RDO_MM, PRD_MM) ); } + + // MM fast digitization + if (m_doMMHit && m_doMMFastDigit) { + ATH_CHECK( NSWMatchingAlg(Hits_MM, PRD_MM) ); + ATH_CHECK( NSWMatchingAlg(Hits_MM, SDO_MM) ); + ATH_CHECK( NSWMatchingAlg(SDO_MM, PRD_MM) ); + } + + return StatusCode::SUCCESS; +} + +// This part of the matching algortihm does the actual comparison given two EDM obects +StatusCode NSWPRDValAlg::NSWMatchingAlg (EDM_object data0, EDM_object data1) { + if (data0.getDetector() != data1.getDetector()) { ATH_MSG_ERROR ("Matching " << data0.getDetector() << " data with " << data1.getDetector() << " data. This is not implemented in this algorithm"); } + + ATH_MSG_INFO("NSWMatchingAlg: Start matching " << data0.getName() << " and " << data1.getName() << " for " << data0.getDetector()); + data0.setMatchedwith(data1.getName()); + data1.setMatchedwith(data0.getName()); + + // Prepare Muon only check + std::vector<int>* TruthParticle_Pdg; + if ( m_doNSWMatchingMuon ) { m_tree->SetBranchAddress("TruthParticle_Pdg", &TruthParticle_Pdg); } + + Long64_t nEntries = m_tree->GetEntriesFast(); + for (Long64_t i_entry = 0; i_entry < nEntries; ++i_entry) { + // event numbering starts at 1 + ATH_MSG_DEBUG("Now checking event number " << i_entry + 1); + m_tree->GetEntry(i_entry); + + if (data0.empty()) { ATH_MSG_WARNING("No " << data0.getDetector() << data0.getName() << " found in event " << i_entry + 1); continue; } + if (data1.empty()) { ATH_MSG_WARNING("No " << data1.getDetector() << data1.getName() << " found in event " << i_entry + 1); continue; } + + ATH_MSG_DEBUG("Number of " << data0.getDetector() << data0.getName() << ": " << data0.size() << + ", number of " << data1.getDetector() << data1.getName() << ": " << data1.size()); + + //only muon events: + if (m_doNSWMatchingMuon) { + bool allMu = true; + int mu_pdg = 13; + for ( int pdg : *TruthParticle_Pdg ) { allMu &= (abs(pdg) == mu_pdg); } + if ( !allMu ) { ATH_MSG_VERBOSE("Skipping event, because doNSWMatchingMuonOnly is true and there non muon particles"); continue; } + } + + // Reset variables to have a clean sheet + data0.init_matching(); + data1.init_matching(); + + // Actual Matching + for (uint i = 0; i < data0.size(); ++i) + { + int nMatch = 0; + for (uint j = 0; j < data1.size(); ++j) + { + if ( data0.identifierMatch(data0, data1, i, j) ) + { + nMatch++; + data0.update_match(i, data1.m_channel->at(j)); + data1.update_match(j, data0.m_channel->at(i)); + } + } + ATH_MSG_VERBOSE("Total Number of matches found: " << nMatch << " " << data1.getName() << " for a single " << data0.getName() ); + if (nMatch == 0) { + ATH_MSG_WARNING("No match found!"); + } + } + if (msgLevel() <= MSG::DEBUG) { + ATH_MSG_DEBUG("Full info for " << data0.getName() << data0.getDetector()); + data0.printInfo(); + ATH_MSG_DEBUG("Full info for " << data1.getName() << data1.getDetector()); + data1.printInfo(); + } + + data0.update_efficiency(m_maxStripDiff); + data1.update_efficiency(m_maxStripDiff); + + // The data0 vs data1 matching will now be overwritten + data0.clearVars(); + data1.clearVars(); + } + + // Write result to file + std::ofstream efficiencies; + efficiencies.open("NSWMatchingAlg_efficiencies.txt", std::ofstream::app); + data0.printEfficiency(efficiencies); + data1.printEfficiency(efficiencies); + efficiencies.close(); + + return StatusCode::SUCCESS; + +} + +// This function couples the branch of the NSW validation Ntuple with the EDM object. +// In case the brach does not exist, or is completely empty, the object will remain empty and the code will skip the matching entirly, giving a ATH_WARNING in the process +StatusCode NSWPRDValAlg::setDataAdress (EDM_object &oData, TString branch_name) { + bool setBranch = false; + if (!(branch_name.Contains(oData.getName()) && branch_name.Contains(oData.getDetector()))) { return StatusCode::SUCCESS; } + // For sim hits select the offline identifiers, rather than the sim identifiers + if (branch_name.Contains("_sim_")) { return StatusCode::SUCCESS; } + if (branch_name.EndsWith("stationName")) { m_tree->SetBranchAddress(branch_name, &oData.m_stationName); setBranch = true; } + if (branch_name.EndsWith("stationEta")) { m_tree->SetBranchAddress(branch_name, &oData.m_stationEta); setBranch = true; } + if (branch_name.EndsWith("stationPhi")) { m_tree->SetBranchAddress(branch_name, &oData.m_stationPhi); setBranch = true; } + if (branch_name.EndsWith("multiplet")) { m_tree->SetBranchAddress(branch_name, &oData.m_multiplet); setBranch = true; } + if (branch_name.EndsWith("gas_gap")) { m_tree->SetBranchAddress(branch_name, &oData.m_gas_gap); setBranch = true; } + if (branch_name.EndsWith("channel")) { m_tree->SetBranchAddress(branch_name, &oData.m_channel); setBranch = true; } + if (branch_name.EndsWith("channel_type")) { m_tree->SetBranchAddress(branch_name, &oData.m_channel_type); setBranch = true; } + if (setBranch) { ATH_MSG_DEBUG("Set data adress of branch " << branch_name); } + + return StatusCode::SUCCESS; +} diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.h index 8dd43410e090..90d3026b0b5d 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.h +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/NSWPRDValAlg.h @@ -1,11 +1,12 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef NSWPRDVALALG_H #define NSWPRDVALALG_H #include "AthenaBaseComps/AthAlgorithm.h" +#include "EDM_object.h" #include <vector> @@ -45,6 +46,11 @@ class NSWPRDValAlg:public AthAlgorithm StatusCode finalize(); StatusCode execute(); + // Matching algorithm + StatusCode NSWMatchingAlg(); // First set up which object should be matched, given the input used to fill the NSW Ntuple + StatusCode NSWMatchingAlg (EDM_object data0, EDM_object data1); // This part of the matching algortihm does the actual comparison given two EDM obects + StatusCode setDataAdress (EDM_object &oData, TString branch_name); // This function couples the branch of the NSW validation Ntuple with the EDM object. + private: TruthVariables* m_TruthVar; MuEntryVariables* m_MuEntryVar; @@ -100,6 +106,11 @@ class NSWPRDValAlg:public AthAlgorithm std::string m_NSWMM_RDOContainerName; std::string m_NSWMM_PRDContainerName; std::string m_CSC_DigitContainerName; + + // Matching algorithm + BooleanProperty m_doNSWMatching; + BooleanProperty m_doNSWMatchingMuon; + uint m_maxStripDiff; }; #endif // NSWPRDVALALG_H -- GitLab From 675ad5139e4b1112dee3e2775163e192b144d958 Mon Sep 17 00:00:00 2001 From: scott snyder <scott.snyder@cern.ch> Date: Fri, 25 Jan 2019 18:42:55 +0100 Subject: [PATCH 130/192] StoreGate: Fix compilation warnings. Compilation warnings: Don't use std::move in return. --- Control/StoreGate/StoreGate/HandleKeyArray.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control/StoreGate/StoreGate/HandleKeyArray.h b/Control/StoreGate/StoreGate/HandleKeyArray.h index 2d8256f66ea6..79483f6f0598 100644 --- a/Control/StoreGate/StoreGate/HandleKeyArray.h +++ b/Control/StoreGate/StoreGate/HandleKeyArray.h @@ -102,7 +102,7 @@ namespace SG { for (itr = this->begin(); itr != this->end(); ++itr) { hndl.push_back ( T_Handle( *itr) ); } - return ( std::move( hndl ) ); + return hndl; } /** @@ -116,7 +116,7 @@ namespace SG { for (itr = this->begin(); itr != this->end(); ++itr) { hndl.push_back ( T_Handle( *itr, ctx) ); } - return ( std::move( hndl ) ); + return hndl; } }; -- GitLab From be39142ddcae85bd0720fe73dd83965b77c3b476 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 25 Jan 2019 18:48:18 +0100 Subject: [PATCH 131/192] TileMonitoring: Migrate to VarHandles. Use ReadHandleKey to get dependencies propagated. Needed for q431 --thread=1. --- .../TileMonitoring/TileMBTSMonTool.h | 12 +++++++----- .../TileMonitoring/src/TileMBTSMonTool.cxx | 18 ++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/TileCalorimeter/TileMonitoring/TileMonitoring/TileMBTSMonTool.h b/TileCalorimeter/TileMonitoring/TileMonitoring/TileMBTSMonTool.h index a8a0156470a5..8759aee7812f 100644 --- a/TileCalorimeter/TileMonitoring/TileMonitoring/TileMBTSMonTool.h +++ b/TileCalorimeter/TileMonitoring/TileMonitoring/TileMBTSMonTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** @@ -16,6 +16,8 @@ #include "TileMonitoring/TileFatherMonTool.h" #include "TileEvent/TileDQstatus.h" +#include "TileEvent/TileContainer.h" +#include "TileEvent/TileDigitsContainer.h" #include "StoreGate/ReadHandleKey.h" class CTP_RDO; @@ -113,10 +115,10 @@ class TileMBTSMonTool: public TileFatherMonTool { ServiceHandle<TrigConf::ILVL1ConfigSvc> m_lvl1ConfigSvc; // container names - std::string m_TileDigitsContainerID; - std::string m_MBTSCellContainerID; - std::string m_TileDSPRawChannelContainerID; - std::string m_TileBeamElemContainerID; + SG::ReadHandleKey<TileDigitsContainer> m_TileDigitsContainerID + { this, "TileDigitsContainerName", "TileDigitsCnt", "" }; + SG::ReadHandleKey<TileCellContainer> m_MBTSCellContainerID + { this, "MBTSContainerName", "MBTSContainer", "" }; int m_numEvents; // event counter bool m_isOnline; diff --git a/TileCalorimeter/TileMonitoring/src/TileMBTSMonTool.cxx b/TileCalorimeter/TileMonitoring/src/TileMBTSMonTool.cxx index 5834051e2073..a5a4917ddc78 100644 --- a/TileCalorimeter/TileMonitoring/src/TileMBTSMonTool.cxx +++ b/TileCalorimeter/TileMonitoring/src/TileMBTSMonTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // ********************************************************************// @@ -94,10 +94,6 @@ TileMBTSMonTool::TileMBTSMonTool( const std::string & type, const std::string & { declareInterface<IMonitorToolBase>(this); declareProperty("LVL1ConfigSvc", m_lvl1ConfigSvc, "LVL1 Config Service"); - declareProperty("MBTSContainerName", m_MBTSCellContainerID = "MBTSContainer"); - declareProperty("TileDigitsContainerName", m_TileDigitsContainerID = "TileDigitsCnt"); - declareProperty("TileDSPRawChannelContainerName", m_TileDSPRawChannelContainerID = "TileRawChannelCnt"); - declareProperty("TileBeamElemContainerName", m_TileBeamElemContainerID = "TileBeamElemCnt"); declareProperty("readTrigger", m_readTrigger = true); // Switch for CTP config declareProperty("doOnline", m_isOnline = false); // Switch for online running declareProperty("UseTrigger", m_useTrigger = true); // Switch for using trigger information @@ -164,6 +160,8 @@ StatusCode TileMBTSMonTool:: initialize(){ } } + CHECK( m_TileDigitsContainerID.initialize() ); + CHECK( m_MBTSCellContainerID.initialize() ); CHECK( m_DQstatusKey.initialize() ); return StatusCode::SUCCESS; @@ -525,6 +523,7 @@ StatusCode TileMBTSMonTool::bookHistograms() { StatusCode TileMBTSMonTool::fillHistograms() { ATH_MSG_DEBUG( "in fillHistograms()" ); + const EventContext& ctx = Gaudi::Hive::currentContext(); memset(m_hasEnergyHit, false, sizeof(m_hasEnergyHit)); memset(m_hasPIT, false, sizeof(m_hasPIT)); @@ -724,8 +723,8 @@ StatusCode TileMBTSMonTool::fillHistograms() { // CELL LEVEL INFORMATION //============================================================================== //Retrieve MBTS container collection from SG - const TileCellContainer* theMBTScontainer; - CHECK(evtStore()->retrieve(theMBTScontainer, m_MBTSCellContainerID)); + SG::ReadHandle<TileCellContainer> theMBTScontainer + (m_MBTSCellContainerID, ctx); ATH_MSG_VERBOSE( "Retrieval of MBTS container " << m_MBTSCellContainerID << " succeeded" ); double energy[32], time[32]; @@ -860,9 +859,8 @@ StatusCode TileMBTSMonTool::fillHistograms() { //======================================================================= //Retrieve TileDigits container collection from SG - const TileDigitsContainer* theDigitsContainer; - CHECK(evtStore()->retrieve(theDigitsContainer, m_TileDigitsContainerID)); - ATH_MSG_VERBOSE("Retrieval of Tile Digits container " << m_TileDigitsContainerID << " succeeded"); + SG::ReadHandle<TileDigitsContainer> theDigitsContainer + (m_TileDigitsContainerID, ctx); // Create instance of TileDQstatus used to check for readout errors in Tile const TileDQstatus * theDQstatus = SG::makeHandle (m_DQstatusKey).get(); -- GitLab From 305f059bfbe29977b3aa06f15e5c436d311528cf Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 23 Jan 2019 16:47:12 +0100 Subject: [PATCH 132/192] TileRec: Convert TileAANtuple to use handles. Removing more direct access to SG. --- .../TileRec/TileRec/TileAANtuple.h | 53 ++-- TileCalorimeter/TileRec/src/TileAANtuple.cxx | 297 +++++++++--------- 2 files changed, 182 insertions(+), 168 deletions(-) diff --git a/TileCalorimeter/TileRec/TileRec/TileAANtuple.h b/TileCalorimeter/TileRec/TileRec/TileAANtuple.h index f7137b19065b..2ff03321e47b 100755 --- a/TileCalorimeter/TileRec/TileRec/TileAANtuple.h +++ b/TileCalorimeter/TileRec/TileRec/TileAANtuple.h @@ -46,6 +46,8 @@ #include "TileConditions/TileCablingService.h" #include "TileIdentifier/TileRawChannelUnit.h" #include "TileEvent/TileLaserObject.h" +#include "TileEvent/TileMuonReceiverContainer.h" +#include "TileEvent/TileRawChannelContainer.h" #include "TileEvent/TileDQstatus.h" #include "TileEvent/TileBeamElemContainer.h" #include "TileConditions/ITileDCSTool.h" @@ -97,7 +99,8 @@ class TileAANtuple : public AthAlgorithm { virtual ~TileAANtuple(); //Gaudi Hooks - StatusCode ntuple_initialize(const TileDQstatus& DQstatus); + StatusCode ntuple_initialize(const EventContext& ctx, + const TileDQstatus& DQstatus); StatusCode ntuple_clear(); StatusCode initialize(); StatusCode execute(); @@ -105,34 +108,37 @@ class TileAANtuple : public AthAlgorithm { private: - StatusCode storeRawChannels(std::string cntID + StatusCode storeRawChannels(const EventContext& ctx + , const SG::ReadHandleKey<TileRawChannelContainer>& containerKey , float ene[N_ROS2][N_MODULES][N_CHANS] , float time[N_ROS2][N_MODULES][N_CHANS] , float chi2[N_ROS2][N_MODULES][N_CHANS] , float ped[N_ROS2][N_MODULES][N_CHANS] , bool fillAll); - StatusCode storeMFRawChannels(std::string cntID + StatusCode storeMFRawChannels(const EventContext& ctx + , const SG::ReadHandleKey<TileRawChannelContainer>& containerKey , float ene[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , float time[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , float chi2[N_ROS2][N_MODULES][N_CHANS] , float ped[N_ROS2][N_MODULES][N_CHANS] , bool fillAll); - StatusCode storeDigits(std::string cntID + StatusCode storeDigits(const EventContext& ctx + , const SG::ReadHandleKey<TileDigitsContainer>& containerKey , short sample[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , short gain[N_ROS2][N_MODULES][N_CHANS] , bool fillAll); - StatusCode storeTMDBDecision(); - StatusCode storeTMDBDigits(); - StatusCode storeTMDBRawChannel(); + StatusCode storeTMDBDecision(const EventContext& ctx); + StatusCode storeTMDBDigits(const EventContext& ctx); + StatusCode storeTMDBRawChannel(const EventContext& ctxx); StatusCode storeBeamElements(const TileDQstatus& DQstatus); - StatusCode storeLaser(); + StatusCode storeLaser(const EventContext& ctx); StatusCode storeDCS(); - StatusCode initNTuple(void); + StatusCode initNTuple(const EventContext& ctx); void fillCellMap(TTree* ntuplePtr); @@ -326,21 +332,22 @@ class TileAANtuple : public AthAlgorithm { int m_nBadTotal; // jobOptions parameters - container names - std::string m_digitsContainer; - std::string m_fltDigitsContainer; + SG::ReadHandleKey<TileDigitsContainer> m_digitsContainerKey; + SG::ReadHandleKey<TileDigitsContainer> m_fltDigitsContainerKey; SG::ReadHandleKey<TileBeamElemContainer> m_beamElemContainerKey; - std::string m_rawChannelContainer; - std::string m_fitRawChannelContainer; - std::string m_fitcRawChannelContainer; - std::string m_optRawChannelContainer; - std::string m_qieRawChannelContainer; - std::string m_dspRawChannelContainer; - std::string m_mfRawChannelContainer; - std::string m_of1RawChannelContainer; - std::string m_laserObject; - std::string m_tileMuRcvRawChannelContainer; // TMDB - std::string m_tileMuRcvDigitsContainer; // TMDB - std::string m_tileMuRcvContainer; // TMDB + SG::ReadHandleKey<TileRawChannelContainer> m_rawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_fitRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_fitcRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_optRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_qieRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_dspRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_mfRawChannelContainerKey; + SG::ReadHandleKey<TileRawChannelContainer> m_of1RawChannelContainerKey; + SG::ReadHandleKey<TileLaserObject> m_laserObjectKey; + SG::ReadHandleKey<TileRawChannelContainer> m_tileMuRcvRawChannelContainerKey; // TMDB + SG::ReadHandleKey<TileDigitsContainer> m_tileMuRcvDigitsContainerKey; // TMDB + SG::ReadHandleKey<TileMuonReceiverContainer> m_tileMuRcvContainerKey; // TMDB + SG::ReadHandleKey<TileL2Container> m_l2CntKey; // other jobOptions parameters bool m_calibrateEnergy; //!< convert energy to new units or use amplitude from RawChannel directly diff --git a/TileCalorimeter/TileRec/src/TileAANtuple.cxx b/TileCalorimeter/TileRec/src/TileAANtuple.cxx index 01043fa1d94f..0791bef63927 100755 --- a/TileCalorimeter/TileRec/src/TileAANtuple.cxx +++ b/TileCalorimeter/TileRec/src/TileAANtuple.cxx @@ -203,21 +203,22 @@ TileAANtuple::TileAANtuple(std::string name, ISvcLocator* pSvcLocator) , m_bad() { declareProperty("TileCondToolEmscale", m_tileToolEmscale); - declareProperty("TileDigitsContainer", m_digitsContainer = "TileDigitsCnt"); - declareProperty("TileDigitsContainerFlt", m_fltDigitsContainer = "" /* "TileDigitsFlt" */); + declareProperty("TileDigitsContainer", m_digitsContainerKey = "TileDigitsCnt"); + declareProperty("TileDigitsContainerFlt", m_fltDigitsContainerKey = "" /* "TileDigitsFlt" */); declareProperty("TileBeamElemContainer", m_beamElemContainerKey = "TileBeamElemCnt"); - declareProperty("TileRawChannelContainer", m_rawChannelContainer = "TileRawChannelCnt"); - declareProperty("TileRawChannelContainerFit", m_fitRawChannelContainer = ""); // - declareProperty("TileRawChannelContainerFitCool", m_fitcRawChannelContainer = ""); // don't create - declareProperty("TileRawChannelContainerOpt", m_optRawChannelContainer = ""); // by default - declareProperty("TileRawChannelContainerQIE", m_qieRawChannelContainer = ""); // processed QIE data - declareProperty("TileRawChannelContainerOF1", m_of1RawChannelContainer = ""); // - declareProperty("TileRawChannelContainerDsp", m_dspRawChannelContainer = ""); // - declareProperty("TileRawChannelContainerMF", m_mfRawChannelContainer = ""); // - declareProperty("TileMuRcvRawChannelContainer", m_tileMuRcvRawChannelContainer = "MuRcvRawChCnt");// TMDB - declareProperty("TileMuRcvDigitsContainer", m_tileMuRcvDigitsContainer = "MuRcvDigitsCnt");// TMDB - declareProperty("TileMuRcvContainer", m_tileMuRcvContainer = "TileMuRcvCnt");// TMDB - declareProperty("TileLaserObject", m_laserObject = "" /* "TileLaserObj" */); // + declareProperty("TileRawChannelContainer", m_rawChannelContainerKey = "TileRawChannelCnt"); + declareProperty("TileRawChannelContainerFit", m_fitRawChannelContainerKey = ""); // + declareProperty("TileRawChannelContainerFitCool", m_fitcRawChannelContainerKey = ""); // don't create + declareProperty("TileRawChannelContainerOpt", m_optRawChannelContainerKey = ""); // by default + declareProperty("TileRawChannelContainerQIE", m_qieRawChannelContainerKey = ""); // processed QIE data + declareProperty("TileRawChannelContainerOF1", m_of1RawChannelContainerKey = ""); // + declareProperty("TileRawChannelContainerDsp", m_dspRawChannelContainerKey = ""); // + declareProperty("TileRawChannelContainerMF", m_mfRawChannelContainerKey = ""); // + declareProperty("TileMuRcvRawChannelContainer", m_tileMuRcvRawChannelContainerKey = "MuRcvRawChCnt");// TMDB + declareProperty("TileMuRcvDigitsContainer", m_tileMuRcvDigitsContainerKey = "MuRcvDigitsCnt");// TMDB + declareProperty("TileMuRcvContainer", m_tileMuRcvContainerKey = "TileMuRcvCnt");// TMDB + declareProperty("TileLaserObject", m_laserObjectKey = "" /* "TileLaserObj" */); // + declareProperty("TileL2Cnt", m_l2CntKey = "TileL2Cnt"); declareProperty("CalibrateEnergy", m_calibrateEnergy = true); declareProperty("UseDspUnits", m_useDspUnits = false); declareProperty("OfflineUnits", m_finalUnit = TileRawChannelUnit::MegaElectronVolts); @@ -305,15 +306,35 @@ StatusCode TileAANtuple::initialize() { ATH_CHECK( m_DQstatusKey.initialize() ); + if (m_dspRawChannelContainerKey.empty() && m_bsInput) { + m_dspRawChannelContainerKey = "TileRawChannelCnt"; // try DSP container name to read DQ status + } + ATH_CHECK( m_beamElemContainerKey.initialize(m_bsInput) ); + ATH_CHECK( m_digitsContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_fltDigitsContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_laserObjectKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_tileMuRcvContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_tileMuRcvDigitsContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_tileMuRcvRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_mfRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_rawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_fitRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_fitcRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_optRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_qieRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_dspRawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_of1RawChannelContainerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_l2CntKey.initialize(m_compareMode) ); ATH_MSG_INFO( "initialization completed" ) ; return StatusCode::SUCCESS; } -StatusCode TileAANtuple::ntuple_initialize(const TileDQstatus& DQstatus) { - +StatusCode TileAANtuple::ntuple_initialize(const EventContext& ctx, + const TileDQstatus& DQstatus) +{ if (m_bsInput) { ServiceHandle<IConversionSvc> cnvSvc("ByteStreamCnvSvc", ""); if (cnvSvc.retrieve().isFailure()) { @@ -367,7 +388,7 @@ StatusCode TileAANtuple::ntuple_initialize(const TileDQstatus& DQstatus) { ATH_CHECK( m_thistSvc.retrieve() ); - if(initNTuple().isFailure()) { + if(initNTuple(ctx).isFailure()) { ATH_MSG_ERROR( " Error during ntuple initialization" ); } @@ -381,7 +402,7 @@ StatusCode TileAANtuple::execute() { const TileDQstatus* DQstatus = SG::makeHandle (m_DQstatusKey, ctx).get(); if (m_evtNr < 0) { - if (ntuple_initialize(*DQstatus).isFailure()) { + if (ntuple_initialize(ctx, *DQstatus).isFailure()) { ATH_MSG_ERROR( "ntuple_initialize failed" ); } } @@ -402,30 +423,30 @@ StatusCode TileAANtuple::execute() { } //store Laser Object - if (m_laserObject.size() > 0) { - empty &= storeLaser().isFailure(); + if (!m_laserObjectKey.empty()) { + empty &= storeLaser(ctx).isFailure(); } // store TileDigits - empty &= storeDigits(m_fltDigitsContainer,m_sampleFlt,m_gainFlt,false).isFailure(); - empty &= storeDigits(m_digitsContainer, m_sample, m_gain, true ).isFailure(); + empty &= storeDigits(ctx, m_fltDigitsContainerKey,m_sampleFlt,m_gainFlt,false).isFailure(); + empty &= storeDigits(ctx, m_digitsContainerKey, m_sample, m_gain, true ).isFailure(); // store TileRawChannels // start from DSP channels - so we can find out what is the DSP units - empty &= storeRawChannels(m_dspRawChannelContainer, m_eDsp, m_tDsp, m_chi2Dsp, m_pedDsp, true ).isFailure(); - empty &= storeRawChannels(m_rawChannelContainer, m_ene, m_time, m_chi2, m_ped, false).isFailure(); - empty &= storeMFRawChannels(m_mfRawChannelContainer, m_eMF, m_tMF, m_chi2MF, m_pedMF, false).isFailure(); - empty &= storeRawChannels(m_fitRawChannelContainer, m_eFit, m_tFit, m_chi2Fit, m_pedFit, false).isFailure(); - empty &= storeRawChannels(m_fitcRawChannelContainer, m_eFitc, m_tFitc, m_chi2Fitc,m_pedFitc,false).isFailure(); - empty &= storeRawChannels(m_optRawChannelContainer, m_eOpt, m_tOpt, m_chi2Opt, m_pedOpt, false).isFailure(); - empty &= storeRawChannels(m_qieRawChannelContainer, m_eQIE, m_tQIE, m_chi2QIE, m_pedQIE, false).isFailure(); - empty &= storeRawChannels(m_of1RawChannelContainer, m_eOF1, m_tOF1, m_chi2OF1, m_pedOF1, false).isFailure(); + empty &= storeRawChannels(ctx, m_dspRawChannelContainerKey, m_eDsp, m_tDsp, m_chi2Dsp, m_pedDsp, true ).isFailure(); + empty &= storeRawChannels(ctx, m_rawChannelContainerKey, m_ene, m_time, m_chi2, m_ped, false).isFailure(); + empty &= storeMFRawChannels(ctx, m_mfRawChannelContainerKey, m_eMF, m_tMF, m_chi2MF, m_pedMF, false).isFailure(); + empty &= storeRawChannels(ctx, m_fitRawChannelContainerKey, m_eFit, m_tFit, m_chi2Fit, m_pedFit, false).isFailure(); + empty &= storeRawChannels(ctx, m_fitcRawChannelContainerKey, m_eFitc, m_tFitc, m_chi2Fitc,m_pedFitc,false).isFailure(); + empty &= storeRawChannels(ctx, m_optRawChannelContainerKey, m_eOpt, m_tOpt, m_chi2Opt, m_pedOpt, false).isFailure(); + empty &= storeRawChannels(ctx, m_qieRawChannelContainerKey, m_eQIE, m_tQIE, m_chi2QIE, m_pedQIE, false).isFailure(); + empty &= storeRawChannels(ctx, m_of1RawChannelContainerKey, m_eOF1, m_tOF1, m_chi2OF1, m_pedOF1, false).isFailure(); // store TMDB data // - empty &= storeTMDBDecision().isFailure(); - empty &= storeTMDBDigits().isFailure(); - empty &= storeTMDBRawChannel().isFailure(); + empty &= storeTMDBDecision(ctx).isFailure(); + empty &= storeTMDBDigits(ctx).isFailure(); + empty &= storeTMDBRawChannel(ctx).isFailure(); if (m_beamCnv) { SG::makeHandle (m_beamElemContainerKey, ctx).get(); @@ -442,23 +463,17 @@ StatusCode TileAANtuple::execute() { } m_lumiBlock = -1; // placeholder - // new way to set run/event/lumi block - // Retrieve eventInfo from StoreGate - const xAOD::EventInfo* eventInfo(0); - if (evtStore()->retrieve(eventInfo).isSuccess()){ + //Get run and event numbers + m_run = ctx.eventID().run_number(); + m_evt = ctx.eventID().event_number(); - //Get run and event numbers - m_run = eventInfo->runNumber(); - m_evt = eventInfo->eventNumber(); - - if ( eventInfo->lumiBlock() ){ - m_lumiBlock = eventInfo->lumiBlock(); - } + if ( ctx.eventID().lumi_block() ){ + m_lumiBlock = ctx.eventID().lumi_block(); + } - //Get timestamp of the event - if (eventInfo->timeStamp() > 0) { - m_evTime = eventInfo->timeStamp(); - } + //Get timestamp of the event + if (ctx.eventID().time_stamp() > 0) { + m_evTime = ctx.eventID().time_stamp(); } if (m_evTime>0) { @@ -530,12 +545,11 @@ StatusCode TileAANtuple::execute() { // // Here the LASER object is opened and corresponding variable are stored // -StatusCode TileAANtuple::storeLaser() { +StatusCode TileAANtuple::storeLaser (const EventContext& ctx) { ATH_MSG_DEBUG("TileAANtuple::storeLaser()"); - const TileLaserObject* laserObj; - ATH_CHECK( evtStore()->retrieve(laserObj, m_laserObject) ); + const TileLaserObject* laserObj = SG::makeHandle(m_laserObjectKey, ctx).get(); m_las_BCID = laserObj->getBCID(); @@ -693,25 +707,22 @@ StatusCode TileAANtuple::storeBeamElements(const TileDQstatus& DQstatus) { /// Fill ntuple with data from TRC. */ StatusCode -TileAANtuple::storeRawChannels(std::string containerId +TileAANtuple::storeRawChannels(const EventContext& ctx + , const SG::ReadHandleKey<TileRawChannelContainer>& containerKey , float ene[N_ROS2][N_MODULES][N_CHANS] , float time[N_ROS2][N_MODULES][N_CHANS] , float chi2[N_ROS2][N_MODULES][N_CHANS] , float ped[N_ROS2][N_MODULES][N_CHANS] , bool fillAll) { - if (containerId.size() == 0) {// empty name, nothing to do - if (fillAll && m_bsInput) { - containerId = "TileRawChannelCnt"; // try DSP container name to read DQ status - } else { - return StatusCode::FAILURE; - } + if (containerKey.empty()) {// empty name, nothing to do + return StatusCode::FAILURE; } // get named container - const TileRawChannelContainer* rcCnt; - ATH_CHECK( evtStore()->retrieve(rcCnt, containerId) ); - ATH_MSG_VERBOSE( "Conteiner ID " << containerId ); + const TileRawChannelContainer* rcCnt = + SG::makeHandle (containerKey, ctx).get(); + ATH_MSG_VERBOSE( "Container ID " << containerKey.key() ); TileRawChannelUnit::UNIT rChUnit = rcCnt->get_unit(); ATH_MSG_VERBOSE( "RawChannel unit is " << rChUnit ); @@ -761,7 +772,7 @@ TileAANtuple::storeRawChannels(std::string containerId int rosL = rosI; int rosH = rosI + N_ROS; - ATH_MSG_VERBOSE( "TRC ("<< containerId + ATH_MSG_VERBOSE( "TRC ("<< containerKey.key() <<") Event# "<< m_evtNr << " Frag id 0x" << MSG::hex << fragId << MSG::dec << " ROS " << ROS @@ -878,8 +889,7 @@ TileAANtuple::storeRawChannels(std::string containerId if (m_compareMode && dspCont) { - const TileL2Container* l2Cnt; - ATH_CHECK( evtStore()->retrieve(l2Cnt, "TileL2Cnt") ); + const TileL2Container* l2Cnt = SG::makeHandle(m_l2CntKey, ctx).get(); TileL2Container::const_iterator it = l2Cnt->begin(); TileL2Container::const_iterator end= l2Cnt->end(); @@ -895,24 +905,21 @@ TileAANtuple::storeRawChannels(std::string containerId } StatusCode -TileAANtuple::storeMFRawChannels(std::string containerId +TileAANtuple::storeMFRawChannels(const EventContext& ctx + , const SG::ReadHandleKey<TileRawChannelContainer>& containerKey , float ene[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , float time[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , float chi2[N_ROS2][N_MODULES][N_CHANS] , float ped[N_ROS2][N_MODULES][N_CHANS] , bool fillAll) { - if (containerId.size() == 0) {// empty name, nothing to do - if (fillAll && m_bsInput) { - containerId = "TileRawChannelCnt"; // try DSP container name to read DQ status - } else { - return StatusCode::FAILURE; - } + if (containerKey.empty()) {// empty name, nothing to do + return StatusCode::FAILURE; } // get named container - const TileRawChannelContainer* rcCnt; - ATH_CHECK( evtStore()->retrieve(rcCnt, containerId) ); + const TileRawChannelContainer* rcCnt = \ + SG::makeHandle (containerKey, ctx).get(); TileRawChannelUnit::UNIT rChUnit = rcCnt->get_unit(); ATH_MSG_VERBOSE( "RawChannel unit is " << rChUnit ); @@ -962,7 +969,7 @@ TileAANtuple::storeMFRawChannels(std::string containerId int rosL = rosI; int rosH = rosI + N_ROS; - ATH_MSG_VERBOSE( "TRC ("<< containerId + ATH_MSG_VERBOSE( "TRC ("<< containerKey.key() <<") Event# "<< m_evtNr << " Frag id 0x" << MSG::hex << fragId << MSG::dec << " ROS " << ROS @@ -1082,8 +1089,7 @@ TileAANtuple::storeMFRawChannels(std::string containerId if (m_compareMode && dspCont) { - const TileL2Container* l2Cnt; - ATH_CHECK( evtStore()->retrieve(l2Cnt, "TileL2Cnt") ); + const TileL2Container* l2Cnt = SG::makeHandle(m_l2CntKey, ctx).get(); TileL2Container::const_iterator it = l2Cnt->begin(); TileL2Container::const_iterator end= l2Cnt->end(); @@ -1104,17 +1110,18 @@ TileAANtuple::storeMFRawChannels(std::string containerId /// Return true if the collection is empty */ StatusCode -TileAANtuple::storeDigits(std::string containerId +TileAANtuple::storeDigits(const EventContext& ctx + , const SG::ReadHandleKey<TileDigitsContainer>& containerKey , short a_sample[N_ROS2][N_MODULES][N_CHANS][N_SAMPLES] , short a_gain[N_ROS2][N_MODULES][N_CHANS] , bool fillAll) { - if (containerId.size() == 0) // empty name, nothing to do + if (containerKey.empty()) // empty name, nothing to do return StatusCode::FAILURE; // Read Digits from TES - const TileDigitsContainer* digitsCnt; - ATH_CHECK( evtStore()->retrieve(digitsCnt, containerId) ); + const TileDigitsContainer* digitsCnt = + SG::makeHandle (containerKey, ctx).get(); bool emptyColl = true; @@ -1282,18 +1289,18 @@ TileAANtuple::storeDigits(std::string containerId else return StatusCode::SUCCESS; } -StatusCode TileAANtuple::storeTMDBDecision() { +StatusCode TileAANtuple::storeTMDBDecision(const EventContext& ctx) { const char * part[4] = {"LBA","LBC","EBA","EBC"}; // Read Decision from TES // - if (m_tileMuRcvContainer.size()>0){ + if (!m_tileMuRcvContainerKey.empty()){ - ATH_MSG_VERBOSE( "reading TMDB decision from " << m_tileMuRcvContainer ); + ATH_MSG_VERBOSE( "reading TMDB decision from " << m_tileMuRcvContainerKey.key() ); - const TileMuonReceiverContainer *decisionCnt; - ATH_CHECK( evtStore()->retrieve(decisionCnt, m_tileMuRcvContainer) ); + const TileMuonReceiverContainer *decisionCnt = + SG::makeHandle (m_tileMuRcvContainerKey, ctx).get(); TileMuonReceiverContainer::const_iterator it = decisionCnt->begin(); TileMuonReceiverContainer::const_iterator itLast = decisionCnt->end(); @@ -1338,18 +1345,18 @@ StatusCode TileAANtuple::storeTMDBDecision() { return StatusCode::SUCCESS; } -StatusCode TileAANtuple::storeTMDBDigits() { +StatusCode TileAANtuple::storeTMDBDigits(const EventContext& ctx) { const char * part[4] = {"LBA","LBC","EBA","EBC"}; // Read Digits from TES // - if (m_tileMuRcvDigitsContainer.size()>0){ + if (!m_tileMuRcvDigitsContainerKey.empty()){ - ATH_MSG_VERBOSE( "reading TMDB digits from " << m_tileMuRcvDigitsContainer ); + ATH_MSG_VERBOSE( "reading TMDB digits from " << m_tileMuRcvDigitsContainerKey.key() ); - const TileDigitsContainer* digitsCnt; - ATH_CHECK( evtStore()->retrieve(digitsCnt, m_tileMuRcvDigitsContainer) ); + const TileDigitsContainer* digitsCnt = + SG::makeHandle (m_tileMuRcvDigitsContainerKey, ctx).get(); TileDigitsContainer::const_iterator itColl1 = (*digitsCnt).begin(); TileDigitsContainer::const_iterator itCollEnd1 = (*digitsCnt).end(); @@ -1410,18 +1417,18 @@ StatusCode TileAANtuple::storeTMDBDigits() { return StatusCode::SUCCESS; } -StatusCode TileAANtuple::storeTMDBRawChannel() { +StatusCode TileAANtuple::storeTMDBRawChannel(const EventContext& ctx) { const char * part[4] = {"LBA","LBC","EBA","EBC"}; // Read Raw Channels from TDS // - if (m_tileMuRcvRawChannelContainer.size()>0){ + if (!m_tileMuRcvRawChannelContainerKey.empty()){ - ATH_MSG_VERBOSE( "reading TMDB energies from " << m_tileMuRcvRawChannelContainer ); + ATH_MSG_VERBOSE( "reading TMDB energies from " << m_tileMuRcvRawChannelContainerKey.key() ); - const TileRawChannelContainer* rcCnt; - ATH_CHECK( evtStore()->retrieve(rcCnt, m_tileMuRcvRawChannelContainer) ); + const TileRawChannelContainer* rcCnt = + SG::makeHandle (m_tileMuRcvRawChannelContainerKey, ctx).get(); TileRawChannelContainer::const_iterator itColl2 = (*rcCnt).begin(); TileRawChannelContainer::const_iterator itCollEnd2 = (*rcCnt).end(); @@ -1484,7 +1491,7 @@ TileAANtuple::ntuple_clear() { } StatusCode -TileAANtuple::initNTuple(void) { +TileAANtuple::initNTuple(const EventContext& ctx) { //Aux Ntuple creation if (m_ntupleID.size() > 0) { @@ -1507,9 +1514,9 @@ TileAANtuple::initNTuple(void) { TRIGGER_addBranch(); CISPAR_addBranch(); - if (m_laserObject.size() > 0) { - const TileLaserObject* laserObj; - ATH_CHECK( evtStore()->retrieve(laserObj, m_laserObject) ); + if (!m_laserObjectKey.empty()) { + const TileLaserObject* laserObj = + SG::makeHandle(m_laserObjectKey, ctx).get(); m_las_version = laserObj->getVersion(); LASER_addBranch(); } @@ -1733,7 +1740,7 @@ void TileAANtuple::CISPAR_clearBranch(void) { */ void TileAANtuple::LASER_addBranch(void) { - if (m_laserObject.size() > 0) { + if (!m_laserObjectKey.empty()) { const char* gainnames[2] = {"LG","HG"}; const char* channames[16] = {"Diode0","Diode1","Diode2","Diode3","Diode4","Diode5","Diode6","Diode7", @@ -2006,7 +2013,7 @@ void TileAANtuple::LASER_addBranch(void) { */ void TileAANtuple::LASER_clearBranch(void) { - if (m_laserObject.size() > 0) { + if (!m_laserObjectKey.empty()) { m_las_BCID = 0; @@ -2079,35 +2086,35 @@ void TileAANtuple::DIGI_addBranch(void) std::string f_suf(suf[i]); - if (m_fltDigitsContainer.size() == 0 && m_digitsContainer.size() == 0 - && (m_rawChannelContainer.size() > 0 - || m_fitRawChannelContainer.size() > 0 - || m_fitcRawChannelContainer.size() > 0 - || m_optRawChannelContainer.size() > 0 - || m_qieRawChannelContainer.size() > 0 - || m_dspRawChannelContainer.size() > 0 - || m_mfRawChannelContainer.size() > 0 - || m_of1RawChannelContainer.size() > 0 - || m_bsInput) ) { + if (m_fltDigitsContainerKey.empty() && m_digitsContainerKey.empty() + && (!m_rawChannelContainerKey.empty() + || !m_fitRawChannelContainerKey.empty() + || !m_fitcRawChannelContainerKey.empty() + || !m_optRawChannelContainerKey.empty() + || !m_qieRawChannelContainerKey.empty() + || !m_dspRawChannelContainerKey.empty() + || !m_mfRawChannelContainerKey.empty() + || !m_of1RawChannelContainerKey.empty() + || !m_bsInput) ) { m_ntuplePtr->Branch(NAME2("gain",f_suf), m_gain[ir], NAME3("gain", f_suf,"[4][64][48]/S")); // short } else { - if (m_fltDigitsContainer.size() > 0) { - if (m_digitsContainer.size() > 0) { // should use different names for two containers + if (!m_fltDigitsContainerKey.empty()) { + if (!m_digitsContainerKey.empty()) { // should use different names for two containers m_ntuplePtr->Branch(NAME2("sampleFlt",f_suf), m_sampleFlt[ir], NAME3("sampleFlt", f_suf,"[4][64][48][7]/S")); // short m_ntuplePtr->Branch(NAME2("gainFlt",f_suf), m_gainFlt[ir], NAME3("gainFlt", f_suf,"[4][64][48]/S")); // short } else { m_ntuplePtr->Branch(NAME2("sample",f_suf), m_sampleFlt[ir], NAME3("sampleFlt", f_suf,"[4][64][48][7]/S")); // short - if (m_rawChannelContainer.size() > 0 - || m_fitRawChannelContainer.size() > 0 - || m_fitcRawChannelContainer.size() > 0 - || m_optRawChannelContainer.size() > 0 - || m_qieRawChannelContainer.size() > 0 - || m_of1RawChannelContainer.size() > 0 - || m_dspRawChannelContainer.size() > 0 + if (!m_rawChannelContainerKey.empty() + || !m_fitRawChannelContainerKey.empty() + || !m_fitcRawChannelContainerKey.empty() + || !m_optRawChannelContainerKey.empty() + || !m_qieRawChannelContainerKey.empty() + || !m_of1RawChannelContainerKey.empty() + || !m_dspRawChannelContainerKey.empty() || m_bsInput) { m_ntuplePtr->Branch(NAME2("gain",f_suf), m_gain[ir], NAME3("gain", f_suf,"[4][64][48]/S")); // short @@ -2117,7 +2124,7 @@ void TileAANtuple::DIGI_addBranch(void) } } - if (m_digitsContainer.size() > 0) { + if (!m_digitsContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("sample",f_suf), m_sample[ir], NAME3("sample", f_suf,"[4][64][48][7]/S")); // short m_ntuplePtr->Branch(NAME2("gain",f_suf), m_gain[ir], NAME3("gain", f_suf,"[4][64][48]/S")); // short @@ -2143,56 +2150,56 @@ void TileAANtuple::DIGI_addBranch(void) } } - if (m_rawChannelContainer.size() > 0) { + if (!m_rawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("ene",f_suf), m_ene[ir], NAME3("ene",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("time",f_suf), m_time[ir], NAME3("time",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("ped",f_suf), m_ped[ir], NAME3("ped",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2",f_suf), m_chi2[ir], NAME3("chi2",f_suf,"[4][64][48]/F")); // float } - if (m_fitRawChannelContainer.size() > 0) { + if (!m_fitRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eFit",f_suf), m_eFit[ir], NAME3("eFit",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tFit",f_suf), m_tFit[ir], NAME3("tFit",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedFit",f_suf), m_pedFit[ir], NAME3("pedFit",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2Fit",f_suf), m_chi2Fit[ir], NAME3("chi2Fit",f_suf,"[4][64][48]/F")); // float } - if (m_fitcRawChannelContainer.size() > 0) { + if (!m_fitcRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eFitc",f_suf), m_eFitc[ir], NAME3("eFitc",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tFitc",f_suf), m_tFitc[ir], NAME3("tFitc",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedFitc",f_suf), m_pedFitc[ir], NAME3("pedFitc",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2Fitc",f_suf),m_chi2Fitc[ir],NAME3("chi2Fitc",f_suf,"[4][64][48]/F")); // float } - if (m_optRawChannelContainer.size() > 0) { + if (!m_optRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eOpt",f_suf), m_eOpt[ir], NAME3("eOpt",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tOpt",f_suf), m_tOpt[ir], NAME3("tOpt",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedOpt",f_suf), m_pedOpt[ir], NAME3("pedOpt",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2Opt",f_suf), m_chi2Opt[ir], NAME3("chi2Opt",f_suf,"[4][64][48]/F")); // float } - if (m_qieRawChannelContainer.size() > 0) { + if (!m_qieRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eQIE",f_suf), m_eQIE[ir], NAME3("eQIE",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tQIE",f_suf), m_tQIE[ir], NAME3("tQIE",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedQIE",f_suf), m_pedQIE[ir], NAME3("pedQIE",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2QIE",f_suf), m_chi2QIE[ir], NAME3("chi2QIE",f_suf,"[4][64][48]/F")); // float } - if (m_of1RawChannelContainer.size() > 0) { + if (!m_of1RawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eOF1",f_suf), m_eOF1[ir], NAME3("eOF1",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tOF1",f_suf), m_tOF1[ir], NAME3("tOF1",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedOF1",f_suf), m_pedOF1[ir], NAME3("pedOF1",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2OF1",f_suf), m_chi2OF1[ir], NAME3("chi2OF1",f_suf,"[4][64][48]/F")); // float } - if (m_dspRawChannelContainer.size() > 0) { + if (!m_dspRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eDsp",f_suf), m_eDsp[ir], NAME3("eDsp",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("tDsp",f_suf), m_tDsp[ir], NAME3("tDsp",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("pedDsp",f_suf), m_pedDsp[ir], NAME3("pedDsp",f_suf,"[4][64][48]/F")); // float m_ntuplePtr->Branch(NAME2("chi2Dsp",f_suf), m_chi2Dsp[ir], NAME3("chi2Dsp",f_suf,"[4][64][48]/F")); // float } - if (m_mfRawChannelContainer.size() > 0) { + if (!m_mfRawChannelContainerKey.empty()) { m_ntuplePtr->Branch(NAME2("eMF",f_suf), m_eMF[ir], NAME3("eMF",f_suf,"[4][64][48][7]/F")); // float m_ntuplePtr->Branch(NAME2("tMF",f_suf), m_tMF[ir], NAME3("tMF",f_suf,"[4][64][48][7]/F")); // float m_ntuplePtr->Branch(NAME2("chi2MF",f_suf), m_chi2MF[ir], NAME3("chi2MF",f_suf,"[4][64][48]/F")); // float @@ -2243,12 +2250,12 @@ void TileAANtuple::DIGI_clearBranch(void) { CLEAR3(m_gain, size); - if (m_fltDigitsContainer.size() > 0) { + if (!m_fltDigitsContainerKey.empty()) { CLEAR3(m_sampleFlt, size); CLEAR3(m_gainFlt, size); } - if (m_digitsContainer.size() > 0) { + if (!m_digitsContainerKey.empty()) { CLEAR3(m_sample, size); if (m_bsInput) { @@ -2271,28 +2278,28 @@ void TileAANtuple::DIGI_clearBranch(void) { } - if (m_rawChannelContainer.size() > 0) { + if (!m_rawChannelContainerKey.empty()) { CLEAR2(m_ene, size); CLEAR2(m_time, size); CLEAR2(m_ped, size); CLEAR2(m_chi2, size); } - if (m_fitRawChannelContainer.size() > 0) { + if (!m_fitRawChannelContainerKey.empty()) { CLEAR2(m_eFit, size); CLEAR2(m_tFit, size); CLEAR2(m_pedFit, size); CLEAR2(m_chi2Fit, size); } - if (m_fitcRawChannelContainer.size() > 0) { + if (!m_fitcRawChannelContainerKey.empty()) { CLEAR2(m_eFitc, size); CLEAR2(m_tFitc, size); CLEAR2(m_pedFitc, size); CLEAR2(m_chi2Fitc, size); } - if (m_optRawChannelContainer.size() > 0) { + if (!m_optRawChannelContainerKey.empty()) { CLEAR2(m_eOpt, size); CLEAR2(m_tOpt, size); CLEAR2(m_pedOpt, size); @@ -2300,28 +2307,28 @@ void TileAANtuple::DIGI_clearBranch(void) { } - if (m_qieRawChannelContainer.size() > 0) { + if (!m_qieRawChannelContainerKey.empty()) { CLEAR2(m_eQIE, size); CLEAR2(m_tQIE, size); CLEAR2(m_pedQIE, size); CLEAR2(m_chi2QIE, size); } - if (m_of1RawChannelContainer.size() > 0) { + if (!m_of1RawChannelContainerKey.empty()) { CLEAR2(m_eOF1, size); CLEAR2(m_tOF1, size); CLEAR2(m_pedOF1, size); CLEAR2(m_chi2OF1, size); } - if (m_dspRawChannelContainer.size() > 0) { + if (!m_dspRawChannelContainerKey.empty()) { CLEAR2(m_eDsp, size); CLEAR2(m_tDsp, size); CLEAR2(m_pedDsp, size); CLEAR2(m_chi2Dsp, size); } - if (m_mfRawChannelContainer.size() > 0) { + if (!m_mfRawChannelContainerKey.empty()) { CLEAR2(m_eMF, size); CLEAR2(m_tMF, size); CLEAR2(m_chi2MF, size); @@ -2354,15 +2361,15 @@ void TileAANtuple::DIGI_clearBranch(void) { void TileAANtuple::TMDB_addBranch(void) { - if (m_tileMuRcvRawChannelContainer.size()>0) { + if (!m_tileMuRcvRawChannelContainerKey.empty()) { m_ntuplePtr->Branch("eTMDB", m_eTMDB, "eTMDB[4][64][8]/F"); // float m_eTMDB[N_ROS][N_MODULES][N_TMDBCHANS] } - if (m_tileMuRcvDigitsContainer.size()>0) { + if (!m_tileMuRcvDigitsContainerKey.empty()) { m_ntuplePtr->Branch("sampleTMDB", m_sampleTMDB, "sampleTMDB[4][64][8][7]/b"); // unsigned char m_sampleTMDB[N_ROS][N_MODULES][N_TMDBCHANS][N_SAMPLES] } - if (m_tileMuRcvContainer.size()>0) { + if (!m_tileMuRcvContainerKey.empty()) { m_ntuplePtr->Branch("decisionTMDB", m_decisionTMDB, "decisionTMDB[4][64][4]/b"); // unsigned char m_decisionTMDB[N_ROS][N_MODULES][N_TMDBDECISIONS] } @@ -2370,9 +2377,9 @@ void TileAANtuple::TMDB_addBranch(void) void TileAANtuple::TMDB_clearBranch(void) { - if (m_tileMuRcvRawChannelContainer.size()>0) CLEAR(m_eTMDB); - if (m_tileMuRcvDigitsContainer.size()>0) CLEAR(m_sampleTMDB); - if (m_tileMuRcvContainer.size()>0) CLEAR(m_decisionTMDB); + if (!m_tileMuRcvRawChannelContainerKey.empty()) CLEAR(m_eTMDB); + if (!m_tileMuRcvDigitsContainerKey.empty()) CLEAR(m_sampleTMDB); + if (!m_tileMuRcvContainerKey.empty()) CLEAR(m_decisionTMDB); } /*///////////////////////////////////////////////////////////////////////////// -- GitLab From 171c3541ff67049f15b233c7796a26cb48e8c933 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 25 Jan 2019 18:44:35 +0100 Subject: [PATCH 133/192] PyDumper: Explicitly disable CaloRinger during event dumping. CaloRinger is on by default in RecExCommon, and doesn't obey the doWrite switches. Futher, it loads Athena libraries during job configuration, which can lead to crashes in gcc8 builds. Explicitly disable it. --- Event/PyDumper/python/SgDumpLib.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Event/PyDumper/python/SgDumpLib.py b/Event/PyDumper/python/SgDumpLib.py index 1365d31a5e17..695a0caba281 100644 --- a/Event/PyDumper/python/SgDumpLib.py +++ b/Event/PyDumper/python/SgDumpLib.py @@ -73,6 +73,7 @@ def _gen_jobo(dct): 'doAOD', 'doDPD', 'doEgamma', # avoid dict clash + 'doCaloRinger', # avoid loading Ath libs too early ): getattr (rec, item).set_Value_and_Lock(False) -- GitLab From 06a3bc98704d424fbaca5b6783bbdc0968d06799 Mon Sep 17 00:00:00 2001 From: scott snyder <scott.snyder@cern.ch> Date: Wed, 23 Jan 2019 16:39:07 +0100 Subject: [PATCH 134/192] TrkExUtils: Fix gcc9 warnings. In C++11, implicit declarations of copy and assignment are deprecated if the class has a user defined destructor or copy or assignment. gcc9 now warns about this by default. Adjust to avoid the warning. --- .../TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h | 4 ++-- .../TrkExUtils/TrkExUtils/TransportJacobian.h | 4 ++-- .../TrkExUtils/src/TrackSurfaceIntersection.cxx | 6 +----- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h index 3d48b5df4603..dc32fd49c057 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h +++ b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TrackSurfaceIntersection.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -31,7 +31,7 @@ namespace Trk { /**Constructor*/ TrackSurfaceIntersection(const Amg::Vector3D& pos, const Amg::Vector3D& dir, double path); /**Destructor*/ - virtual ~TrackSurfaceIntersection(); + virtual ~TrackSurfaceIntersection() = default; TrackSurfaceIntersection (const TrackSurfaceIntersection& other); TrackSurfaceIntersection& operator= (const TrackSurfaceIntersection& other) = default; diff --git a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TransportJacobian.h b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TransportJacobian.h index afa182a5b86d..5fd345d6263c 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TransportJacobian.h +++ b/Tracking/TrkExtrapolation/TrkExUtils/TrkExUtils/TransportJacobian.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 */ /////////////////////////////////////////////////////////////////// @@ -51,7 +51,7 @@ namespace Trk { TransportJacobian(const AmgMatrix(5,5)&); /** Destructor */ - ~TransportJacobian(){}; + ~TransportJacobian() = default; private: diff --git a/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx b/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx index 7780638f03d5..3640644623b6 100755 --- a/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx +++ b/Tracking/TrkExtrapolation/TrkExUtils/src/TrackSurfaceIntersection.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -37,10 +37,6 @@ Trk::TrackSurfaceIntersection::TrackSurfaceIntersection(const TrackSurfaceInters m_serialNumber = ++s_serialNumber; } -// destructor -Trk::TrackSurfaceIntersection::~TrackSurfaceIntersection() -{} - //Overload of << operator for both, MsgStream and std::ostream for debug output MsgStream& Trk::operator << ( MsgStream& sl, const Trk::TrackSurfaceIntersection& tsfi) { -- GitLab From 1100a56d835aad5df2cf45fd530747cbda7eb8c0 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 25 Jan 2019 18:48:52 +0100 Subject: [PATCH 135/192] METReconstruction: Make MET tools private. Needed to get dependencies propagated from tools. --- .../METReconstruction/Root/METRecoTool.cxx | 27 ++++--------------- .../python/METAssocConfig.py | 4 +-- .../python/METAssocConfig_readAOD.py | 3 +-- .../METReconstruction/python/METRecoConfig.py | 9 +------ .../MET/METReconstruction/src/METRecoAlg.cxx | 22 +++++---------- 5 files changed, 15 insertions(+), 50 deletions(-) diff --git a/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx b/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx index cece244e8235..ac454b15e2e8 100644 --- a/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx +++ b/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // METRecoTool.cxx @@ -48,6 +48,8 @@ namespace met { METRecoTool::METRecoTool(const std::string& name) : AsgTool(name), m_doMetSum(false), + m_metbuilders(this), + m_metrefiners(this), m_nevt(0) { declareProperty( "METBuilders", m_metbuilders ); @@ -90,27 +92,8 @@ namespace met { ATH_MSG_INFO ("Will not sum MET in this container."); } - // retrieve builders - for(ToolHandleArray<IMETToolBase>::const_iterator iBuilder=m_metbuilders.begin(); - iBuilder != m_metbuilders.end(); ++iBuilder) { - ToolHandle<IMETToolBase> tool = *iBuilder; - if( tool.retrieve().isFailure() ) { - ATH_MSG_FATAL("Failed to retrieve tool: " << tool->name()); - return StatusCode::FAILURE; - }; - ATH_MSG_INFO("Retrieved tool: " << tool->name() ); - } - - // retrieve refiners - for(ToolHandleArray<IMETToolBase>::const_iterator iRefiner=m_metrefiners.begin(); - iRefiner != m_metrefiners.end(); ++iRefiner) { - ToolHandle<IMETToolBase> tool = *iRefiner; - if( tool.retrieve().isFailure() ) { - ATH_MSG_FATAL("Failed to retrieve tool: " << tool->name()); - return StatusCode::FAILURE; - }; - ATH_MSG_INFO("Retrieved tool: " << tool->name() ); - } + ATH_CHECK( m_metbuilders.retrieve() ); + ATH_CHECK( m_metrefiners.retrieve() ); // generate clocks unsigned int ntool = m_metbuilders.size()+m_metrefiners.size(); diff --git a/Reconstruction/MET/METReconstruction/python/METAssocConfig.py b/Reconstruction/MET/METReconstruction/python/METAssocConfig.py index 4e217139083f..4e4ca3c274ad 100644 --- a/Reconstruction/MET/METReconstruction/python/METAssocConfig.py +++ b/Reconstruction/MET/METReconstruction/python/METAssocConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaCommon import CfgMgr from GaudiKernel.Constants import INFO @@ -233,9 +233,7 @@ def getMETAssocAlg(algName='METAssociation',configs={},tools=[],msglvl=INFO): assocTools.append(assoctool) metFlags.METAssocTools()[key] = assoctool - from AthenaCommon.AppMgr import ToolSvc for tool in assocTools: - ToolSvc += tool print prefix, 'Added METAssocTool \''+tool.name()+'\' to alg '+algName assocAlg = CfgMgr.met__METRecoAlg(name=algName, diff --git a/Reconstruction/MET/METReconstruction/python/METAssocConfig_readAOD.py b/Reconstruction/MET/METReconstruction/python/METAssocConfig_readAOD.py index 51aa6d682256..ed9499b25ee1 100644 --- a/Reconstruction/MET/METReconstruction/python/METAssocConfig_readAOD.py +++ b/Reconstruction/MET/METReconstruction/python/METAssocConfig_readAOD.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration @@ -231,7 +231,6 @@ def getMETAssocAlg(algName='METAssociation',configs={},tools=[]): from AthenaCommon.AppMgr import ToolSvc for tool in assocTools: - ToolSvc += tool print prefix, 'Added METAssocTool \''+tool.name()+'\' to alg '+algName assocAlg = CfgMgr.met__METRecoAlg(name=algName, diff --git a/Reconstruction/MET/METReconstruction/python/METRecoConfig.py b/Reconstruction/MET/METReconstruction/python/METRecoConfig.py index ae0940762fa1..73c5cece643f 100644 --- a/Reconstruction/MET/METReconstruction/python/METRecoConfig.py +++ b/Reconstruction/MET/METReconstruction/python/METRecoConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from AthenaCommon import CfgMgr @@ -135,8 +135,6 @@ def getBuilder(config,suffix,doTracks,doCells,doTriggerMET,doOriginCorrClus): else: tool.MissingETKey = config.outputKey from AthenaCommon.AppMgr import ToolSvc - if not hasattr(ToolSvc,tool.name()): - ToolSvc += tool return tool ################################################################################# @@ -169,8 +167,6 @@ def getRefiner(config,suffix,trkseltool=None,trkvxtool=None,trkisotool=None,calo if config.type == 'MuonEloss': tool = CfgMgr.met__METMuonElossTool('MET_MuonElossTool_'+suffix) tool.MissingETKey = config.outputKey - if not hasattr(ToolSvc,tool.name()): - ToolSvc += tool return tool ################################################################################# @@ -185,8 +181,6 @@ def getRegions(config,suffix): tool.InputMETKey = config.outputKey tool.RegionValues = [ 1.5, 3.2, 10 ] from AthenaCommon.AppMgr import ToolSvc - if not hasattr(ToolSvc,tool.name()): - ToolSvc += tool return tool ################################################################################# @@ -338,7 +332,6 @@ def getMETRecoAlg(algName='METReconstruction',configs={},tools=[]): from AthenaCommon.AppMgr import ToolSvc for tool in recoTools: - ToolSvc += tool print prefix, 'Added METRecoTool \''+tool.name()+'\' to alg '+algName recoAlg = CfgMgr.met__METRecoAlg(name=algName, diff --git a/Reconstruction/MET/METReconstruction/src/METRecoAlg.cxx b/Reconstruction/MET/METReconstruction/src/METRecoAlg.cxx index 8a0c6e39ff0a..5b31c5cb8952 100644 --- a/Reconstruction/MET/METReconstruction/src/METRecoAlg.cxx +++ b/Reconstruction/MET/METReconstruction/src/METRecoAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // METRecoAlg.cxx @@ -15,7 +15,9 @@ namespace met { METRecoAlg::METRecoAlg(const std::string& name, ISvcLocator* pSvcLocator ) - : ::AthAlgorithm( name, pSvcLocator ) { + : ::AthAlgorithm( name, pSvcLocator ), + m_recotools (this) + { declareProperty( "RecoTools", m_recotools); } @@ -26,19 +28,9 @@ namespace met { //********************************************************************** StatusCode METRecoAlg::initialize() { - ATH_MSG_INFO("Initializing " << name() << "..."); - ATH_MSG_INFO("Retrieving tools..."); + ATH_MSG_VERBOSE("Initializing " << name() << "..."); - // retrieve tools - for(ToolHandleArray<IMETRecoTool>::const_iterator iTool=m_recotools.begin(); - iTool != m_recotools.end(); ++iTool) { - ToolHandle<IMETRecoTool> tool = *iTool; - if( tool.retrieve().isFailure() ) { - ATH_MSG_ERROR("Failed to retrieve tool: " << tool->name()); - return StatusCode::FAILURE; - }; - ATH_MSG_INFO("Retrieved tool: " << tool->name() ); - } + ATH_CHECK( m_recotools.retrieve() ); return StatusCode::SUCCESS; } @@ -46,7 +38,7 @@ namespace met { //********************************************************************** StatusCode METRecoAlg::finalize() { - ATH_MSG_INFO ("Finalizing " << name() << "..."); + ATH_MSG_VERBOSE ("Finalizing " << name() << "..."); return StatusCode::SUCCESS; } -- GitLab From c9981ca1763aa03049cc1a83258fc1c322b74882 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 25 Jan 2019 18:47:30 +0100 Subject: [PATCH 136/192] METUtilities: Fix dependency propagation. HandleKeys must be declared as properties in order for dependencies to propagate correctly. --- .../MET/METUtilities/src/METMakerAlg.cxx | 32 ++++++------------- .../MET/METUtilities/src/METMakerAlg.h | 18 +++-------- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/Reconstruction/MET/METUtilities/src/METMakerAlg.cxx b/Reconstruction/MET/METUtilities/src/METMakerAlg.cxx index 60347180be7a..a77c18122018 100644 --- a/Reconstruction/MET/METUtilities/src/METMakerAlg.cxx +++ b/Reconstruction/MET/METUtilities/src/METMakerAlg.cxx @@ -31,12 +31,6 @@ namespace met { METMakerAlg::METMakerAlg(const std::string& name, ISvcLocator* pSvcLocator ) : ::AthAlgorithm( name, pSvcLocator ), - m_ElectronContainerKey(""), - m_PhotonContainerKey(""), - m_TauJetContainerKey(""), - m_MuonContainerKey(""), - m_JetContainerKey(""), - m_CoreMetKey(""), m_metKey(""), m_metMap("METAssoc"), m_muonSelTool(""), @@ -45,18 +39,18 @@ namespace met { m_tauSelTool("") { declareProperty( "Maker", m_metmaker ); - declareProperty( "METCoreName", m_corename = "MET_Core" ); + declareProperty( "METCoreName", m_CoreMetKey = "MET_Core" ); declareProperty("METName", m_metKey = std::string("MET_Reference"),"MET container"); declareProperty("METMapName", m_metMap ); declareProperty( "METSoftClName", m_softclname = "SoftClus" ); declareProperty( "METSoftTrkName", m_softtrkname = "PVSoftTrk" ); - declareProperty( "InputJets", m_jetColl = "AntiKt4LCTopoJets" ); - declareProperty( "InputElectrons", m_eleColl = "Electrons" ); - declareProperty( "InputPhotons", m_gammaColl = "Photons" ); - declareProperty( "InputTaus", m_tauColl = "TauJets" ); - declareProperty( "InputMuons", m_muonColl = "Muons" ); + declareProperty( "InputJets", m_JetContainerKey = "AntiKt4LCTopoJets" ); + declareProperty( "InputElectrons", m_ElectronContainerKey = "Electrons" ); + declareProperty( "InputPhotons", m_PhotonContainerKey = "Photons" ); + declareProperty( "InputTaus", m_TauJetContainerKey = "TauJets" ); + declareProperty( "InputMuons", m_MuonContainerKey = "Muons" ); declareProperty( "MuonSelectionTool", m_muonSelTool ); declareProperty( "ElectronLHSelectionTool", m_elecSelLHTool ); @@ -102,17 +96,11 @@ namespace met { ATH_MSG_ERROR("Failed to retrieve tool: " << m_tauSelTool->name()); return StatusCode::FAILURE; }; - ATH_CHECK( m_ElectronContainerKey.assign(m_eleColl) ); ATH_CHECK( m_ElectronContainerKey.initialize() ); - ATH_CHECK( m_PhotonContainerKey.assign(m_gammaColl) ); ATH_CHECK( m_PhotonContainerKey.initialize() ); - ATH_CHECK( m_TauJetContainerKey.assign(m_tauColl) ); ATH_CHECK( m_TauJetContainerKey.initialize() ); - ATH_CHECK( m_MuonContainerKey.assign(m_muonColl) ); ATH_CHECK( m_MuonContainerKey.initialize() ); - ATH_CHECK( m_JetContainerKey.assign(m_jetColl) ); ATH_CHECK( m_JetContainerKey.initialize() ); - ATH_CHECK( m_CoreMetKey.assign(m_corename) ); ATH_CHECK( m_CoreMetKey.initialize() ); ATH_CHECK( m_metKey.initialize() ); @@ -191,7 +179,7 @@ namespace met { MissingETBase::UsageHandler::Policy objScale = MissingETBase::UsageHandler::PhysicsObject; if(m_doTruthLep) objScale = MissingETBase::UsageHandler::TruthParticle; // Electrons - if(!m_eleColl.empty()) { + if(!m_ElectronContainerKey.empty()) { ConstDataVector<ElectronContainer> metElectrons(SG::VIEW_ELEMENTS); for(const auto& el : *Electrons) { if(accept(el)) { @@ -209,7 +197,7 @@ namespace met { } // Photons - if(!m_gammaColl.empty()) { + if(!m_PhotonContainerKey.empty()) { ConstDataVector<PhotonContainer> metPhotons(SG::VIEW_ELEMENTS); for(const auto& ph : *Gamma) { if(accept(ph)) { @@ -226,7 +214,7 @@ namespace met { } // Taus - if(!m_tauColl.empty()) { + if(!m_TauJetContainerKey.empty()) { ConstDataVector<TauJetContainer> metTaus(SG::VIEW_ELEMENTS); for(const auto& tau : *TauJets) { if(accept(tau)) { @@ -243,7 +231,7 @@ namespace met { } // Muons - if(!m_muonColl.empty()) { + if(!m_MuonContainerKey.empty()) { ConstDataVector<MuonContainer> metMuons(SG::VIEW_ELEMENTS); for(const auto& mu : *Muons) { if(accept(mu)) { diff --git a/Reconstruction/MET/METUtilities/src/METMakerAlg.h b/Reconstruction/MET/METUtilities/src/METMakerAlg.h index c1c357afc3b1..ca3b2c7e3113 100644 --- a/Reconstruction/MET/METUtilities/src/METMakerAlg.h +++ b/Reconstruction/MET/METUtilities/src/METMakerAlg.h @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // METMakerAlg.h @@ -47,12 +47,12 @@ namespace met { METMakerAlg(const std::string& name, ISvcLocator* pSvcLocator); /// Destructor: - ~METMakerAlg(); + virtual ~METMakerAlg(); /// Athena algorithm's Hooks - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: @@ -64,8 +64,6 @@ namespace met { bool accept(const xAOD::TauJet* tau); bool accept(const xAOD::Muon* muon); - std::string m_corename; - std::string m_softclname; std::string m_softtrkname; @@ -78,12 +76,6 @@ namespace met { SG::ReadHandleKey<xAOD::MissingETContainer> m_CoreMetKey; - std::string m_eleColl; - std::string m_gammaColl; - std::string m_tauColl; - std::string m_jetColl; - std::string m_muonColl; - SG::WriteHandleKey<xAOD::MissingETContainer> m_metKey; SG::ReadHandle<xAOD::MissingETAssociationMap> m_metMap; -- GitLab From 24f6abcda94027a832077fcd19bfd827a207777c Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 25 Jan 2019 18:43:25 +0100 Subject: [PATCH 137/192] AthExHelloWorld: Enable thread-safety static checker. Enable thread-safety static checker. Try to fix irreproducibility in MT2 test. --- .../AthExHelloWorld/AthExHelloWorld/ATLAS_CHECK_THREAD_SAFETY | 1 + Control/AthenaExamples/AthExHelloWorld/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Control/AthenaExamples/AthExHelloWorld/AthExHelloWorld/ATLAS_CHECK_THREAD_SAFETY diff --git a/Control/AthenaExamples/AthExHelloWorld/AthExHelloWorld/ATLAS_CHECK_THREAD_SAFETY b/Control/AthenaExamples/AthExHelloWorld/AthExHelloWorld/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..0a4738bcd442 --- /dev/null +++ b/Control/AthenaExamples/AthExHelloWorld/AthExHelloWorld/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Control/AthenaExamples/AthExHelloWorld diff --git a/Control/AthenaExamples/AthExHelloWorld/CMakeLists.txt b/Control/AthenaExamples/AthExHelloWorld/CMakeLists.txt index fe06e5d00776..552f735fab9a 100644 --- a/Control/AthenaExamples/AthExHelloWorld/CMakeLists.txt +++ b/Control/AthenaExamples/AthExHelloWorld/CMakeLists.txt @@ -37,7 +37,7 @@ atlas_add_test( AthExHelloWorldMT_1 atlas_add_test( AthExHelloWorldMT_2 ENVIRONMENT THREADS=2 SCRIPT test/test_AthExHelloWorld.sh - EXTRA_PATTERNS "AthenaHiveEventLoopMgr.* processing event" #processing order can change + EXTRA_PATTERNS "AthenaHiveEventLoopMgr.* processing event|^HelloWorld .*(INFO|WARNING A WARNING|ERROR An ERROR|FATAL A FATAL" #processing order can change ) atlas_add_test( AthExHelloWorld_CfgTest SCRIPT python -m AthExHelloWorld.HelloWorldConfig POST_EXEC_SCRIPT nopost.sh ) -- GitLab From bd9aa38811062ead4172a651c95e186ffe13849f Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 26 Jan 2019 10:35:36 +0000 Subject: [PATCH 138/192] Static THREAD_SAFETY_CHECKER fixes --- Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx | 6 ++---- .../xAODCaloEvent/xAODCaloEvent/ATLAS_CHECK_THREAD_SAFETY | 1 + .../xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h | 8 ++++---- .../xAOD/xAODEgamma/xAODEgamma/ATLAS_CHECK_THREAD_SAFETY | 1 + 4 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 Event/xAOD/xAODCaloEvent/xAODCaloEvent/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/xAOD/xAODEgamma/xAODEgamma/ATLAS_CHECK_THREAD_SAFETY diff --git a/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx b/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx index 7000eb830e85..d82a267f966d 100644 --- a/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx +++ b/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx @@ -1,15 +1,13 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "xAODCaloEvent/versions/CaloTower_v1.h" #include "xAODCaloEvent/versions/CaloTowerContainer_v1.h" - - #include <cmath> -double xAOD::CaloTower_v1::m_towerMass = 0.; +const double xAOD::CaloTower_v1::m_towerMass = 0.; xAOD::CaloTower_v1::CaloTower_v1() : IParticle() diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..9c95d1d136cc --- /dev/null +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODCaloEvent diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h index cc7523c92adf..6bc9cd8bee46 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h @@ -1,7 +1,7 @@ // -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef CALOEVENT_CALOTOWER_V1_H @@ -83,14 +83,14 @@ namespace xAOD { /// @name Transient four-momentum store /// @{ - static double m_towerMass; ///> @brief Convention @f$ m_{\mathrm{tower}} = 0 @f$. + static const double m_towerMass; ///> @brief Convention @f$ m_{\mathrm{tower}} = 0 @f$. /// @} }; } -inline float& xAOD::CaloTower_v1::f_ref_e() { static Accessor<float> acc("towerE"); return acc(*this); } +inline float& xAOD::CaloTower_v1::f_ref_e() { static const Accessor<float> acc("towerE"); return acc(*this); } -inline float xAOD::CaloTower_v1::f_val_e() const { static ConstAccessor<float> acc("towerE"); return acc(*this); } +inline float xAOD::CaloTower_v1::f_val_e() const { static const ConstAccessor<float> acc("towerE"); return acc(*this); } ///! @class xAOD::CaloTower_v1 /// diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODEgamma/xAODEgamma/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..5951f2dad9ab --- /dev/null +++ b/Event/xAOD/xAODEgamma/xAODEgamma/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODEgamma -- GitLab From 9ab32982ba332c92e03f110cbd9b71b94f6c7fa6 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 26 Jan 2019 12:49:41 +0000 Subject: [PATCH 139/192] xAODTracking, fix 1st the trivial warnings from THREAD_SAFETY_CHECKER --- Event/xAOD/xAODMuon/Root/Muon_v1.cxx | 8 +- .../xAODTracking/Root/NeutralParticle_v1.cxx | 47 ++++---- .../Root/SCTRawHitValidation_v1.cxx | 2 +- .../Root/TrackMeasurementValidation_v1.cxx | 16 +-- .../xAODTracking/Root/TrackParticle_v1.cxx | 104 +++++++++--------- .../Root/TrackParticlexAODHelpers.cxx | 6 +- .../Root/TrackStateValidation_v1.cxx | 24 ++-- .../Root/TrackSummaryAccessors_v1.cxx | 42 +++---- Event/xAOD/xAODTracking/Root/Vertex_v1.cxx | 14 +-- .../test/xAODTracking_TrackParticle_test.cxx | 5 +- .../xAODTracking/TrackSummaryAccessors_v1.h | 5 +- .../versions/NeutralParticle_v1.h | 11 +- 12 files changed, 139 insertions(+), 145 deletions(-) diff --git a/Event/xAOD/xAODMuon/Root/Muon_v1.cxx b/Event/xAOD/xAODMuon/Root/Muon_v1.cxx index aeccee57b20e..fe3a6c0e8b00 100644 --- a/Event/xAOD/xAODMuon/Root/Muon_v1.cxx +++ b/Event/xAOD/xAODMuon/Root/Muon_v1.cxx @@ -124,7 +124,7 @@ namespace xAOD { // @todo ?Could further optimise the below, to see first if the SummaryType value is one of the ones we write to Muons? // @todo ?Is there a better way than catching the exception? try { - Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); + const Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); value = ( *acc )( *this ); return true; } catch ( SG::ExcBadAuxVar& ) {} @@ -136,7 +136,7 @@ namespace xAOD { } void Muon_v1::setSummaryValue( uint8_t value, const SummaryType information ) { - Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); ///FIXME! + const Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); ///FIXME! // Set the value: ( *acc )( *this ) = value; } @@ -150,12 +150,12 @@ namespace xAOD { } float Muon_v1::floatSummaryValue(const SummaryType information) const { - Muon_v1::Accessor< float >* acc = trackSummaryAccessorV1< float >( information ); + const Muon_v1::Accessor< float >* acc = trackSummaryAccessorV1< float >( information ); return ( *acc )( *this ); } uint8_t Muon_v1::uint8SummaryValue(const SummaryType information) const{ - Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1< uint8_t >( information ); + const Muon_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1< uint8_t >( information ); return ( *acc )( *this ); } diff --git a/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx b/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx index 5fb47630ee64..a089fbbdb72d 100644 --- a/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -// $Id: NeutralParticle_v1.cxx 573493 2013-12-03 13:05:51Z emoyse $ // Misc includes #include <bitset> #include <vector> @@ -73,7 +72,6 @@ namespace xAOD { NeutralParticle_v1::GenVecFourMom_t NeutralParticle_v1::genvecP4() const { using namespace std; - // Check if we need to reset the cached object: float p = 1/fabs(oneOverP()); float thetaT = theta(); float phiT = phi(); @@ -87,7 +85,6 @@ namespace xAOD { NeutralParticle_v1::FourMom_t NeutralParticle_v1::p4() const { using namespace std; FourMom_t p4; - // Check if we need to reset the cached object: float p = 1/fabs(oneOverP()); float thetaT = theta(); float phiT = phi(); @@ -113,9 +110,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER(NeutralParticle_v1, float, oneOverP) const DefiningParameters_t& NeutralParticle_v1::definingParameters() const{ - static DefiningParameters_t tmp; - tmp << d0(),z0(),phi0(),theta(),oneOverP(); - return tmp; + static DefiningParameters_t tmp; + tmp << d0(),z0(),phi0(),theta(),oneOverP(); + return tmp; } void NeutralParticle_v1::setDefiningParameters(float d0, float z0, float phi0, float theta, float oneOverP) { @@ -124,19 +121,19 @@ namespace xAOD { delete m_perigeeParameters; m_perigeeParameters=0; #endif // not XAOD_STANDALONE and not XAOD_MANACORE - static Accessor< float > acc1( "d0" ); + static const Accessor< float > acc1( "d0" ); acc1( *this ) = d0; - static Accessor< float > acc2( "z0" ); + static const Accessor< float > acc2( "z0" ); acc2( *this ) = z0; - static Accessor< float > acc3( "phi" ); + static const Accessor< float > acc3( "phi" ); acc3( *this ) = phi0; - static Accessor< float > acc4( "theta" ); + static const Accessor< float > acc4( "theta" ); acc4( *this ) = theta; - static Accessor< float > acc5( "oneOverP" ); + static const Accessor< float > acc5( "oneOverP" ); acc5( *this ) = oneOverP; return; @@ -149,7 +146,7 @@ namespace xAOD { m_perigeeParameters=0; #endif // not XAOD_STANDALONE and not XAOD_MANACORE - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); std::vector<float>& v = acc(*this); v.reserve(15); for (size_t irow = 0; irow<5; ++irow) @@ -158,7 +155,7 @@ namespace xAOD { } const xAOD::ParametersCovMatrix_t& NeutralParticle_v1::definingParametersCovMatrix() const { - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); std::vector<float> v = acc(*this); std::vector<float>::const_iterator it = v.begin(); static xAOD::ParametersCovMatrix_t cov; cov.setZero(); @@ -169,12 +166,12 @@ namespace xAOD { } const std::vector<float>& NeutralParticle_v1::definingParametersCovMatrixVec() const { - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); return acc(*this); } void NeutralParticle_v1::setDefiningParametersCovMatrixVec(const std::vector<float>& cov){ - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); acc(*this)=cov; } @@ -183,25 +180,25 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER(NeutralParticle_v1, float, vz) void NeutralParticle_v1::setParametersOrigin(float x, float y, float z){ - static Accessor< float > acc1( "vx" ); + static const Accessor< float > acc1( "vx" ); acc1( *this ) = x; - static Accessor< float > acc2( "vy" ); + static const Accessor< float > acc2( "vy" ); acc2( *this ) = y; - static Accessor< float > acc3( "vz" ); + static const Accessor< float > acc3( "vz" ); acc3( *this ) = z; } #if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) const Trk::NeutralPerigee& NeutralParticle_v1::perigeeParameters() const { - static Accessor< float > acc1( "d0" ); - static Accessor< float > acc2( "z0" ); - static Accessor< float > acc3( "phi" ); - static Accessor< float > acc4( "theta" ); - static Accessor< float > acc5( "oneOverP" ); - static Accessor< std::vector<float> > acc6( "definingParametersCovMatrix" ); + static const Accessor< float > acc1( "d0" ); + static const Accessor< float > acc2( "z0" ); + static const Accessor< float > acc3( "phi" ); + static const Accessor< float > acc4( "theta" ); + static const Accessor< float > acc5( "oneOverP" ); + static const Accessor< std::vector<float> > acc6( "definingParametersCovMatrix" ); ParametersCovMatrix_t* cov = new ParametersCovMatrix_t; cov->setZero(); auto it= acc6(*this).begin(); diff --git a/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx b/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx index 0bff0cc2dfc0..b77313167b24 100644 --- a/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx @@ -12,7 +12,7 @@ namespace xAOD { AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, uint64_t, identifier, setIdentifier) - static SG::AuxElement::Accessor<uint32_t> word_acc("dataword"); + static const SG::AuxElement::Accessor<uint32_t> word_acc("dataword"); void SCTRawHitValidation_v1::setWord(uint32_t new_word) { word_acc(*this) = new_word; } diff --git a/Event/xAOD/xAODTracking/Root/TrackMeasurementValidation_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackMeasurementValidation_v1.cxx index ad72b31b0440..e32d4038eb13 100644 --- a/Event/xAOD/xAODTracking/Root/TrackMeasurementValidation_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackMeasurementValidation_v1.cxx @@ -28,18 +28,18 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackMeasurementValidation_v1, float, localXYCorrelation ) void TrackMeasurementValidation_v1::setLocalPosition(float localX, float localY) { - static Accessor< float > acc1( "localX" ); + static const Accessor< float > acc1( "localX" ); acc1( *this ) = localX; - static Accessor< float > acc2( "localY" ); + static const Accessor< float > acc2( "localY" ); acc2( *this ) = localY; } void TrackMeasurementValidation_v1::setLocalPositionError(float localXError, float localYError, float localXYCorrelation) { - static Accessor< float > acc1( "localXError" ); + static const Accessor< float > acc1( "localXError" ); acc1( *this ) = localXError; - static Accessor< float > acc2( "localYError" ); + static const Accessor< float > acc2( "localYError" ); acc2( *this ) = localYError; - static Accessor< float > acc3( "localXYCorrelation" ); + static const Accessor< float > acc3( "localXYCorrelation" ); acc3( *this ) = localXYCorrelation; } @@ -48,11 +48,11 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackMeasurementValidation_v1, float, globalZ ) void TrackMeasurementValidation_v1::setGlobalPosition(float globalX, float globalY, float globalZ) { - static Accessor< float > acc1( "globalX" ); + static const Accessor< float > acc1( "globalX" ); acc1( *this ) = globalX; - static Accessor< float > acc2( "globalY" ); + static const Accessor< float > acc2( "globalY" ); acc2( *this ) = globalY; - static Accessor< float > acc3( "globalZ" ); + static const Accessor< float > acc3( "globalZ" ); acc3( *this ) = globalZ; } diff --git a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx index b650925380d8..d2a35ad677c3 100644 --- a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: TrackParticle_v1.cxx 576255 2013-12-19 12:54:41Z emoyse $ @@ -114,7 +114,7 @@ namespace xAOD { float TrackParticle_v1::phi0() const { - Accessor< float > acc( "phi" ); + static const Accessor< float > acc( "phi" ); return acc( *this ); } @@ -132,19 +132,19 @@ namespace xAOD { // reset perigee cache if existing if(m_perigeeParameters.isValid()) m_perigeeParameters.reset(); #endif // not XAOD_STANDALONE and not XAOD_MANACORE - static Accessor< float > acc1( "d0" ); + static const Accessor< float > acc1( "d0" ); acc1( *this ) = d0; - static Accessor< float > acc2( "z0" ); + static const Accessor< float > acc2( "z0" ); acc2( *this ) = z0; - static Accessor< float > acc3( "phi" ); + static const Accessor< float > acc3( "phi" ); acc3( *this ) = phi0; - static Accessor< float > acc4( "theta" ); + static const Accessor< float > acc4( "theta" ); acc4( *this ) = theta; - static Accessor< float > acc5( "qOverP" ); + static const Accessor< float > acc5( "qOverP" ); acc5( *this ) = qOverP; return; @@ -156,7 +156,7 @@ namespace xAOD { if(m_perigeeParameters.isValid()) m_perigeeParameters.reset(); #endif // not XAOD_STANDALONE and not XAOD_MANACORE - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); Amg::compress(cov,acc(*this)); } @@ -170,13 +170,13 @@ namespace xAOD { const std::vector<float>& TrackParticle_v1::definingParametersCovMatrixVec() const { // Can't use AUXSTORE_PRIMITIVE_SETTER_AND_GETTER since I have to add Vec to the end of setDefiningParametersCovMatrix to avoid clash. - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); return acc(*this); } void TrackParticle_v1::setDefiningParametersCovMatrixVec(const std::vector<float>& cov){ // Can't use AUXSTORE_PRIMITIVE_SETTER_AND_GETTER since I have to add Vec to the end of setDefiningParametersCovMatrix to avoid clash. - static Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); acc(*this)=cov; } @@ -185,13 +185,13 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER(TrackParticle_v1, float, vz) void TrackParticle_v1::setParametersOrigin(float x, float y, float z){ - static Accessor< float > acc1( "vx" ); + static const Accessor< float > acc1( "vx" ); acc1( *this ) = x; - static Accessor< float > acc2( "vy" ); + static const Accessor< float > acc2( "vy" ); acc2( *this ) = y; - static Accessor< float > acc3( "vz" ); + static const Accessor< float > acc3( "vz" ); acc3( *this ) = z; } @@ -204,20 +204,20 @@ namespace xAOD { // Perigee needs to be calculated, and cached - static Accessor< float > acc1( "d0" ); - static Accessor< float > acc2( "z0" ); - static Accessor< float > acc3( "phi" ); - static Accessor< float > acc4( "theta" ); - static Accessor< float > acc5( "qOverP" ); - static Accessor< std::vector<float> > acc6( "definingParametersCovMatrix" ); + static const Accessor< float > acc1( "d0" ); + static const Accessor< float > acc2( "z0" ); + static const Accessor< float > acc3( "phi" ); + static const Accessor< float > acc4( "theta" ); + static const Accessor< float > acc5( "qOverP" ); + static const Accessor< std::vector<float> > acc6( "definingParametersCovMatrix" ); ParametersCovMatrix_t* cov = new ParametersCovMatrix_t(definingParametersCovMatrix()); // cov->setZero(); // auto it= acc6(*this).begin(); // for (size_t irow = 0; irow<5; ++irow) // for (size_t icol =0; icol<=irow; ++icol) // cov->fillSymmetric(irow,icol,*it++) ; - static Accessor< float > acc7( "beamlineTiltX" ); - static Accessor< float > acc8( "beamlineTiltY" ); + static const Accessor< float > acc7( "beamlineTiltX" ); + static const Accessor< float > acc8( "beamlineTiltY" ); if(!acc7.isAvailable( *this ) || !acc8.isAvailable( *this )){ Trk::Perigee tmpPerigeeParameters(acc1(*this),acc2(*this),acc3(*this),acc4(*this),acc5(*this),Trk::PerigeeSurface(Amg::Vector3D(vx(),vy(),vz())),cov); @@ -241,9 +241,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER(TrackParticle_v1, float, numberDoF) void TrackParticle_v1::setFitQuality(float chiSquared, float numberDoF){ - static Accessor< float > acc1( "chiSquared" ); + static const Accessor< float > acc1( "chiSquared" ); acc1( *this ) = chiSquared; - static Accessor< float > acc2( "numberDoF" ); + static const Accessor< float > acc2( "numberDoF" ); acc2( *this ) = numberDoF; } @@ -261,7 +261,7 @@ namespace xAOD { size_t TrackParticle_v1::numberOfParameters() const{ ///@todo - Can we do this in a better way? Not great to force retrieval of one specific parameter - any would do. - static Accessor< std::vector<float> > acc( "parameterX" ); + static const Accessor< std::vector<float> > acc( "parameterX" ); if(! acc.isAvailable( *this )) return 0; return acc(*this).size(); } @@ -274,14 +274,14 @@ namespace xAOD { } void TrackParticle_v1::setTrackParameters(std::vector<std::vector<float> >& parameters){ - static Accessor< std::vector < float > > acc1( "parameterX" ); - static Accessor< std::vector < float > > acc2( "parameterY" ); - static Accessor< std::vector < float > > acc3( "parameterZ" ); - static Accessor< std::vector < float > > acc4( "parameterPX" ); - static Accessor< std::vector < float > > acc5( "parameterPY" ); - static Accessor< std::vector < float > > acc6( "parameterPZ" ); + static const Accessor< std::vector < float > > acc1( "parameterX" ); + static const Accessor< std::vector < float > > acc2( "parameterY" ); + static const Accessor< std::vector < float > > acc3( "parameterZ" ); + static const Accessor< std::vector < float > > acc4( "parameterPX" ); + static const Accessor< std::vector < float > > acc5( "parameterPY" ); + static const Accessor< std::vector < float > > acc6( "parameterPZ" ); - static Accessor< std::vector<uint8_t> > acc7( "parameterPosition" ); + static const Accessor< std::vector<uint8_t> > acc7( "parameterPosition" ); acc1(*this).resize(parameters.size()); acc2(*this).resize(parameters.size()); @@ -308,38 +308,38 @@ namespace xAOD { } float TrackParticle_v1::parameterX(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterX" ); + static const Accessor< std::vector<float> > acc( "parameterX" ); return acc(*this).at(index); } float TrackParticle_v1::parameterY(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterY" ); + static const Accessor< std::vector<float> > acc( "parameterY" ); return acc(*this).at(index); } float TrackParticle_v1::parameterZ(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterZ" ); + static const Accessor< std::vector<float> > acc( "parameterZ" ); return acc(*this).at(index); } float TrackParticle_v1::parameterPX(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterPX" ); + static const Accessor< std::vector<float> > acc( "parameterPX" ); return acc(*this).at(index); } float TrackParticle_v1::parameterPY(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterPY" ); + static const Accessor< std::vector<float> > acc( "parameterPY" ); return acc(*this).at(index); } float TrackParticle_v1::parameterPZ(unsigned int index) const { - static Accessor< std::vector<float> > acc( "parameterPZ" ); + static const Accessor< std::vector<float> > acc( "parameterPZ" ); return acc(*this).at(index); } xAOD::ParametersCovMatrix_t TrackParticle_v1::trackParameterCovarianceMatrix(unsigned int index) const { - static Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" ); + static const Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" ); unsigned int offset = index*15; // copy the correct values into the temp matrix xAOD::ParametersCovMatrix_t tmp; @@ -351,7 +351,7 @@ namespace xAOD { void TrackParticle_v1::setTrackParameterCovarianceMatrix(unsigned int index, std::vector<float>& cov){ assert(cov.size()==15); unsigned int offset = index*15; - static Accessor< std::vector < float > > acc( "trackParameterCovarianceMatrices" ); + static const Accessor< std::vector < float > > acc( "trackParameterCovarianceMatrices" ); std::vector<float>& v = acc(*this); v.resize(offset+15); std::copy(cov.begin(),cov.end(),v.begin()+offset ); @@ -359,7 +359,7 @@ namespace xAOD { xAOD::ParameterPosition TrackParticle_v1::parameterPosition(unsigned int index) const { - static Accessor< std::vector<uint8_t> > acc( "parameterPosition" ); + static const Accessor< std::vector<uint8_t> > acc( "parameterPosition" ); return static_cast<xAOD::ParameterPosition>(acc(*this).at(index)); } @@ -378,14 +378,14 @@ namespace xAOD { } void TrackParticle_v1::setParameterPosition(unsigned int index, xAOD::ParameterPosition pos){ - static Accessor< std::vector<uint8_t> > acc( "parameterPosition" ); + static const Accessor< std::vector<uint8_t> > acc( "parameterPosition" ); acc( *this ).at(index) = static_cast<uint8_t>(pos); } #if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) const Trk::CurvilinearParameters TrackParticle_v1::curvilinearParameters(unsigned int index) const { - static Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" ); + static const Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" ); unsigned int offset = index*15; // copy the correct values into the temp matrix ParametersCovMatrix_t* cov = new ParametersCovMatrix_t(); @@ -407,18 +407,18 @@ namespace xAOD { AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(TrackParticle_v1, uint8_t, xAOD::TrackFitter,trackFitter, setTrackFitter) std::bitset<xAOD::NumberOfTrackRecoInfo> TrackParticle_v1::patternRecoInfo() const { - static Accessor< uint64_t > acc( "patternRecoInfo" ); + static const Accessor< uint64_t > acc( "patternRecoInfo" ); std::bitset<xAOD::NumberOfTrackRecoInfo> tmp(acc(*this)); return tmp; } void TrackParticle_v1::setPatternRecognitionInfo(uint64_t patternReco) { - static Accessor< uint64_t > acc( "patternRecoInfo" ); + static const Accessor< uint64_t > acc( "patternRecoInfo" ); acc( *this ) = patternReco; } void TrackParticle_v1::setPatternRecognitionInfo(const std::bitset<xAOD::NumberOfTrackRecoInfo>& patternReco) { - static Accessor< uint64_t > acc( "patternRecoInfo" ); + static const Accessor< uint64_t > acc( "patternRecoInfo" ); #if __cplusplus < 201100 uint64_t value = 0; unsigned int i = 0; @@ -436,7 +436,7 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(TrackParticle_v1, uint8_t, xAOD::ParticleHypothesis, particleHypothesis) bool TrackParticle_v1::summaryValue(uint8_t& value, const SummaryType &information) const { - xAOD::TrackParticle_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); + const xAOD::TrackParticle_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); if( ( ! acc ) || ( ! acc->isAvailable( *this ) ) ) return false; // Retrieve the value: value = ( *acc )( *this ); @@ -444,7 +444,7 @@ namespace xAOD { } bool TrackParticle_v1::summaryValue(float& value, const SummaryType &information) const { - xAOD::TrackParticle_v1::Accessor< float >* acc = trackSummaryAccessorV1<float>( information ); + const xAOD::TrackParticle_v1::Accessor< float >* acc = trackSummaryAccessorV1<float>( information ); if( ( ! acc ) || ( ! acc->isAvailable( *this ) ) ) return false; // Retrieve the value: value = ( *acc )( *this ); @@ -452,13 +452,13 @@ namespace xAOD { } void TrackParticle_v1::setSummaryValue(uint8_t& value, const SummaryType &information){ - xAOD::TrackParticle_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); + const xAOD::TrackParticle_v1::Accessor< uint8_t >* acc = trackSummaryAccessorV1<uint8_t>( information ); // Set the value: ( *acc )( *this ) = value; } void TrackParticle_v1::setSummaryValue(float& value, const SummaryType &information){ - xAOD::TrackParticle_v1::Accessor< float >* acc = trackSummaryAccessorV1<float>( information ); + const xAOD::TrackParticle_v1::Accessor< float >* acc = trackSummaryAccessorV1<float>( information ); // Set the value: ( *acc )( *this ) = value; } @@ -474,7 +474,7 @@ namespace xAOD { const ElementLink< TrackCollection >& TrackParticle_v1::trackLink() const { // The accessor: - static ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" ); + static const ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" ); // Check if one of them is available: if( acc.isAvailable( *this ) ) { @@ -490,7 +490,7 @@ namespace xAOD { setTrackLink( const ElementLink< TrackCollection >& el ) { // The accessor: - static Accessor< ElementLink< TrackCollection > > acc( "trackLink" ); + static const Accessor< ElementLink< TrackCollection > > acc( "trackLink" ); // Do the deed: acc( *this ) = el; @@ -500,7 +500,7 @@ namespace xAOD { const Trk::Track* TrackParticle_v1::track() const{ // The accessor: - static ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" ); + static const ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" ); if( ! acc.isAvailable( *this ) ) { return 0; diff --git a/Event/xAOD/xAODTracking/Root/TrackParticlexAODHelpers.cxx b/Event/xAOD/xAODTracking/Root/TrackParticlexAODHelpers.cxx index cbcd352045fc..b0a50ce96a79 100644 --- a/Event/xAOD/xAODTracking/Root/TrackParticlexAODHelpers.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackParticlexAODHelpers.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "xAODTracking/TrackParticlexAODHelpers.h" @@ -14,7 +14,7 @@ namespace xAOD { if (!tp) { throw std::runtime_error("Invalid TrackParticle pointer."); } - static SG::AuxElement::Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const SG::AuxElement::Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); if( !acc.isAvailable( *tp ) ) { throw std::runtime_error("TrackParticle without covariance matrix for the defining parameters."); } @@ -23,7 +23,7 @@ namespace xAOD { bool TrackingHelpers::hasValidCov(const xAOD::TrackParticle *tp) { if (!tp) return false; - static SG::AuxElement::Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); + static const SG::AuxElement::Accessor< std::vector<float> > acc( "definingParametersCovMatrix" ); if( !acc.isAvailable( *tp ) ) return false; return true; } diff --git a/Event/xAOD/xAODTracking/Root/TrackStateValidation_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackStateValidation_v1.cxx index b2de1432252f..a7b27f3fd077 100644 --- a/Event/xAOD/xAODTracking/Root/TrackStateValidation_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackStateValidation_v1.cxx @@ -25,9 +25,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, localY ) void TrackStateValidation_v1::setLocalPosition(float localX, float localY) { - static Accessor< float > acc1( "localX" ); + static const Accessor< float > acc1( "localX" ); acc1( *this ) = localX; - static Accessor< float > acc2( "localY" ); + static const Accessor< float > acc2( "localY" ); acc2( *this ) = localY; } @@ -35,9 +35,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, localPhi ) void TrackStateValidation_v1::setLocalAngles(float localTheta, float localPhi) { - static Accessor< float > acc1( "localTheta" ); + static const Accessor< float > acc1( "localTheta" ); acc1( *this ) = localTheta; - static Accessor< float > acc2( "localPhi" ); + static const Accessor< float > acc2( "localPhi" ); acc2( *this ) = localPhi; } @@ -45,9 +45,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, unbiasedResidualY ) void TrackStateValidation_v1::setUnbiasedResidual(float unbiasedResidualX, float unbiasedResidualY) { - static Accessor< float > acc1( "unbiasedResidualX" ); + static const Accessor< float > acc1( "unbiasedResidualX" ); acc1( *this ) = unbiasedResidualX; - static Accessor< float > acc2( "unbiasedResidualY" ); + static const Accessor< float > acc2( "unbiasedResidualY" ); acc2( *this ) = unbiasedResidualY; } @@ -55,9 +55,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, unbiasedPullY ) void TrackStateValidation_v1::setUnbiasedPull(float unbiasedPullX, float unbiasedPullY) { - static Accessor< float > acc1( "unbiasedPullX" ); + static const Accessor< float > acc1( "unbiasedPullX" ); acc1( *this ) = unbiasedPullX; - static Accessor< float > acc2( "unbiasedPullY" ); + static const Accessor< float > acc2( "unbiasedPullY" ); acc2( *this ) = unbiasedPullY; } @@ -65,9 +65,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, biasedResidualY ) void TrackStateValidation_v1::setBiasedResidual(float biasedResidualX, float biasedResidualY) { - static Accessor< float > acc1( "biasedResidualX" ); + static const Accessor< float > acc1( "biasedResidualX" ); acc1( *this ) = biasedResidualX; - static Accessor< float > acc2( "biasedResidualY" ); + static const Accessor< float > acc2( "biasedResidualY" ); acc2( *this ) = biasedResidualY; } @@ -75,9 +75,9 @@ namespace xAOD { AUXSTORE_PRIMITIVE_GETTER( TrackStateValidation_v1, float, biasedPullY ) void TrackStateValidation_v1::setBiasedPull(float biasedPullX, float biasedPullY) { - static Accessor< float > acc1( "biasedPullX" ); + static const Accessor< float > acc1( "biasedPullX" ); acc1( *this ) = biasedPullX; - static Accessor< float > acc2( "biasedPullY" ); + static const Accessor< float > acc2( "biasedPullY" ); acc2( *this ) = biasedPullY; } diff --git a/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx index e21a165e0e84..504724992f39 100644 --- a/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackSummaryAccessors_v1.cxx @@ -17,7 +17,7 @@ extern "C" { #define DEFINE_ACCESSOR(TYPE, NAME ) \ case xAOD::NAME: \ { \ - static SG::AuxElement::Accessor< TYPE > a( #NAME ); \ + static const SG::AuxElement::Accessor< TYPE > a( #NAME ); \ return &a; \ } \ break; @@ -26,39 +26,39 @@ namespace xAOD { // Generic case. Maybe return warning? template<class T> - SG::AuxElement::Accessor< T >* + const SG::AuxElement::Accessor< T >* trackSummaryAccessorV1( xAOD::SummaryType /*type*/ ) {} template<> - SG::AuxElement::Accessor< uint8_t >* + const SG::AuxElement::Accessor< uint8_t >* trackSummaryAccessorV1<uint8_t>( xAOD::SummaryType type ) { switch( type ) { DEFINE_ACCESSOR( uint8_t, numberOfContribPixelLayers ); case xAOD:: numberOfBLayerHits: { - static SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerHits" ); - return &a; + static const SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerHits" ); + return &a; } break; case xAOD:: numberOfBLayerOutliers: { - static SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerOutliers" ); - return &a; + static const SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerOutliers" ); + return &a; } break; case xAOD:: numberOfBLayerSharedHits: { - static SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerSharedHits" ); - return &a; + static const SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerSharedHits" ); + return &a; } break; case xAOD:: numberOfBLayerSplitHits: { - static SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerSplitHits" ); + static const SG::AuxElement::Accessor< uint8_t > a( "numberOfInnermostPixelLayerSplitHits" ); return &a; } break; case xAOD:: expectBLayerHit: { - static SG::AuxElement::Accessor< uint8_t > a( "expectInnermostPixelLayerHit" ); - return &a; + static const SG::AuxElement::Accessor< uint8_t > a( "expectInnermostPixelLayerHit" ); + return &a; } break; DEFINE_ACCESSOR( uint8_t, numberOfPixelHits ); @@ -66,21 +66,21 @@ namespace xAOD { DEFINE_ACCESSOR( uint8_t, numberOfPixelHoles ); DEFINE_ACCESSOR( uint8_t, numberOfPixelSharedHits ); DEFINE_ACCESSOR( uint8_t, numberOfPixelSplitHits ); - DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerHits ); + DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerHits ); DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerOutliers ); DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerSharedHits ); - DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerSplitHits ); + DEFINE_ACCESSOR( uint8_t, numberOfInnermostPixelLayerSplitHits ); DEFINE_ACCESSOR( uint8_t, expectInnermostPixelLayerHit ); - DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerHits ); + DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerHits ); DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerOutliers ); DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerSharedHits ); - DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerSplitHits ); + DEFINE_ACCESSOR( uint8_t, numberOfNextToInnermostPixelLayerSplitHits ); DEFINE_ACCESSOR( uint8_t, expectNextToInnermostPixelLayerHit ); DEFINE_ACCESSOR( uint8_t, numberOfGangedPixels ); DEFINE_ACCESSOR( uint8_t, numberOfGangedFlaggedFakes ); DEFINE_ACCESSOR( uint8_t, numberOfPixelDeadSensors ); DEFINE_ACCESSOR( uint8_t, numberOfPixelSpoiltHits ); - DEFINE_ACCESSOR( uint8_t, numberOfDBMHits ); + DEFINE_ACCESSOR( uint8_t, numberOfDBMHits ); DEFINE_ACCESSOR( uint8_t, numberOfSCTHits ); DEFINE_ACCESSOR( uint8_t, numberOfSCTOutliers ); DEFINE_ACCESSOR( uint8_t, numberOfSCTHoles ); @@ -97,7 +97,7 @@ namespace xAOD { DEFINE_ACCESSOR( uint8_t, numberOfTRTDeadStraws ); DEFINE_ACCESSOR( uint8_t, numberOfTRTTubeHits ); DEFINE_ACCESSOR( uint8_t, numberOfTRTXenonHits ); - DEFINE_ACCESSOR( uint8_t, numberOfTRTSharedHits ); + DEFINE_ACCESSOR( uint8_t, numberOfTRTSharedHits ); DEFINE_ACCESSOR( uint8_t, numberOfPrecisionLayers ); DEFINE_ACCESSOR( uint8_t, numberOfPrecisionHoleLayers ); DEFINE_ACCESSOR( uint8_t, numberOfPhiLayers ); @@ -106,7 +106,7 @@ namespace xAOD { DEFINE_ACCESSOR( uint8_t, numberOfTriggerEtaHoleLayers ); DEFINE_ACCESSOR( uint8_t, numberOfOutliersOnTrack ); DEFINE_ACCESSOR( uint8_t, standardDeviationOfChi2OS ); - DEFINE_ACCESSOR( uint8_t, numberOfGoodPrecisionLayers ); + DEFINE_ACCESSOR( uint8_t, numberOfGoodPrecisionLayers ); default: std::cerr << "xAOD::TrackParticle_v1 ERROR Unknown SummaryType (" << type << ") requested" << std::endl; @@ -115,14 +115,14 @@ namespace xAOD { } template<> - SG::AuxElement::Accessor< float >* + const SG::AuxElement::Accessor< float >* trackSummaryAccessorV1<float>( xAOD::SummaryType type ) { switch( type ) { DEFINE_ACCESSOR( float, eProbabilityComb ); DEFINE_ACCESSOR( float, eProbabilityHT ); // DEFINE_ACCESSOR( float, eProbabilityToT ); // DEFINE_ACCESSOR( float, eProbabilityBrem ); - DEFINE_ACCESSOR( float, pixeldEdx ); + DEFINE_ACCESSOR( float, pixeldEdx ); default: std::cerr << "xAOD::TrackParticle_v1 ERROR Unknown SummaryType (" << type << ") requested" << std::endl; diff --git a/Event/xAOD/xAODTracking/Root/Vertex_v1.cxx b/Event/xAOD/xAODTracking/Root/Vertex_v1.cxx index 324ce8d2afc8..3ea2499b4201 100644 --- a/Event/xAOD/xAODTracking/Root/Vertex_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/Vertex_v1.cxx @@ -151,8 +151,8 @@ namespace xAOD { void Vertex_v1::setFitQuality( float chiSquared, float numberDoF ) { - static Accessor< float > acc1( "chiSquared" ); - static Accessor< float > acc2( "numberDoF" ); + static const Accessor< float > acc1( "chiSquared" ); + static const Accessor< float > acc2( "numberDoF" ); acc1( *this ) = chiSquared; acc2( *this ) = numberDoF; @@ -169,7 +169,7 @@ namespace xAOD { #if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) /// Helper object for implementing the vxTrackAtVertex functions - static SG::AuxElement::Accessor< std::vector< Trk::VxTrackAtVertex > > + static const SG::AuxElement::Accessor< std::vector< Trk::VxTrackAtVertex > > vxVertAcc( "vxTrackAtVertex" ); /// This function can be used to attach an Athena-only, reconstruction @@ -220,17 +220,17 @@ namespace xAOD { // /// Accessor for the track links - static SG::AuxElement::Accessor< Vertex_v1::TrackParticleLinks_t > + static const SG::AuxElement::Accessor< Vertex_v1::TrackParticleLinks_t > trackAcc( "trackParticleLinks" ); /// Accessor for the track weights - static SG::AuxElement::Accessor< std::vector< float > > + static const SG::AuxElement::Accessor< std::vector< float > > weightTrackAcc( "trackWeights" ); /// Accessor for the neutral links - static SG::AuxElement::Accessor< Vertex_v1::NeutralParticleLinks_t > + static const SG::AuxElement::Accessor< Vertex_v1::NeutralParticleLinks_t > neutralAcc( "neutralParticleLinks" ); /// Accessor for the neutral weights - static SG::AuxElement::Accessor< std::vector< float > > + static const SG::AuxElement::Accessor< std::vector< float > > weightNeutralAcc( "neutralWeights" ); AUXSTORE_OBJECT_SETTER_AND_GETTER( Vertex_v1, diff --git a/Event/xAOD/xAODTracking/test/xAODTracking_TrackParticle_test.cxx b/Event/xAOD/xAODTracking/test/xAODTracking_TrackParticle_test.cxx index 312770270884..d504ce03b47e 100644 --- a/Event/xAOD/xAODTracking/test/xAODTracking_TrackParticle_test.cxx +++ b/Event/xAOD/xAODTracking/test/xAODTracking_TrackParticle_test.cxx @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -// $Id: xAODTracking_TrackParticle_test.cxx 606456 2014-07-15 09:20:53Z emoyse $ // System include(s): #include <iostream> @@ -46,7 +45,7 @@ void fill( xAOD::TrackParticle& tp ) { { 0.0, 1.0, 2.0, 3.0, 4.0, 5.0 }, { 6.0, 7.0, 8.0, 9.0, 10.0, 11.0 } }; - static std::vector< std::vector< float > > parametersVec; + std::vector< std::vector< float > > parametersVec; if( ! parametersVec.size() ) { for( int i = 0; i < 2; ++i ) { std::vector< float > temp( parameters[ i ], diff --git a/Event/xAOD/xAODTracking/xAODTracking/TrackSummaryAccessors_v1.h b/Event/xAOD/xAODTracking/xAODTracking/TrackSummaryAccessors_v1.h index 390b4d94e443..fc08a249a11b 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/TrackSummaryAccessors_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/TrackSummaryAccessors_v1.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-2019 CERN for the benefit of the ATLAS collaboration */ -// $Id: TrackSummaryAccessors_v1.h 574227 2013-12-06 14:20:39Z emoyse $ #ifndef XAOD_TRACKSUMMARYACCESSORS_V1_H #define XAOD_TRACKSUMMARYACCESSORS_V1_H @@ -22,7 +21,7 @@ namespace xAOD { /// TrackParticle_v1 object at runtime to get/set summary values on themselves. /// template <class T> - SG::AuxElement::Accessor< T >* + const SG::AuxElement::Accessor< T >* trackSummaryAccessorV1( xAOD::SummaryType type ); } // namespace xAOD diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h index 3b93bf959cab..49eb0ca4ee6e 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.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: NeutralParticle_v1.h 573493 2013-12-03 13:05:51Z emoyse $ #ifndef XAODTRACKING_VERSIONS_NEUTRALPARTICLE_V1_H #define XAODTRACKING_VERSIONS_NEUTRALPARTICLE_V1_H @@ -43,10 +42,10 @@ namespace xAOD { NeutralParticle_v1(); /// Destructor ~NeutralParticle_v1(); - /// Copy ctor. This involves copying the entire Auxilary store, and is a slow operation which should be used sparingly. - NeutralParticle_v1(const NeutralParticle_v1& o ); - /// Assignment operator. This can involve creating and copying an Auxilary store, and so should be used sparingly. - NeutralParticle_v1& operator=(const NeutralParticle_v1& tp ); + /// Copy ctor. This involves copying the entire Auxilary store, and is a slow operation which should be used sparingly. + NeutralParticle_v1(const NeutralParticle_v1& o ); + /// Assignment operator. This can involve creating and copying an Auxilary store, and so should be used sparingly. + NeutralParticle_v1& operator=(const NeutralParticle_v1& tp ); /// @name xAOD::IParticle functions /// @{ -- GitLab From 6484e06c75f626ca0b28201ec0cd9a131aa68aa8 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 22:08:28 +0100 Subject: [PATCH 140/192] TileRecUtils: Update reference files. Fix test failures in master. --- .../share/TileDQstatusAlg_test.ref | 94 +++++++++--------- .../share/TileDQstatusTool_test.ref | 96 +++++++++--------- .../share/TileRawChannelBuilder_test.ref | 98 +++++++++---------- 3 files changed, 144 insertions(+), 144 deletions(-) diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref index e2100d1b7200..3fc8d93852d2 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref @@ -1,14 +1,14 @@ -Mon Dec 17 02:29:02 CET 2018 +Sat Jan 26 19:47:02 CET 2019 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/d6d3116653c] -- built on [2018-12-16T1848] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc8-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5459 configurables from 51 genConfDb files +Py:ConfigurableDb INFO Read module info for 5455 configurables from 76 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,7 +28,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus073.cern.ch on Mon Dec 17 02:29:22 2018 + running on lxplus063.cern.ch on Sat Jan 26 19:47:29 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -36,7 +36,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 6864 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 6914 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 @@ -45,8 +45,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-12-15T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus073.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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus063.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 @@ -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 1919 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1876 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= 28576Kb Time = 1.56S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23968Kb Time = 0.86S 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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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 @@ -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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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. @@ -229,11 +229,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.62S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3576Kb Time = 0.21S 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-12-15T2259/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-15T2259/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-15T2259/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-15T2259/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-15T2259/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/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 @@ -312,7 +312,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 4876 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 4754 CLIDRegistry entries for module ALL PyComponentMgr INFO Initializing PyComponentMgr... record1 INFO Initializing record1... check1 INFO Initializing check1... @@ -358,12 +358,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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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 @@ -392,7 +392,7 @@ 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 -ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL 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 <<<=== @@ -413,32 +413,32 @@ check1 INFO Finalizing check1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.95 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 1.31 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 1.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.99 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.57 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.63 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.58 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.56 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.81 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 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.05 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 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.51 ))s -IOVDbSvc INFO bytes in (( 8.05 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 1.13 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 1.27 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.87 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 1.00 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.93 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.84 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 3.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.78 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643800 (( 1.01 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97908 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.68 ))s +IOVDbSvc INFO bytes in (( 11.66 ))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.46 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 6.59 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 1.81 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 9.85 ))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.76 [s] Ave/Min/Max= 0.38(+- 0.36)/ 0.02/ 0.74 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1 [s] Ave/Min/Max=0.0769(+-0.224)/ 0/ 0.84 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 63.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.51 [s] Ave/Min/Max=0.255(+-0.245)/ 0.01/ 0.5 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.61 [s] Ave/Min/Max=0.0469(+-0.144)/ 0/ 0.54 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 37.1 [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 6918313d4c69..ea1b58932da5 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref @@ -1,14 +1,14 @@ -Mon Dec 17 02:46:42 CET 2018 +Sat Jan 26 19:39:33 CET 2019 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/d6d3116653c] -- built on [2018-12-16T1848] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc8-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5459 configurables from 51 genConfDb files +Py:ConfigurableDb INFO Read module info for 5455 configurables from 76 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,7 +28,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus073.cern.ch on Mon Dec 17 02:47:02 2018 + running on lxplus063.cern.ch on Sat Jan 26 19:39:57 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -36,7 +36,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 6864 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 6914 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 @@ -45,8 +45,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-12-15T2259/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus073.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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus063.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 @@ -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 1919 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1876 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= 28576Kb Time = 1.51S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23968Kb Time = 0.6S 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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/TileNeighbour_reduced.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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 @@ -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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal2DNeighbors-April2011.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsNext-April2011.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCal3DNeighborsPrev-April2011.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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. @@ -229,11 +229,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.68S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3576Kb Time = 0.23S 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-12-15T2259/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-15T2259/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-15T2259/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-15T2259/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-15T2259/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/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 @@ -314,7 +314,7 @@ TileSampleNoise... INFO Creating TileCondProxyCool(TileSampleNoiseCondAlg.Tile TileTimingCondA... INFO Creating TileCondProxyCool(TileTimingCondAlg.TileCondProxyCool_AdcOffset) for folder: "/TILE/OFL02/TIME/CHANNELOFFSET/PHY" PyComponentMgr INFO Initializing PyComponentMgr... test1 INFO Initializing test1... -ClassIDSvc INFO getRegistryEntries: read 5660 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 5500 CLIDRegistry entries for module ALL HistogramPersis...WARNING Histograms saving not required. ApplicationMgr INFO Application Manager Initialized successfully CondInputLoader INFO created CondCont<CondAttrListCollection> with key 'ConditionStore+/TILE/OFL02/CALIB/CES' @@ -356,12 +356,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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID INFO Reading file /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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 /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-slc6-gcc62-dbg/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2352/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 @@ -391,8 +391,8 @@ TileBadChannels... INFO TileBchStatus::isNoGainL1() is defined by: ADC dead; N TileBadChannels... INFO TileBchStatus::isBadTiming() is defined by: Bad timing; Online bad timing; TileBadChannels... INFO No drawer trips probabilities found in DB *** Starting test1 -ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -ClassIDSvc INFO getRegistryEntries: read 154 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 177 CLIDRegistry entries for module ALL *** Starting test2 *** Starting test3 *** Starting test4 @@ -416,32 +416,32 @@ test1 INFO Finalizing test1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.07 ))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.04 ))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.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.04 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 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.05 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 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 (( 0.62 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 4.29 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.94 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.78 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.71 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 1.31 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.76 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.57 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.60 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643800 (( 0.84 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97908 (( 1.66 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 1.33 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.08 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.58 ))s +IOVDbSvc INFO bytes in (( 14.44 ))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.09 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.53 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 4.87 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 9.58 ))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.66 [s] Ave/Min/Max= 0.33(+- 0.31)/ 0.02/ 0.64 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.92 [s] Ave/Min/Max=0.0708(+-0.198)/ 0/ 0.74 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 69.1 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 460 [ms] Ave/Min/Max= 230(+- 230)/ 0/ 460 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.56 [s] Ave/Min/Max=0.0431(+- 0.13)/ 0/ 0.49 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 40.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 43a1b469be9d..2e03a591379f 100644 --- a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref @@ -1,14 +1,14 @@ -Thu Jan 3 16:25:19 CET 2019 +Sat Jan 26 19:47:02 CET 2019 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-work3g/be87ec46e65] -- built on [2019-01-03T1609] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc8-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5435 configurables from 6 genConfDb files +Py:ConfigurableDb INFO Read module info for 5455 configurables from 76 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,7 +28,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus064.cern.ch on Thu Jan 3 16:25:37 2019 + running on lxplus063.cern.ch on Sat Jan 26 19:47:29 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -36,7 +36,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 6912 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 6914 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 @@ -45,8 +45,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/2019-01-02T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus064.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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus063.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 @@ -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 1871 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 1876 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= 22940Kb Time = 0.66S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22944Kb Time = 0.55S 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/2019-01-02T2256/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/2019-01-25T2352/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 @@ -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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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. @@ -229,11 +229,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.2S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3576Kb Time = 0.22S 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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/Athena/22.0.1/InstallArea/x86_64-slc6-gcc8-opt/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 @@ -313,7 +313,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond 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 504 CLIDRegistry entries for module ALL -ClassIDSvc INFO getRegistryEntries: read 4846 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 4754 CLIDRegistry entries for module ALL xAODMaker::Even... INFO Initializing - Package version: xAODEventInfoCnv-00-00-00 xAODMaker::Even... INFO Initializing - Package version: xAODEventInfoCnv-00-00-00 xAODMaker::Even...WARNING Beam conditions service not available @@ -323,7 +323,7 @@ xAODMaker::Even... INFO Will take information from the EventInfo object PyComponentMgr INFO Initializing PyComponentMgr... prepalg1 INFO Initializing prepalg1... testalg1 INFO Initializing testalg1... -ClassIDSvc INFO getRegistryEntries: read 532 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 478 CLIDRegistry entries for module ALL ToolSvc.tool1 INFO TileRawChannelBuilder::initialize() ToolSvc.tool2 INFO TileRawChannelBuilder::initialize() ToolSvc.tool2.n... INFO Initializing... @@ -368,12 +368,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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-02T2256/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-25T2352/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/2019-01-02T2256/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/2019-01-25T2352/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 @@ -403,8 +403,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 -ClassIDSvc INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -ClassIDSvc INFO getRegistryEntries: read 154 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 177 CLIDRegistry entries for module ALL AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<=== 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 <<<=== @@ -427,23 +427,23 @@ testalg1 INFO Finalizing testalg1... IncidentProcAlg2 INFO Finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/170 (( 0.04 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/103344 (( 0.03 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/80 (( 0.03 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/92 (( 0.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/940 (( 0.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/72 (( 0.03 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/76 (( 0.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/641476 (( 0.13 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97884 (( 0.79 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.88 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 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.02 ))s -IOVDbSvc INFO bytes in (( 2.10 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 2.86 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 2.12 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.88 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.79 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.69 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.69 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.80 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 6.88 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643800 (( 0.83 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/97908 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.53 ))s +IOVDbSvc INFO bytes in (( 17.12 ))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.07 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 2.03 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 3.38 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 13.74 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -452,9 +452,9 @@ ToolSvc.tool1 INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 430 [ms] Ave/Min/Max= 215(+- 205)/ 10/ 420 [ms] #= 2 -cObj_ALL INFO Time User : Tot= 0.55 [s] Ave/Min/Max=0.0423(+-0.123)/ 0/ 0.46 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 46.1 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 490 [ms] Ave/Min/Max= 245(+- 235)/ 10/ 480 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.6 [s] Ave/Min/Max=0.0462(+-0.138)/ 0/ 0.52 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 38.3 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully -- GitLab From 0915f0d9871bbc57931498d285f252787214025f Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 22:11:39 +0100 Subject: [PATCH 141/192] TileByteStream: Update reference files. Fix test failures in master. --- .../TileBeamElemContByteStreamCnv_test.ref | 154 +++--- .../TileDigitsContByteStreamCnv_test.ref | 448 ++++++++-------- .../share/TileL2ContByteStreamCnv_test.ref | 296 +++++----- .../share/TileLaserObjByteStreamCnv_test.ref | 462 ++++++++-------- .../share/TileMuRcvContByteStreamCnv_test.ref | 504 +++++++++--------- .../TileRawChannelContByteStreamCnv_test.ref | 432 +++++++-------- 6 files changed, 1148 insertions(+), 1148 deletions(-) diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref index d8f490c66023..f7dc11d9443d 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 02:18:29 CET 2019 +Sat Jan 26 19:46:28 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:18:58 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:46:52 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.63S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23964Kb Time = 0.65S 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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -250,11 +250,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.75S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.25S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -422,7 +422,7 @@ 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 -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed AthenaEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 1 events processed so far <<<=== @@ -640,23 +640,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.47 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.62 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.51 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.51 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.42 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.47 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.50 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.49 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.59 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.68 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.53 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.06 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.35 ))s -IOVDbSvc INFO bytes in (( 6.22 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 3.69 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.81 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 1.40 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.86 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.88 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.54 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.52 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.54 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 3.88 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.61 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.83 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.04 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.88 ))s +IOVDbSvc INFO bytes in (( 15.48 ))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.82 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 5.40 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 4.58 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 10.91 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -665,18 +665,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.77 [s] Ave/Min/Max=0.385(+-0.365)/ 0.02/ 0.75 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.98 [s] Ave/Min/Max=0.0754(+-0.221)/ 0/ 0.83 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 26.5 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 450 [ms] Ave/Min/Max= 225(+- 225)/ 0/ 450 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.55 [s] Ave/Min/Max=0.0423(+-0.128)/ 0/ 0.48 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 10.7 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 02:19:56 CET 2019 +Sat Jan 26 19:47:37 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -685,7 +685,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -712,7 +712,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:20:28 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:48:01 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -728,8 +728,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -871,7 +871,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.58S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.69S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -883,7 +883,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -895,9 +895,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -928,11 +928,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.76S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.21S 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 @@ -954,11 +954,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1078,12 +1078,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1091,7 +1091,7 @@ Domain[ROOT_All] 0 0 INFO -> Access DbDatabase Domain[ROOT_All] 0 0 INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +ClassIDSvc 0 0 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed @@ -1294,7 +1294,7 @@ AthenaHiveEventLoopMgr INFO ===>>> done processin AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 0, 98 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 1, 99 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 3, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 25.7376 +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 14.0322 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1312,7 +1312,7 @@ AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.56 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.68 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1324,10 +1324,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.46 ))s -IOVDbSvc INFO bytes in (( 1.02 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.45 ))s +IOVDbSvc INFO bytes in (( 1.13 ))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.02 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 1.13 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1337,9 +1337,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... 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.04 [s] Ave/Min/Max= 0.52(+- 0.37)/ 0.15/ 0.89 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 24.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.61 [s] Ave/Min/Max=0.305(+-0.295)/ 0.01/ 0.6 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.76 [s] Ave/Min/Max= 0.38(+- 0.29)/ 0.09/ 0.67 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 9.34 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() 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 e224592ce7f2..b7f8a49bb44c 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 03:53:23 CET 2019 +Sat Jan 26 19:51:16 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:53:53 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:51:38 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.62S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23964Kb Time = 0.68S 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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -250,11 +250,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.7S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.28S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -422,7 +422,7 @@ 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 -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileDig... INFO Initializing TileDigitsContByteStreamTool @@ -641,23 +641,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.23 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.69 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.16 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.17 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.10 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.03 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.14 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.44 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.66 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.04 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s -IOVDbSvc INFO bytes in (( 2.55 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.15 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.25 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.01 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 1.18 ))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.25 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 2.30 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.18 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.99 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -667,18 +667,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.85 [s] Ave/Min/Max=0.425(+-0.395)/ 0.03/ 0.82 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max=0.0808(+- 0.24)/ 0/ 0.9 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 30.1 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 460 [ms] Ave/Min/Max= 230(+- 220)/ 10/ 450 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.57 [s] Ave/Min/Max=0.0438(+-0.131)/ 0/ 0.49 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 11.1 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 03:54:55 CET 2019 +Sat Jan 26 19:52:07 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -687,7 +687,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -714,7 +714,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:55:27 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:52:24 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -730,8 +730,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -873,7 +873,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.64S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.69S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -885,7 +885,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -897,9 +897,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -930,11 +930,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.86S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.24S 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 @@ -956,11 +956,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1083,12 +1083,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1096,7 +1096,7 @@ Domain[ROOT_All] 0 0 INFO -> Access DbDatabase Domain[ROOT_All] 0 0 INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +ClassIDSvc 0 0 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL SGInputLoader 0 0 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL @@ -1108,147 +1108,147 @@ AthenaHiveEventLoopMgr 2 2 INFO ===>>> start processi SGInputLoader 2 2 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #1131086, run #204073 on slot 3, 0 events processed so far <<<=== SGInputLoader 3 3 WARNING unable to find proxy for ( 'TileDigitsContainer' , 'StoreGateSvc+MuRcvDigitsCnt' ) -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 1 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 2 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 2 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131212, run #204073 on slot 2, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 3 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131086, run #204073 on slot 3, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #1132019, run #204073 on slot 3, 4 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130272, run #204073 on slot 0, 5 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131269, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 7 0 INFO ===>>> start processing event #1132019, run #204073 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 8 1 INFO ===>>> start processing event #1132092, run #204073 on slot 1, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 3 INFO ===>>> start processing event #1130238, run #204073 on slot 3, 6 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130716, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 8 0 INFO ===>>> start processing event #1132092, run #204073 on slot 0, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #1130238, run #204073 on slot 1, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 10 2 INFO ===>>> start processing event #1134553, run #204073 on slot 2, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 11 0 INFO ===>>> start processing event #1130999, run #204073 on slot 0, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 12 1 INFO ===>>> start processing event #1133461, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 3 INFO ===>>> start processing event #1131152, run #204073 on slot 3, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 2, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 0, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 1, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 0 INFO ===>>> start processing event #1130142, run #204073 on slot 0, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 15 1 INFO ===>>> start processing event #1132770, run #204073 on slot 1, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 0, 8 events processed so far <<<=== +AthenaHiveEventLoopMgr 10 0 INFO ===>>> start processing event #1134553, run #204073 on slot 0, 8 events processed so far <<<=== +AthenaHiveEventLoopMgr 11 2 INFO ===>>> start processing event #1130999, run #204073 on slot 2, 8 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 3, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 0, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr 12 0 INFO ===>>> start processing event #1133461, run #204073 on slot 0, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 1 INFO ===>>> start processing event #1131152, run #204073 on slot 1, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 3 INFO ===>>> start processing event #1130142, run #204073 on slot 3, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 2, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 0, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr 15 0 INFO ===>>> start processing event #1132770, run #204073 on slot 0, 13 events processed so far <<<=== AthenaHiveEventLoopMgr 16 2 INFO ===>>> start processing event #1132365, run #204073 on slot 2, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 3, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 0, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 1, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 1, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 3, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 0, 16 events processed so far <<<=== AthenaHiveEventLoopMgr 17 0 INFO ===>>> start processing event #1136791, run #204073 on slot 0, 16 events processed so far <<<=== AthenaHiveEventLoopMgr 18 1 INFO ===>>> start processing event #1133781, run #204073 on slot 1, 16 events processed so far <<<=== AthenaHiveEventLoopMgr 19 3 INFO ===>>> start processing event #1132067, run #204073 on slot 3, 16 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 2, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr 20 2 INFO ===>>> start processing event #1138637, run #204073 on slot 2, 17 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 0, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 20 0 INFO ===>>> start processing event #1138637, run #204073 on slot 0, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 21 2 INFO ===>>> start processing event #1139495, run #204073 on slot 2, 18 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 1, 19 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 3, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr 21 0 INFO ===>>> start processing event #1139495, run #204073 on slot 0, 20 events processed so far <<<=== AthenaHiveEventLoopMgr 22 1 INFO ===>>> start processing event #1140193, run #204073 on slot 1, 20 events processed so far <<<=== AthenaHiveEventLoopMgr 23 3 INFO ===>>> start processing event #1142953, run #204073 on slot 3, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 0, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 2, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 2, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 24 2 INFO ===>>> start processing event #1139127, run #204073 on slot 2, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 0, 22 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 24 0 INFO ===>>> start processing event #1139127, run #204073 on slot 0, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 1 INFO ===>>> start processing event #1141272, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 2 INFO ===>>> start processing event #1137117, run #204073 on slot 2, 23 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 3, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 0, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 27 0 INFO ===>>> start processing event #1139599, run #204073 on slot 0, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #1140314, run #204073 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 1 INFO ===>>> start processing event #1133685, run #204073 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 2, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 0, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 30 0 INFO ===>>> start processing event #1143279, run #204073 on slot 0, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #1137563, run #204073 on slot 2, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #1139927, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 1, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 0, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #1141197, run #204073 on slot 0, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #1140039, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #1142531, run #204073 on slot 2, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #1139475, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 3, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #1143097, run #204073 on slot 2, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 3 INFO ===>>> start processing event #1134147, run #204073 on slot 3, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139958, run #204073 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143765, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 0 INFO ===>>> start processing event #1137156, run #204073 on slot 0, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #1136377, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #1137842, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 3, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #1141272, run #204073 on slot 0, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 27 3 INFO ===>>> start processing event #1139599, run #204073 on slot 3, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 2, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr 28 2 INFO ===>>> start processing event #1140314, run #204073 on slot 2, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #1133685, run #204073 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #1143279, run #204073 on slot 1, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 3 INFO ===>>> start processing event #1137563, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 2, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 0 INFO ===>>> start processing event #1139927, run #204073 on slot 0, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 1 INFO ===>>> start processing event #1141197, run #204073 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 34 2 INFO ===>>> start processing event #1140039, run #204073 on slot 2, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 3, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 0, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 1, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 0 INFO ===>>> start processing event #1142531, run #204073 on slot 0, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr 36 1 INFO ===>>> start processing event #1139475, run #204073 on slot 1, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 3 INFO ===>>> start processing event #1139958, run #204073 on slot 3, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 2, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 0, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 1, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 0 INFO ===>>> start processing event #1143765, run #204073 on slot 0, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 39 1 INFO ===>>> start processing event #1143097, run #204073 on slot 1, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 2 INFO ===>>> start processing event #1134147, run #204073 on slot 2, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139958, run #204073 on slot 3, 38 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143765, run #204073 on slot 0, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 1, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 0 INFO ===>>> start processing event #1137156, run #204073 on slot 0, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #1136377, run #204073 on slot 1, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 3 INFO ===>>> start processing event #1137842, run #204073 on slot 3, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 2, 41 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 0, 42 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 1, 43 events processed so far <<<=== AthenaHiveEventLoopMgr 44 0 INFO ===>>> start processing event #1141705, run #204073 on slot 0, 43 events processed so far <<<=== AthenaHiveEventLoopMgr 45 1 INFO ===>>> start processing event #1143410, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 3 INFO ===>>> start processing event #1144170, run #204073 on slot 3, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #1145987, run #204073 on slot 2, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 2 INFO ===>>> start processing event #1144170, run #204073 on slot 2, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 3, 44 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 0, 45 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 1, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 3, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #1145633, run #204073 on slot 0, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 1 INFO ===>>> start processing event #1135005, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 3 INFO ===>>> start processing event #1142167, run #204073 on slot 3, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 2, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 0 INFO ===>>> start processing event #1144646, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 2 INFO ===>>> start processing event #1145027, run #204073 on slot 2, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 1, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 3, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 0 INFO ===>>> start processing event #1145987, run #204073 on slot 0, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 1 INFO ===>>> start processing event #1145633, run #204073 on slot 1, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 3 INFO ===>>> start processing event #1135005, run #204073 on slot 3, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 2, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 0, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 0 INFO ===>>> start processing event #1142167, run #204073 on slot 0, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 2 INFO ===>>> start processing event #1144646, run #204073 on slot 2, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 1, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 3, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 0, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 0 INFO ===>>> start processing event #1145027, run #204073 on slot 0, 51 events processed so far <<<=== AthenaHiveEventLoopMgr 53 1 INFO ===>>> start processing event #1144112, run #204073 on slot 1, 51 events processed so far <<<=== AthenaHiveEventLoopMgr 54 3 INFO ===>>> start processing event #1138485, run #204073 on slot 3, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 2 INFO ===>>> start processing event #1139498, run #204073 on slot 2, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 0, 53 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 1, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 1 INFO ===>>> start processing event #1139498, run #204073 on slot 1, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 57 2 INFO ===>>> start processing event #1136546, run #204073 on slot 2, 54 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 3, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 57 1 INFO ===>>> start processing event #1136546, run #204073 on slot 1, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 3 INFO ===>>> start processing event #1143799, run #204073 on slot 3, 55 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144565, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 0 INFO ===>>> start processing event #1142877, run #204073 on slot 0, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr 60 2 INFO ===>>> start processing event #1149894, run #204073 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 1, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #1145364, run #204073 on slot 1, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr 62 3 INFO ===>>> start processing event #1143770, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 0, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 2, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 0 INFO ===>>> start processing event #1148361, run #204073 on slot 0, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 2 INFO ===>>> start processing event #1148167, run #204073 on slot 2, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 3, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 0 INFO ===>>> start processing event #1138948, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 1 INFO ===>>> start processing event #1144808, run #204073 on slot 1, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 3 INFO ===>>> start processing event #1145832, run #204073 on slot 3, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 2, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 0, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 1, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #1153100, run #204073 on slot 0, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #1142524, run #204073 on slot 1, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 2 INFO ===>>> start processing event #1138294, run #204073 on slot 2, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 3, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 0 INFO ===>>> start processing event #1138350, run #204073 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 1, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 0 INFO ===>>> start processing event #1143799, run #204073 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 1 INFO ===>>> start processing event #1142877, run #204073 on slot 1, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 60 3 INFO ===>>> start processing event #1149894, run #204073 on slot 3, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 2, 58 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 0, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 61 0 INFO ===>>> start processing event #1145364, run #204073 on slot 0, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processing event #1143770, run #204073 on slot 1, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 2 INFO ===>>> start processing event #1148361, run #204073 on slot 2, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 3, 61 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #1148167, run #204073 on slot 0, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #1138948, run #204073 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 3 INFO ===>>> start processing event #1144808, run #204073 on slot 3, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 2, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 0, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 2 INFO ===>>> start processing event #1142524, run #204073 on slot 2, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 3, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 0 INFO ===>>> start processing event #1138294, run #204073 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 69 events processed so far <<<=== AthenaHiveEventLoopMgr 72 3 INFO ===>>> start processing event #1149424, run #204073 on slot 3, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 1, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 2, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 0, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 2, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 0, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 1, 72 events processed so far <<<=== AthenaHiveEventLoopMgr 73 0 INFO ===>>> start processing event #1151102, run #204073 on slot 0, 72 events processed so far <<<=== AthenaHiveEventLoopMgr 74 1 INFO ===>>> start processing event #1152242, run #204073 on slot 1, 72 events processed so far <<<=== AthenaHiveEventLoopMgr 75 2 INFO ===>>> start processing event #1148416, run #204073 on slot 2, 72 events processed so far <<<=== @@ -1260,51 +1260,51 @@ AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processi AthenaHiveEventLoopMgr 78 3 INFO ===>>> start processing event #1151617, run #204073 on slot 3, 75 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 2, 76 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 2 INFO ===>>> start processing event #1152504, run #204073 on slot 2, 77 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #1152504, run #204073 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 2 INFO ===>>> start processing event #1142485, run #204073 on slot 2, 78 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 3, 79 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 0 INFO ===>>> start processing event #1142485, run #204073 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 1 INFO ===>>> start processing event #1151364, run #204073 on slot 1, 80 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 0 INFO ===>>> start processing event #1151364, run #204073 on slot 0, 80 events processed so far <<<=== AthenaHiveEventLoopMgr 83 3 INFO ===>>> start processing event #1143901, run #204073 on slot 3, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 2, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 0, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #1153979, run #204073 on slot 0, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 2 INFO ===>>> start processing event #1150212, run #204073 on slot 2, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 1, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 2, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 0, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #1153979, run #204073 on slot 0, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 1 INFO ===>>> start processing event #1150212, run #204073 on slot 1, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 2 INFO ===>>> start processing event #1152633, run #204073 on slot 2, 83 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 3, 84 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 0 INFO ===>>> start processing event #1152633, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #1155482, run #204073 on slot 1, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 3 INFO ===>>> start processing event #1150472, run #204073 on slot 3, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 2, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 0, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 0 INFO ===>>> start processing event #1140275, run #204073 on slot 0, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 90 2 INFO ===>>> start processing event #1145882, run #204073 on slot 2, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 1, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 3, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 0, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 0 INFO ===>>> start processing event #1151732, run #204073 on slot 0, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 1 INFO ===>>> start processing event #1137896, run #204073 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #1156381, run #204073 on slot 3, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 2, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 0, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 0 INFO ===>>> start processing event #1149161, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 1 INFO ===>>> start processing event #1153794, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 2 INFO ===>>> start processing event #1151312, run #204073 on slot 2, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 3, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 0, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 1, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 0 INFO ===>>> start processing event #1148893, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 1 INFO ===>>> start processing event #1156938, run #204073 on slot 1, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 3 INFO ===>>> start processing event #1156351, run #204073 on slot 3, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 2, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 0, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 1, 99 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 3, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 21.757 +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 1, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 0 INFO ===>>> start processing event #1155482, run #204073 on slot 0, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 1 INFO ===>>> start processing event #1150472, run #204073 on slot 1, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 3 INFO ===>>> start processing event #1140275, run #204073 on slot 3, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 2, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 0, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 90 0 INFO ===>>> start processing event #1145882, run #204073 on slot 0, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 2 INFO ===>>> start processing event #1151732, run #204073 on slot 2, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 1, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 3, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 0, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #1137896, run #204073 on slot 0, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 93 1 INFO ===>>> start processing event #1156381, run #204073 on slot 1, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 3 INFO ===>>> start processing event #1149161, run #204073 on slot 3, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 2, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 0, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 1, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 0 INFO ===>>> start processing event #1153794, run #204073 on slot 0, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 1 INFO ===>>> start processing event #1151312, run #204073 on slot 1, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 2 INFO ===>>> start processing event #1148893, run #204073 on slot 2, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 3, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 0, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 1, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 0 INFO ===>>> start processing event #1156938, run #204073 on slot 0, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 1 INFO ===>>> start processing event #1156351, run #204073 on slot 1, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 2, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 0, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 1, 100 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 10.269 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1336,10 +1336,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.03 ))s -IOVDbSvc INFO bytes in (( 0.19 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.01 ))s +IOVDbSvc INFO bytes in (( 0.18 ))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.19 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.18 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1350,9 +1350,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.77 [s] Ave/Min/Max=0.385(+-0.365)/ 0.02/ 0.75 [s] #= 2 -cObj_ALL INFO Time User : Tot= 0.98 [s] Ave/Min/Max= 0.49(+- 0.35)/ 0.14/ 0.84 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 27.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.54 [s] Ave/Min/Max= 0.27(+- 0.26)/ 0.01/ 0.53 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.68 [s] Ave/Min/Max= 0.34(+- 0.25)/ 0.09/ 0.59 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 9.64 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() 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 01702ded0a18..6df5c6c40fe4 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 02:31:43 CET 2019 +Sat Jan 26 19:51:16 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:32:17 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:51:38 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.68S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23964Kb Time = 0.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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -250,11 +250,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 2S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.25S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -422,7 +422,7 @@ 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 -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileL2C... INFO Initializing TileL2ContByteStreamTool @@ -641,23 +641,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.82 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.71 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.93 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.55 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.64 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.51 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.53 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.50 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.67 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.73 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.61 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.07 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.61 ))s -IOVDbSvc INFO bytes in (( 7.88 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.14 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.21 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.15 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.07 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.14 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.16 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.00 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s +IOVDbSvc INFO bytes in (( 1.13 ))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.43 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 6.44 ))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.97 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -666,18 +666,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.85 [s] Ave/Min/Max=0.425(+-0.405)/ 0.02/ 0.83 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.08 [s] Ave/Min/Max=0.0831(+-0.241)/ 0/ 0.9 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 28.5 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 490 [ms] Ave/Min/Max= 245(+- 235)/ 10/ 480 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.61 [s] Ave/Min/Max=0.0469(+-0.139)/ 0/ 0.52 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 11.5 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 02:33:20 CET 2019 +Sat Jan 26 19:52:03 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -686,7 +686,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -713,7 +713,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:33:46 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:52:18 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -729,8 +729,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -872,7 +872,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.67S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.68S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -884,7 +884,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -896,9 +896,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -929,11 +929,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.77S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.3S 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 @@ -955,11 +955,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1079,12 +1079,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1092,7 +1092,7 @@ Domain[ROOT_All] 0 0 INFO -> Access DbDatabase Domain[ROOT_All] 0 0 INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +ClassIDSvc 0 0 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed @@ -1222,81 +1222,81 @@ AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processi AthenaHiveEventLoopMgr 63 3 INFO ===>>> start processing event #1148361, run #204073 on slot 3, 60 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 2, 61 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #1148167, run #204073 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 2 INFO ===>>> start processing event #1138948, run #204073 on slot 2, 62 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 1, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #1148167, run #204073 on slot 0, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #1138948, run #204073 on slot 1, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 2 INFO ===>>> start processing event #1144808, run #204073 on slot 2, 63 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 3, 64 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 0, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 1, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 3 INFO ===>>> start processing event #1142524, run #204073 on slot 3, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 2, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 0 INFO ===>>> start processing event #1138294, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 2 INFO ===>>> start processing event #1149424, run #204073 on slot 2, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 3, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 0, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 73 0 INFO ===>>> start processing event #1151102, run #204073 on slot 0, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 74 1 INFO ===>>> start processing event #1152242, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 3 INFO ===>>> start processing event #1148416, run #204073 on slot 3, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 2, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 0, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 1, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #1149997, run #204073 on slot 1, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr 78 2 INFO ===>>> start processing event #1151617, run #204073 on slot 2, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 3, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #1152504, run #204073 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 3 INFO ===>>> start processing event #1142485, run #204073 on slot 3, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 2, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 1, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 0 INFO ===>>> start processing event #1151364, run #204073 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #1143901, run #204073 on slot 1, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 2 INFO ===>>> start processing event #1153979, run #204073 on slot 2, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 3, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 0, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 0 INFO ===>>> start processing event #1150212, run #204073 on slot 0, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 1 INFO ===>>> start processing event #1152633, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 3 INFO ===>>> start processing event #1155482, run #204073 on slot 3, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 2, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 0, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 1, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #1150472, run #204073 on slot 0, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 1 INFO ===>>> start processing event #1140275, run #204073 on slot 1, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr 90 2 INFO ===>>> start processing event #1145882, run #204073 on slot 2, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 3, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 0 INFO ===>>> start processing event #1151732, run #204073 on slot 0, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 1 INFO ===>>> start processing event #1137896, run #204073 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #1156381, run #204073 on slot 3, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 2, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 0, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 0 INFO ===>>> start processing event #1149161, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 1 INFO ===>>> start processing event #1153794, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 2 INFO ===>>> start processing event #1151312, run #204073 on slot 2, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 3, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 0, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 1, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 0 INFO ===>>> start processing event #1148893, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 1 INFO ===>>> start processing event #1156938, run #204073 on slot 1, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 3 INFO ===>>> start processing event #1156351, run #204073 on slot 3, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 2, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 0, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 1, 99 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 3, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 20.2948 +AthenaHiveEventLoopMgr 66 0 INFO ===>>> start processing event #1144808, run #204073 on slot 0, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 1 INFO ===>>> start processing event #1145832, run #204073 on slot 1, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 3 INFO ===>>> start processing event #1153100, run #204073 on slot 3, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 2, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 0, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 1, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 0 INFO ===>>> start processing event #1142524, run #204073 on slot 0, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 1 INFO ===>>> start processing event #1138294, run #204073 on slot 1, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 2 INFO ===>>> start processing event #1138350, run #204073 on slot 2, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 3, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 0, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 1, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #1149424, run #204073 on slot 0, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr 73 1 INFO ===>>> start processing event #1151102, run #204073 on slot 1, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr 74 3 INFO ===>>> start processing event #1152242, run #204073 on slot 3, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 2, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 0, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 1, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 0 INFO ===>>> start processing event #1148416, run #204073 on slot 0, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 76 1 INFO ===>>> start processing event #1142753, run #204073 on slot 1, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 77 2 INFO ===>>> start processing event #1149997, run #204073 on slot 2, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 3, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 0, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 1, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr 78 0 INFO ===>>> start processing event #1151617, run #204073 on slot 0, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 1 INFO ===>>> start processing event #1149794, run #204073 on slot 1, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 3 INFO ===>>> start processing event #1152504, run #204073 on slot 3, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 2, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 0, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 0 INFO ===>>> start processing event #1142485, run #204073 on slot 0, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 2 INFO ===>>> start processing event #1151364, run #204073 on slot 2, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 1, 80 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 3, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 0, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 0 INFO ===>>> start processing event #1143901, run #204073 on slot 0, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 1 INFO ===>>> start processing event #1153979, run #204073 on slot 1, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 3 INFO ===>>> start processing event #1150212, run #204073 on slot 3, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 2, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 0, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 1, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 0 INFO ===>>> start processing event #1152633, run #204073 on slot 0, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #1155482, run #204073 on slot 1, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 2 INFO ===>>> start processing event #1150472, run #204073 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 3, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 0, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 0 INFO ===>>> start processing event #1140275, run #204073 on slot 0, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 90 1 INFO ===>>> start processing event #1145882, run #204073 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 3 INFO ===>>> start processing event #1151732, run #204073 on slot 3, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 2, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 0, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 1, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #1137896, run #204073 on slot 0, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 93 1 INFO ===>>> start processing event #1156381, run #204073 on slot 1, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 2 INFO ===>>> start processing event #1149161, run #204073 on slot 2, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 3, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 0, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 1, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 0 INFO ===>>> start processing event #1153794, run #204073 on slot 0, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 1 INFO ===>>> start processing event #1151312, run #204073 on slot 1, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 3 INFO ===>>> start processing event #1148893, run #204073 on slot 3, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 2, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 0, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 1, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 0 INFO ===>>> start processing event #1156938, run #204073 on slot 0, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 1 INFO ===>>> start processing event #1156351, run #204073 on slot 1, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 3, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 0, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 1, 100 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 10.1798 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1314,7 +1314,7 @@ AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.58 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.14 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1326,10 +1326,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.38 ))s -IOVDbSvc INFO bytes in (( 0.96 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s +IOVDbSvc INFO bytes in (( 0.16 ))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.96 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.16 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1339,9 +1339,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.86 [s] Ave/Min/Max= 0.43(+- 0.4)/ 0.03/ 0.83 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.15 [s] Ave/Min/Max=0.575(+-0.415)/ 0.16/ 0.99 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 25.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 490 [ms] Ave/Min/Max= 245(+- 235)/ 10/ 480 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.61 [s] Ave/Min/Max=0.305(+-0.235)/ 0.07/ 0.54 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 10.3 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() 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 d3db850feec1..4bdfa41ced06 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 02:34:42 CET 2019 +Sat Jan 26 19:48:39 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:35:16 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:48:59 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.68S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.6S 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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -249,11 +249,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.84S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.25S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -387,12 +387,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -421,7 +421,7 @@ 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; TileBadChannels... INFO No drawer trips probabilities found in DB -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed AthenaEventLoopMgr INFO ===>>> done processing event #18124, run #363899 1 events processed so far <<<=== @@ -639,23 +639,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.94 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/105700 (( 1.34 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.82 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 1.34 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.79 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 4.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.66 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.55 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643860 (( 2.91 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/43200 (( 2.02 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 1.31 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.08 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.39 ))s -IOVDbSvc INFO bytes in (( 17.22 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.17 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/105700 (( 0.15 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643860 (( 0.04 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/43200 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.01 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s +IOVDbSvc INFO bytes in (( 0.59 ))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.32 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 15.90 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.18 ))s +IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.40 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... ToolSvc INFO Removing all tools created by ToolSvc @@ -664,18 +664,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.82 [s] Ave/Min/Max= 0.41(+- 0.38)/ 0.03/ 0.79 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.04 [s] Ave/Min/Max= 0.08(+-0.232)/ 0/ 0.87 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 21.9 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 430 [ms] Ave/Min/Max= 215(+- 215)/ 0/ 430 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.53 [s] Ave/Min/Max=0.0408(+-0.122)/ 0/ 0.46 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 5.52 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 02:36:12 CET 2019 +Sat Jan 26 19:49:12 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -684,7 +684,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -711,7 +711,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 02:36:37 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:49:28 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -727,8 +727,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -869,7 +869,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 29600Kb Time = 1.63S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 21916Kb Time = 0.61S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -881,7 +881,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -893,9 +893,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -926,11 +926,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.77S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.22S 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 @@ -952,11 +952,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1076,12 +1076,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1092,45 +1092,45 @@ AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processi AthenaHiveEventLoopMgr 1 1 INFO ===>>> start processing event #18125, run #363899 on slot 1, 0 events processed so far <<<=== AthenaHiveEventLoopMgr 2 2 INFO ===>>> start processing event #18126, run #363899 on slot 2, 0 events processed so far <<<=== AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #18127, run #363899 on slot 3, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL -ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL -ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18126, run #363899 on slot 2, 1 events processed so far <<<=== -AthenaHiveEventLoopMgr 4 2 INFO ===>>> start processing event #18128, run #363899 on slot 2, 1 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18125, run #363899 on slot 1, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18124, run #363899 on slot 0, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18127, run #363899 on slot 3, 4 events processed so far <<<=== +ClassIDSvc 0 0 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL +ClassIDSvc 1 1 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL +ClassIDSvc 1 1 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL +ToolSvc.TileROD_Decoder.TileROD_L2Bui...1 1 INFO TileL2Builder initialization completed +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18125, run #363899 on slot 1, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr 4 1 INFO ===>>> start processing event #18128, run #363899 on slot 1, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18124, run #363899 on slot 0, 2 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18127, run #363899 on slot 3, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18126, run #363899 on slot 2, 4 events processed so far <<<=== AthenaHiveEventLoopMgr 5 0 INFO ===>>> start processing event #18129, run #363899 on slot 0, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr 6 1 INFO ===>>> start processing event #18130, run #363899 on slot 1, 4 events processed so far <<<=== +AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #18130, run #363899 on slot 2, 4 events processed so far <<<=== AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #18131, run #363899 on slot 3, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18128, run #363899 on slot 2, 5 events processed so far <<<=== -AthenaHiveEventLoopMgr 8 2 INFO ===>>> start processing event #18132, run #363899 on slot 2, 5 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18128, run #363899 on slot 1, 5 events processed so far <<<=== +AthenaHiveEventLoopMgr 8 1 INFO ===>>> start processing event #18132, run #363899 on slot 1, 5 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18129, run #363899 on slot 0, 6 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18130, run #363899 on slot 1, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 0 INFO ===>>> start processing event #18133, run #363899 on slot 0, 7 events processed so far <<<=== -AthenaHiveEventLoopMgr 10 1 INFO ===>>> start processing event #18134, run #363899 on slot 1, 7 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 0 INFO ===>>> start processing event #18133, run #363899 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18130, run #363899 on slot 2, 7 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18131, run #363899 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18132, run #363899 on slot 2, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18132, run #363899 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 10 1 INFO ===>>> start processing event #18134, run #363899 on slot 1, 9 events processed so far <<<=== AthenaHiveEventLoopMgr 11 2 INFO ===>>> start processing event #18135, run #363899 on slot 2, 9 events processed so far <<<=== AthenaHiveEventLoopMgr 12 3 INFO ===>>> start processing event #18136, run #363899 on slot 3, 9 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18133, run #363899 on slot 0, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #18137, run #363899 on slot 0, 10 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18134, run #363899 on slot 1, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #18137, run #363899 on slot 0, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #18138, run #363899 on slot 1, 11 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18135, run #363899 on slot 2, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #18138, run #363899 on slot 1, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 15 2 INFO ===>>> start processing event #18139, run #363899 on slot 2, 12 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18136, run #363899 on slot 3, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 15 2 INFO ===>>> start processing event #18139, run #363899 on slot 2, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 16 3 INFO ===>>> start processing event #18140, run #363899 on slot 3, 13 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18137, run #363899 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr 16 0 INFO ===>>> start processing event #18140, run #363899 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr 17 3 INFO ===>>> start processing event #18141, run #363899 on slot 3, 14 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18138, run #363899 on slot 1, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr 17 0 INFO ===>>> start processing event #18141, run #363899 on slot 0, 15 events processed so far <<<=== AthenaHiveEventLoopMgr 18 1 INFO ===>>> start processing event #18142, run #363899 on slot 1, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18140, run #363899 on slot 3, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18139, run #363899 on slot 2, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr 19 2 INFO ===>>> start processing event #18143, run #363899 on slot 2, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18139, run #363899 on slot 2, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr 19 2 INFO ===>>> start processing event #18143, run #363899 on slot 2, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18141, run #363899 on slot 3, 17 events processed so far <<<=== AthenaHiveEventLoopMgr 20 3 INFO ===>>> start processing event #18144, run #363899 on slot 3, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18141, run #363899 on slot 0, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18140, run #363899 on slot 0, 18 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18142, run #363899 on slot 1, 19 events processed so far <<<=== AthenaHiveEventLoopMgr 21 0 INFO ===>>> start processing event #18145, run #363899 on slot 0, 19 events processed so far <<<=== AthenaHiveEventLoopMgr 22 1 INFO ===>>> start processing event #18146, run #363899 on slot 1, 19 events processed so far <<<=== @@ -1139,160 +1139,160 @@ AthenaHiveEventLoopMgr INFO ===>>> done processin AthenaHiveEventLoopMgr 23 2 INFO ===>>> start processing event #18147, run #363899 on slot 2, 21 events processed so far <<<=== AthenaHiveEventLoopMgr 24 3 INFO ===>>> start processing event #18148, run #363899 on slot 3, 21 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18145, run #363899 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #18149, run #363899 on slot 0, 22 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18146, run #363899 on slot 1, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #18149, run #363899 on slot 0, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #18150, run #363899 on slot 1, 23 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18147, run #363899 on slot 2, 24 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18148, run #363899 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #18150, run #363899 on slot 1, 25 events processed so far <<<=== AthenaHiveEventLoopMgr 27 2 INFO ===>>> start processing event #18151, run #363899 on slot 2, 25 events processed so far <<<=== AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #18152, run #363899 on slot 3, 25 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18149, run #363899 on slot 0, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #18153, run #363899 on slot 0, 26 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18150, run #363899 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #18153, run #363899 on slot 0, 27 events processed so far <<<=== AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #18154, run #363899 on slot 1, 27 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18151, run #363899 on slot 2, 28 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18152, run #363899 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18153, run #363899 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 0 INFO ===>>> start processing event #18155, run #363899 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 2 INFO ===>>> start processing event #18156, run #363899 on slot 2, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 3 INFO ===>>> start processing event #18157, run #363899 on slot 3, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18154, run #363899 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #18155, run #363899 on slot 2, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #18156, run #363899 on slot 3, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18154, run #363899 on slot 1, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18153, run #363899 on slot 0, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #18157, run #363899 on slot 0, 31 events processed so far <<<=== AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #18158, run #363899 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18156, run #363899 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #18159, run #363899 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18157, run #363899 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18155, run #363899 on slot 0, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18155, run #363899 on slot 2, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18156, run #363899 on slot 3, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #18159, run #363899 on slot 2, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #18160, run #363899 on slot 3, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18157, run #363899 on slot 0, 34 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18158, run #363899 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 36 0 INFO ===>>> start processing event #18160, run #363899 on slot 0, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 1 INFO ===>>> start processing event #18161, run #363899 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 3 INFO ===>>> start processing event #18162, run #363899 on slot 3, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #18161, run #363899 on slot 0, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #18162, run #363899 on slot 1, 35 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18159, run #363899 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #18163, run #363899 on slot 2, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18160, run #363899 on slot 0, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18161, run #363899 on slot 1, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #18164, run #363899 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 1 INFO ===>>> start processing event #18165, run #363899 on slot 1, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18162, run #363899 on slot 3, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18163, run #363899 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 2 INFO ===>>> start processing event #18166, run #363899 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 3 INFO ===>>> start processing event #18167, run #363899 on slot 3, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18164, run #363899 on slot 0, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18165, run #363899 on slot 1, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr 44 0 INFO ===>>> start processing event #18168, run #363899 on slot 0, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr 45 1 INFO ===>>> start processing event #18169, run #363899 on slot 1, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18166, run #363899 on slot 2, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18167, run #363899 on slot 3, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 2 INFO ===>>> start processing event #18170, run #363899 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 3 INFO ===>>> start processing event #18171, run #363899 on slot 3, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18168, run #363899 on slot 0, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18169, run #363899 on slot 1, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #18172, run #363899 on slot 0, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 1 INFO ===>>> start processing event #18173, run #363899 on slot 1, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18170, run #363899 on slot 2, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18171, run #363899 on slot 3, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 2 INFO ===>>> start processing event #18174, run #363899 on slot 2, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 3 INFO ===>>> start processing event #18175, run #363899 on slot 3, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18172, run #363899 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18173, run #363899 on slot 1, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 0 INFO ===>>> start processing event #18176, run #363899 on slot 0, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 53 1 INFO ===>>> start processing event #18177, run #363899 on slot 1, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18174, run #363899 on slot 2, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18175, run #363899 on slot 3, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr 54 2 INFO ===>>> start processing event #18178, run #363899 on slot 2, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 3 INFO ===>>> start processing event #18179, run #363899 on slot 3, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18176, run #363899 on slot 0, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18177, run #363899 on slot 1, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 0 INFO ===>>> start processing event #18180, run #363899 on slot 0, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr 57 1 INFO ===>>> start processing event #18181, run #363899 on slot 1, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18178, run #363899 on slot 2, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18179, run #363899 on slot 3, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 2 INFO ===>>> start processing event #18182, run #363899 on slot 2, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 3 INFO ===>>> start processing event #18183, run #363899 on slot 3, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18180, run #363899 on slot 0, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18181, run #363899 on slot 1, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr 60 0 INFO ===>>> start processing event #18184, run #363899 on slot 0, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #18185, run #363899 on slot 1, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18182, run #363899 on slot 2, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18183, run #363899 on slot 3, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 62 2 INFO ===>>> start processing event #18186, run #363899 on slot 2, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 3 INFO ===>>> start processing event #18187, run #363899 on slot 3, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18184, run #363899 on slot 0, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18185, run #363899 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #18188, run #363899 on slot 0, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #18189, run #363899 on slot 1, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18186, run #363899 on slot 2, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18187, run #363899 on slot 3, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 2 INFO ===>>> start processing event #18190, run #363899 on slot 2, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 3 INFO ===>>> start processing event #18191, run #363899 on slot 3, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18188, run #363899 on slot 0, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18189, run #363899 on slot 1, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #18192, run #363899 on slot 0, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #18193, run #363899 on slot 1, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18190, run #363899 on slot 2, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18191, run #363899 on slot 3, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 2 INFO ===>>> start processing event #18194, run #363899 on slot 2, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 3 INFO ===>>> start processing event #18195, run #363899 on slot 3, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18160, run #363899 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #18163, run #363899 on slot 2, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 3 INFO ===>>> start processing event #18164, run #363899 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18161, run #363899 on slot 0, 38 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 0 INFO ===>>> start processing event #18165, run #363899 on slot 0, 38 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18162, run #363899 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #18166, run #363899 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18164, run #363899 on slot 3, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18163, run #363899 on slot 2, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #18167, run #363899 on slot 2, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr 44 3 INFO ===>>> start processing event #18168, run #363899 on slot 3, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18165, run #363899 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 45 0 INFO ===>>> start processing event #18169, run #363899 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18166, run #363899 on slot 1, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 1 INFO ===>>> start processing event #18170, run #363899 on slot 1, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18167, run #363899 on slot 2, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18168, run #363899 on slot 3, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #18171, run #363899 on slot 2, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 3 INFO ===>>> start processing event #18172, run #363899 on slot 3, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18169, run #363899 on slot 0, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18170, run #363899 on slot 1, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 0 INFO ===>>> start processing event #18173, run #363899 on slot 0, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #18174, run #363899 on slot 1, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18171, run #363899 on slot 2, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18172, run #363899 on slot 3, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 2 INFO ===>>> start processing event #18175, run #363899 on slot 2, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 3 INFO ===>>> start processing event #18176, run #363899 on slot 3, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18173, run #363899 on slot 0, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18174, run #363899 on slot 1, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 53 0 INFO ===>>> start processing event #18177, run #363899 on slot 0, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr 54 1 INFO ===>>> start processing event #18178, run #363899 on slot 1, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18175, run #363899 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18176, run #363899 on slot 3, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 2 INFO ===>>> start processing event #18179, run #363899 on slot 2, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 3 INFO ===>>> start processing event #18180, run #363899 on slot 3, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18177, run #363899 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 57 0 INFO ===>>> start processing event #18181, run #363899 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18178, run #363899 on slot 1, 55 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18180, run #363899 on slot 3, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18179, run #363899 on slot 2, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #18182, run #363899 on slot 1, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 2 INFO ===>>> start processing event #18183, run #363899 on slot 2, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 60 3 INFO ===>>> start processing event #18184, run #363899 on slot 3, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18181, run #363899 on slot 0, 58 events processed so far <<<=== +AthenaHiveEventLoopMgr 61 0 INFO ===>>> start processing event #18185, run #363899 on slot 0, 58 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18182, run #363899 on slot 1, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processing event #18186, run #363899 on slot 1, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18183, run #363899 on slot 2, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18184, run #363899 on slot 3, 61 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 2 INFO ===>>> start processing event #18187, run #363899 on slot 2, 61 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 3 INFO ===>>> start processing event #18188, run #363899 on slot 3, 61 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18185, run #363899 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18186, run #363899 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 0 INFO ===>>> start processing event #18189, run #363899 on slot 0, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 1 INFO ===>>> start processing event #18190, run #363899 on slot 1, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18187, run #363899 on slot 2, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 2 INFO ===>>> start processing event #18191, run #363899 on slot 2, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18188, run #363899 on slot 3, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18189, run #363899 on slot 0, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18190, run #363899 on slot 1, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #18192, run #363899 on slot 0, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #18193, run #363899 on slot 1, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 3 INFO ===>>> start processing event #18194, run #363899 on slot 3, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18191, run #363899 on slot 2, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 2 INFO ===>>> start processing event #18195, run #363899 on slot 2, 68 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18192, run #363899 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #18196, run #363899 on slot 0, 69 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18193, run #363899 on slot 1, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #18196, run #363899 on slot 0, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr 73 1 INFO ===>>> start processing event #18197, run #363899 on slot 1, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18194, run #363899 on slot 2, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18195, run #363899 on slot 3, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 74 2 INFO ===>>> start processing event #18198, run #363899 on slot 2, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 3 INFO ===>>> start processing event #18199, run #363899 on slot 3, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18194, run #363899 on slot 3, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr 73 1 INFO ===>>> start processing event #18197, run #363899 on slot 1, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr 74 3 INFO ===>>> start processing event #18198, run #363899 on slot 3, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18195, run #363899 on slot 2, 72 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18196, run #363899 on slot 0, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 0 INFO ===>>> start processing event #18199, run #363899 on slot 0, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr 76 2 INFO ===>>> start processing event #18200, run #363899 on slot 2, 73 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18197, run #363899 on slot 1, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #18200, run #363899 on slot 0, 74 events processed so far <<<=== AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #18201, run #363899 on slot 1, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18198, run #363899 on slot 2, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18199, run #363899 on slot 3, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr 78 2 INFO ===>>> start processing event #18202, run #363899 on slot 2, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 3 INFO ===>>> start processing event #18203, run #363899 on slot 3, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18200, run #363899 on slot 0, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18198, run #363899 on slot 3, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 78 3 INFO ===>>> start processing event #18202, run #363899 on slot 3, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18199, run #363899 on slot 0, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18200, run #363899 on slot 2, 77 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18201, run #363899 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 0 INFO ===>>> start processing event #18204, run #363899 on slot 0, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 1 INFO ===>>> start processing event #18205, run #363899 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18202, run #363899 on slot 2, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18203, run #363899 on slot 3, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 2 INFO ===>>> start processing event #18206, run #363899 on slot 2, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 3 INFO ===>>> start processing event #18207, run #363899 on slot 3, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18204, run #363899 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18205, run #363899 on slot 1, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #18208, run #363899 on slot 0, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 1 INFO ===>>> start processing event #18209, run #363899 on slot 1, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18206, run #363899 on slot 2, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18207, run #363899 on slot 3, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 2 INFO ===>>> start processing event #18210, run #363899 on slot 2, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 3 INFO ===>>> start processing event #18211, run #363899 on slot 3, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18208, run #363899 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18209, run #363899 on slot 1, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #18203, run #363899 on slot 0, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #18204, run #363899 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 2 INFO ===>>> start processing event #18205, run #363899 on slot 2, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18202, run #363899 on slot 3, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 3 INFO ===>>> start processing event #18206, run #363899 on slot 3, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18203, run #363899 on slot 0, 80 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18204, run #363899 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18205, run #363899 on slot 2, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 0 INFO ===>>> start processing event #18207, run #363899 on slot 0, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 1 INFO ===>>> start processing event #18208, run #363899 on slot 1, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 2 INFO ===>>> start processing event #18209, run #363899 on slot 2, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18206, run #363899 on slot 3, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 3 INFO ===>>> start processing event #18210, run #363899 on slot 3, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18208, run #363899 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #18211, run #363899 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18207, run #363899 on slot 0, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18210, run #363899 on slot 3, 86 events processed so far <<<=== AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #18212, run #363899 on slot 0, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 1 INFO ===>>> start processing event #18213, run #363899 on slot 1, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18210, run #363899 on slot 2, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18211, run #363899 on slot 3, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 90 2 INFO ===>>> start processing event #18214, run #363899 on slot 2, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 3 INFO ===>>> start processing event #18215, run #363899 on slot 3, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 3 INFO ===>>> start processing event #18213, run #363899 on slot 3, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18209, run #363899 on slot 2, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18211, run #363899 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 90 1 INFO ===>>> start processing event #18214, run #363899 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 2 INFO ===>>> start processing event #18215, run #363899 on slot 2, 88 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18212, run #363899 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18213, run #363899 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #18216, run #363899 on slot 0, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 1 INFO ===>>> start processing event #18217, run #363899 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18214, run #363899 on slot 2, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18215, run #363899 on slot 3, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 2 INFO ===>>> start processing event #18218, run #363899 on slot 2, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 3 INFO ===>>> start processing event #18219, run #363899 on slot 3, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #18216, run #363899 on slot 0, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18213, run #363899 on slot 3, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #18217, run #363899 on slot 3, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18214, run #363899 on slot 1, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18215, run #363899 on slot 2, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 1 INFO ===>>> start processing event #18218, run #363899 on slot 1, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 2 INFO ===>>> start processing event #18219, run #363899 on slot 2, 92 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18216, run #363899 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18217, run #363899 on slot 1, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 0 INFO ===>>> start processing event #18220, run #363899 on slot 0, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 1 INFO ===>>> start processing event #18221, run #363899 on slot 1, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18218, run #363899 on slot 2, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18219, run #363899 on slot 3, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 2 INFO ===>>> start processing event #18222, run #363899 on slot 2, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 3 INFO ===>>> start processing event #18223, run #363899 on slot 3, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 0 INFO ===>>> start processing event #18220, run #363899 on slot 0, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18217, run #363899 on slot 3, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 3 INFO ===>>> start processing event #18221, run #363899 on slot 3, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18218, run #363899 on slot 1, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18219, run #363899 on slot 2, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 1 INFO ===>>> start processing event #18222, run #363899 on slot 1, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 2 INFO ===>>> start processing event #18223, run #363899 on slot 2, 96 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18220, run #363899 on slot 0, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18221, run #363899 on slot 1, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18222, run #363899 on slot 2, 99 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18223, run #363899 on slot 3, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 23.6664 +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18221, run #363899 on slot 3, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18222, run #363899 on slot 1, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18223, run #363899 on slot 2, 100 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 4.80402 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1310,7 +1310,7 @@ AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 1.48 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.22 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1322,10 +1322,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.36 ))s -IOVDbSvc INFO bytes in (( 1.84 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s +IOVDbSvc INFO bytes in (( 0.24 ))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.84 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.24 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1335,9 +1335,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -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.05 [s] Ave/Min/Max=0.525(+-0.395)/ 0.13/ 0.92 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 19.1 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 450 [ms] Ave/Min/Max= 225(+- 225)/ 0/ 450 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.57 [s] Ave/Min/Max=0.285(+-0.215)/ 0.07/ 0.5 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 4.22 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() 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 3bd2d06a7093..5bda63d102d7 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 03:44:22 CET 2019 +Sat Jan 26 19:52:46 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:44:49 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:53:04 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.7S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23964Kb Time = 0.64S 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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -250,11 +250,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.74S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.22S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -422,7 +422,7 @@ 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; TileBadChannels... INFO No drawer trips probabilities found in DB -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileMuR... INFO Initializing TileMuRcvContByteStreamTool @@ -641,23 +641,23 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.14 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/105700 (( 0.09 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.04 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643860 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/43200 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.02 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.30 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/105700 (( 0.48 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.02 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643860 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/43200 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.00 ))s IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s -IOVDbSvc INFO bytes in (( 0.75 ))s +IOVDbSvc INFO bytes in (( 1.04 ))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.15 ))s -IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.60 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.32 ))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 @@ -667,18 +667,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 0.86 [s] Ave/Min/Max= 0.43(+- 0.41)/ 0.02/ 0.84 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.09 [s] Ave/Min/Max=0.0838(+-0.248)/ 0/ 0.93 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 22.8 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 410 [ms] Ave/Min/Max= 205(+- 205)/ 0/ 410 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.52 [s] Ave/Min/Max= 0.04(+- 0.12)/ 0/ 0.45 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 5.47 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 03:45:40 CET 2019 +Sat Jan 26 19:53:19 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -687,7 +687,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -714,7 +714,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:46:11 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:53:36 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -730,8 +730,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -873,7 +873,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.62S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.61S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -885,7 +885,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -897,9 +897,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -930,11 +930,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 5196Kb Time = 1.71S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.21S 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 @@ -956,11 +956,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1080,12 +1080,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1096,208 +1096,208 @@ AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processi AthenaHiveEventLoopMgr 1 1 INFO ===>>> start processing event #18125, run #363899 on slot 1, 0 events processed so far <<<=== AthenaHiveEventLoopMgr 2 2 INFO ===>>> start processing event #18126, run #363899 on slot 2, 0 events processed so far <<<=== AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #18127, run #363899 on slot 3, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL -ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL -ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL -ToolSvc.TileROD_Decoder.TileROD_L2Bui...0 0 INFO TileL2Builder initialization completed -ToolSvc.TileMuRcvContByteStreamTool 0 0 INFO Initializing TileMuRcvContByteStreamTool +ClassIDSvc 1 1 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL +ClassIDSvc 1 1 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL +ClassIDSvc 1 1 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL +ToolSvc.TileROD_Decoder.TileROD_L2Bui...1 1 INFO TileL2Builder initialization completed +ToolSvc.TileMuRcvContByteStreamTool 1 1 INFO Initializing TileMuRcvContByteStreamTool AthenaHiveEventLoopMgr INFO ===>>> done processing event #18125, run #363899 on slot 1, 1 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18124, run #363899 on slot 0, 2 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18126, run #363899 on slot 2, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #18128, run #363899 on slot 0, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #18129, run #363899 on slot 1, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #18130, run #363899 on slot 2, 3 events processed so far <<<=== +AthenaHiveEventLoopMgr 4 1 INFO ===>>> start processing event #18128, run #363899 on slot 1, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18126, run #363899 on slot 2, 2 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18124, run #363899 on slot 0, 3 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18127, run #363899 on slot 3, 4 events processed so far <<<=== +AthenaHiveEventLoopMgr 5 0 INFO ===>>> start processing event #18129, run #363899 on slot 0, 4 events processed so far <<<=== +AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #18130, run #363899 on slot 2, 4 events processed so far <<<=== AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #18131, run #363899 on slot 3, 4 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18128, run #363899 on slot 0, 5 events processed so far <<<=== -AthenaHiveEventLoopMgr 8 0 INFO ===>>> start processing event #18132, run #363899 on slot 0, 5 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18130, run #363899 on slot 2, 6 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18129, run #363899 on slot 1, 7 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18128, run #363899 on slot 1, 5 events processed so far <<<=== +AthenaHiveEventLoopMgr 8 1 INFO ===>>> start processing event #18132, run #363899 on slot 1, 5 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18129, run #363899 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 0 INFO ===>>> start processing event #18133, run #363899 on slot 0, 6 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18130, run #363899 on slot 2, 7 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18131, run #363899 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #18133, run #363899 on slot 1, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr 10 2 INFO ===>>> start processing event #18134, run #363899 on slot 2, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr 11 3 INFO ===>>> start processing event #18135, run #363899 on slot 3, 8 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18132, run #363899 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr 12 0 INFO ===>>> start processing event #18136, run #363899 on slot 0, 9 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18133, run #363899 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 1 INFO ===>>> start processing event #18137, run #363899 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18134, run #363899 on slot 2, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 2 INFO ===>>> start processing event #18138, run #363899 on slot 2, 11 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18135, run #363899 on slot 3, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr 15 3 INFO ===>>> start processing event #18139, run #363899 on slot 3, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18136, run #363899 on slot 0, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18137, run #363899 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr 16 0 INFO ===>>> start processing event #18140, run #363899 on slot 0, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr 17 1 INFO ===>>> start processing event #18141, run #363899 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18138, run #363899 on slot 2, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18139, run #363899 on slot 3, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 18 2 INFO ===>>> start processing event #18142, run #363899 on slot 2, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 19 3 INFO ===>>> start processing event #18143, run #363899 on slot 3, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18140, run #363899 on slot 0, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr 20 0 INFO ===>>> start processing event #18144, run #363899 on slot 0, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18141, run #363899 on slot 1, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 21 1 INFO ===>>> start processing event #18145, run #363899 on slot 1, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18142, run #363899 on slot 2, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18143, run #363899 on slot 3, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 22 2 INFO ===>>> start processing event #18146, run #363899 on slot 2, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 23 3 INFO ===>>> start processing event #18147, run #363899 on slot 3, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18144, run #363899 on slot 0, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18145, run #363899 on slot 1, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr 24 0 INFO ===>>> start processing event #18148, run #363899 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 1 INFO ===>>> start processing event #18149, run #363899 on slot 1, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18146, run #363899 on slot 2, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 2 INFO ===>>> start processing event #18150, run #363899 on slot 2, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18147, run #363899 on slot 3, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr 27 3 INFO ===>>> start processing event #18151, run #363899 on slot 3, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18148, run #363899 on slot 0, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18149, run #363899 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr 28 0 INFO ===>>> start processing event #18152, run #363899 on slot 0, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 1 INFO ===>>> start processing event #18153, run #363899 on slot 1, 26 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18150, run #363899 on slot 2, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr 30 2 INFO ===>>> start processing event #18154, run #363899 on slot 2, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18151, run #363899 on slot 3, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18153, run #363899 on slot 1, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18152, run #363899 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 0 INFO ===>>> start processing event #18155, run #363899 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 1 INFO ===>>> start processing event #18156, run #363899 on slot 1, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 3 INFO ===>>> start processing event #18157, run #363899 on slot 3, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18154, run #363899 on slot 2, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 34 2 INFO ===>>> start processing event #18158, run #363899 on slot 2, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18155, run #363899 on slot 0, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 0 INFO ===>>> start processing event #18159, run #363899 on slot 0, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18157, run #363899 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18156, run #363899 on slot 1, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18158, run #363899 on slot 2, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 36 1 INFO ===>>> start processing event #18160, run #363899 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 2 INFO ===>>> start processing event #18161, run #363899 on slot 2, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 3 INFO ===>>> start processing event #18162, run #363899 on slot 3, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18159, run #363899 on slot 0, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr 39 0 INFO ===>>> start processing event #18163, run #363899 on slot 0, 36 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18160, run #363899 on slot 1, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 1 INFO ===>>> start processing event #18164, run #363899 on slot 1, 37 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18161, run #363899 on slot 2, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 2 INFO ===>>> start processing event #18165, run #363899 on slot 2, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18162, run #363899 on slot 3, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 3 INFO ===>>> start processing event #18166, run #363899 on slot 3, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18163, run #363899 on slot 0, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 0 INFO ===>>> start processing event #18167, run #363899 on slot 0, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18164, run #363899 on slot 1, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18165, run #363899 on slot 2, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr 44 1 INFO ===>>> start processing event #18168, run #363899 on slot 1, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr 45 2 INFO ===>>> start processing event #18169, run #363899 on slot 2, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18166, run #363899 on slot 3, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18167, run #363899 on slot 0, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 0 INFO ===>>> start processing event #18170, run #363899 on slot 0, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 3 INFO ===>>> start processing event #18171, run #363899 on slot 3, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18168, run #363899 on slot 1, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 1 INFO ===>>> start processing event #18172, run #363899 on slot 1, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18169, run #363899 on slot 2, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 2 INFO ===>>> start processing event #18173, run #363899 on slot 2, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18170, run #363899 on slot 0, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 0 INFO ===>>> start processing event #18174, run #363899 on slot 0, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18171, run #363899 on slot 3, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18172, run #363899 on slot 1, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18173, run #363899 on slot 2, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 1 INFO ===>>> start processing event #18175, run #363899 on slot 1, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 2 INFO ===>>> start processing event #18176, run #363899 on slot 2, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18132, run #363899 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 10 1 INFO ===>>> start processing event #18134, run #363899 on slot 1, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 11 2 INFO ===>>> start processing event #18135, run #363899 on slot 2, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr 12 3 INFO ===>>> start processing event #18136, run #363899 on slot 3, 9 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18133, run #363899 on slot 0, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #18137, run #363899 on slot 0, 10 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18134, run #363899 on slot 1, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #18138, run #363899 on slot 1, 11 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18136, run #363899 on slot 3, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18135, run #363899 on slot 2, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr 15 2 INFO ===>>> start processing event #18139, run #363899 on slot 2, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr 16 3 INFO ===>>> start processing event #18140, run #363899 on slot 3, 13 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18137, run #363899 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr 17 0 INFO ===>>> start processing event #18141, run #363899 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18138, run #363899 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr 18 1 INFO ===>>> start processing event #18142, run #363899 on slot 1, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18139, run #363899 on slot 2, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr 19 2 INFO ===>>> start processing event #18143, run #363899 on slot 2, 16 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18140, run #363899 on slot 3, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr 20 3 INFO ===>>> start processing event #18144, run #363899 on slot 3, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18141, run #363899 on slot 0, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18142, run #363899 on slot 1, 19 events processed so far <<<=== +AthenaHiveEventLoopMgr 21 0 INFO ===>>> start processing event #18145, run #363899 on slot 0, 19 events processed so far <<<=== +AthenaHiveEventLoopMgr 22 1 INFO ===>>> start processing event #18146, run #363899 on slot 1, 19 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18143, run #363899 on slot 2, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr 23 2 INFO ===>>> start processing event #18147, run #363899 on slot 2, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18144, run #363899 on slot 3, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr 24 3 INFO ===>>> start processing event #18148, run #363899 on slot 3, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18145, run #363899 on slot 0, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18146, run #363899 on slot 1, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #18149, run #363899 on slot 0, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #18150, run #363899 on slot 1, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18147, run #363899 on slot 2, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18148, run #363899 on slot 3, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr 27 2 INFO ===>>> start processing event #18151, run #363899 on slot 2, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #18152, run #363899 on slot 3, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18149, run #363899 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #18153, run #363899 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18150, run #363899 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #18154, run #363899 on slot 1, 27 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18151, run #363899 on slot 2, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #18155, run #363899 on slot 2, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18152, run #363899 on slot 3, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #18156, run #363899 on slot 3, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18153, run #363899 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #18157, run #363899 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18154, run #363899 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #18158, run #363899 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18155, run #363899 on slot 2, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #18159, run #363899 on slot 2, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18156, run #363899 on slot 3, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #18160, run #363899 on slot 3, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18157, run #363899 on slot 0, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #18161, run #363899 on slot 0, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18158, run #363899 on slot 1, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #18162, run #363899 on slot 1, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18159, run #363899 on slot 2, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #18163, run #363899 on slot 2, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18160, run #363899 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 3 INFO ===>>> start processing event #18164, run #363899 on slot 3, 37 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18161, run #363899 on slot 0, 38 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 0 INFO ===>>> start processing event #18165, run #363899 on slot 0, 38 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18162, run #363899 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #18166, run #363899 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18163, run #363899 on slot 2, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #18167, run #363899 on slot 2, 40 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18164, run #363899 on slot 3, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr 44 3 INFO ===>>> start processing event #18168, run #363899 on slot 3, 41 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18165, run #363899 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 45 0 INFO ===>>> start processing event #18169, run #363899 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18166, run #363899 on slot 1, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 1 INFO ===>>> start processing event #18170, run #363899 on slot 1, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18167, run #363899 on slot 2, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #18171, run #363899 on slot 2, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18169, run #363899 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #18172, run #363899 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18168, run #363899 on slot 3, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 3 INFO ===>>> start processing event #18173, run #363899 on slot 3, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18170, run #363899 on slot 1, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #18174, run #363899 on slot 1, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18171, run #363899 on slot 2, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 2 INFO ===>>> start processing event #18175, run #363899 on slot 2, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18172, run #363899 on slot 0, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18173, run #363899 on slot 3, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 0 INFO ===>>> start processing event #18176, run #363899 on slot 0, 50 events processed so far <<<=== AthenaHiveEventLoopMgr 53 3 INFO ===>>> start processing event #18177, run #363899 on slot 3, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18174, run #363899 on slot 0, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr 54 0 INFO ===>>> start processing event #18178, run #363899 on slot 0, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18175, run #363899 on slot 1, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 1 INFO ===>>> start processing event #18179, run #363899 on slot 1, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18176, run #363899 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 2 INFO ===>>> start processing event #18180, run #363899 on slot 2, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18174, run #363899 on slot 1, 51 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18175, run #363899 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr 54 1 INFO ===>>> start processing event #18178, run #363899 on slot 1, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 2 INFO ===>>> start processing event #18179, run #363899 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18176, run #363899 on slot 0, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 0 INFO ===>>> start processing event #18180, run #363899 on slot 0, 53 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18177, run #363899 on slot 3, 54 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18178, run #363899 on slot 0, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18179, run #363899 on slot 1, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 57 0 INFO ===>>> start processing event #18181, run #363899 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #18182, run #363899 on slot 1, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 3 INFO ===>>> start processing event #18183, run #363899 on slot 3, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18180, run #363899 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18181, run #363899 on slot 0, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr 60 0 INFO ===>>> start processing event #18184, run #363899 on slot 0, 58 events processed so far <<<=== -AthenaHiveEventLoopMgr 61 2 INFO ===>>> start processing event #18185, run #363899 on slot 2, 58 events processed so far <<<=== +AthenaHiveEventLoopMgr 57 3 INFO ===>>> start processing event #18181, run #363899 on slot 3, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18178, run #363899 on slot 1, 55 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #18182, run #363899 on slot 1, 55 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18179, run #363899 on slot 2, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 2 INFO ===>>> start processing event #18183, run #363899 on slot 2, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18180, run #363899 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr 60 0 INFO ===>>> start processing event #18184, run #363899 on slot 0, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18181, run #363899 on slot 3, 58 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18182, run #363899 on slot 1, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18183, run #363899 on slot 3, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 62 1 INFO ===>>> start processing event #18186, run #363899 on slot 1, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 3 INFO ===>>> start processing event #18187, run #363899 on slot 3, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #18185, run #363899 on slot 1, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr 62 3 INFO ===>>> start processing event #18186, run #363899 on slot 3, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18183, run #363899 on slot 2, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 2 INFO ===>>> start processing event #18187, run #363899 on slot 2, 60 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18184, run #363899 on slot 0, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #18188, run #363899 on slot 0, 61 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18185, run #363899 on slot 2, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr 65 2 INFO ===>>> start processing event #18189, run #363899 on slot 2, 62 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18186, run #363899 on slot 1, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 1 INFO ===>>> start processing event #18190, run #363899 on slot 1, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18187, run #363899 on slot 3, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18185, run #363899 on slot 1, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr 64 0 INFO ===>>> start processing event #18188, run #363899 on slot 0, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr 65 1 INFO ===>>> start processing event #18189, run #363899 on slot 1, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18186, run #363899 on slot 3, 63 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18187, run #363899 on slot 2, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 2 INFO ===>>> start processing event #18190, run #363899 on slot 2, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 3 INFO ===>>> start processing event #18191, run #363899 on slot 3, 64 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18188, run #363899 on slot 0, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #18191, run #363899 on slot 0, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 3 INFO ===>>> start processing event #18192, run #363899 on slot 3, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18189, run #363899 on slot 2, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18190, run #363899 on slot 1, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #18193, run #363899 on slot 1, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #18192, run #363899 on slot 0, 65 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18189, run #363899 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #18193, run #363899 on slot 1, 66 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18190, run #363899 on slot 2, 67 events processed so far <<<=== AthenaHiveEventLoopMgr 70 2 INFO ===>>> start processing event #18194, run #363899 on slot 2, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18191, run #363899 on slot 0, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18192, run #363899 on slot 3, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 0 INFO ===>>> start processing event #18195, run #363899 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 3 INFO ===>>> start processing event #18196, run #363899 on slot 3, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18191, run #363899 on slot 3, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 3 INFO ===>>> start processing event #18195, run #363899 on slot 3, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18192, run #363899 on slot 0, 69 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18193, run #363899 on slot 1, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #18196, run #363899 on slot 0, 70 events processed so far <<<=== AthenaHiveEventLoopMgr 73 1 INFO ===>>> start processing event #18197, run #363899 on slot 1, 70 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18194, run #363899 on slot 2, 71 events processed so far <<<=== AthenaHiveEventLoopMgr 74 2 INFO ===>>> start processing event #18198, run #363899 on slot 2, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18195, run #363899 on slot 0, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18196, run #363899 on slot 3, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 0 INFO ===>>> start processing event #18199, run #363899 on slot 0, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr 76 3 INFO ===>>> start processing event #18200, run #363899 on slot 3, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18195, run #363899 on slot 3, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18196, run #363899 on slot 0, 73 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18197, run #363899 on slot 1, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #18201, run #363899 on slot 1, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 0 INFO ===>>> start processing event #18199, run #363899 on slot 0, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 76 1 INFO ===>>> start processing event #18200, run #363899 on slot 1, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr 77 3 INFO ===>>> start processing event #18201, run #363899 on slot 3, 74 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18198, run #363899 on slot 2, 75 events processed so far <<<=== AthenaHiveEventLoopMgr 78 2 INFO ===>>> start processing event #18202, run #363899 on slot 2, 75 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18199, run #363899 on slot 0, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18200, run #363899 on slot 3, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #18203, run #363899 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 3 INFO ===>>> start processing event #18204, run #363899 on slot 3, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18201, run #363899 on slot 1, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 1 INFO ===>>> start processing event #18205, run #363899 on slot 1, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #18203, run #363899 on slot 0, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18200, run #363899 on slot 1, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 1 INFO ===>>> start processing event #18204, run #363899 on slot 1, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18201, run #363899 on slot 3, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 3 INFO ===>>> start processing event #18205, run #363899 on slot 3, 78 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18202, run #363899 on slot 2, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr 82 2 INFO ===>>> start processing event #18206, run #363899 on slot 2, 79 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18203, run #363899 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 0 INFO ===>>> start processing event #18207, run #363899 on slot 0, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18204, run #363899 on slot 3, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 3 INFO ===>>> start processing event #18208, run #363899 on slot 3, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18205, run #363899 on slot 1, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 1 INFO ===>>> start processing event #18209, run #363899 on slot 1, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18206, run #363899 on slot 2, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18207, run #363899 on slot 0, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 86 0 INFO ===>>> start processing event #18210, run #363899 on slot 0, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 2 INFO ===>>> start processing event #18211, run #363899 on slot 2, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18208, run #363899 on slot 3, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18209, run #363899 on slot 1, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 1 INFO ===>>> start processing event #18212, run #363899 on slot 1, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18204, run #363899 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 82 0 INFO ===>>> start processing event #18206, run #363899 on slot 0, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #18207, run #363899 on slot 1, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 2 INFO ===>>> start processing event #18208, run #363899 on slot 2, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18205, run #363899 on slot 3, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 3 INFO ===>>> start processing event #18209, run #363899 on slot 3, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18206, run #363899 on slot 0, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 86 0 INFO ===>>> start processing event #18210, run #363899 on slot 0, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18207, run #363899 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #18211, run #363899 on slot 1, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18208, run #363899 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18209, run #363899 on slot 3, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 2 INFO ===>>> start processing event #18212, run #363899 on slot 2, 86 events processed so far <<<=== AthenaHiveEventLoopMgr 89 3 INFO ===>>> start processing event #18213, run #363899 on slot 3, 86 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18210, run #363899 on slot 0, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18211, run #363899 on slot 2, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 90 0 INFO ===>>> start processing event #18214, run #363899 on slot 0, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 2 INFO ===>>> start processing event #18215, run #363899 on slot 2, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18212, run #363899 on slot 1, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr 90 0 INFO ===>>> start processing event #18214, run #363899 on slot 0, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18211, run #363899 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 1 INFO ===>>> start processing event #18215, run #363899 on slot 1, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18212, run #363899 on slot 2, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 2 INFO ===>>> start processing event #18216, run #363899 on slot 2, 89 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18213, run #363899 on slot 3, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 1 INFO ===>>> start processing event #18216, run #363899 on slot 1, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 3 INFO ===>>> start processing event #18217, run #363899 on slot 3, 90 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #18214, run #363899 on slot 0, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18215, run #363899 on slot 2, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 0 INFO ===>>> start processing event #18218, run #363899 on slot 0, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 2 INFO ===>>> start processing event #18219, run #363899 on slot 2, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18216, run #363899 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 1 INFO ===>>> start processing event #18220, run #363899 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18217, run #363899 on slot 3, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 3 INFO ===>>> start processing event #18221, run #363899 on slot 3, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18218, run #363899 on slot 0, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18219, run #363899 on slot 2, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 0 INFO ===>>> start processing event #18222, run #363899 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 2 INFO ===>>> start processing event #18223, run #363899 on slot 2, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18220, run #363899 on slot 1, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18221, run #363899 on slot 3, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18222, run #363899 on slot 0, 99 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #18223, run #363899 on slot 2, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 14.4819 +AthenaHiveEventLoopMgr 93 0 INFO ===>>> start processing event #18217, run #363899 on slot 0, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 3 INFO ===>>> start processing event #18218, run #363899 on slot 3, 91 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18215, run #363899 on slot 1, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 1 INFO ===>>> start processing event #18219, run #363899 on slot 1, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18216, run #363899 on slot 2, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 2 INFO ===>>> start processing event #18220, run #363899 on slot 2, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18217, run #363899 on slot 0, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 0 INFO ===>>> start processing event #18221, run #363899 on slot 0, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18218, run #363899 on slot 3, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 3 INFO ===>>> start processing event #18222, run #363899 on slot 3, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18219, run #363899 on slot 1, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18220, run #363899 on slot 2, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 1 INFO ===>>> start processing event #18223, run #363899 on slot 1, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18221, run #363899 on slot 0, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18222, run #363899 on slot 3, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #18223, run #363899 on slot 1, 100 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 2.61152 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1315,7 +1315,7 @@ AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.07 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.16 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1327,10 +1327,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.04 ))s -IOVDbSvc INFO bytes in (( 0.11 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.01 ))s +IOVDbSvc INFO bytes in (( 0.17 ))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.11 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.17 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1341,9 +1341,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... 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.385)/ 0.02/ 0.79 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max=0.525(+-0.365)/ 0.16/ 0.89 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 20.5 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 440 [ms] Ave/Min/Max= 220(+- 220)/ 0/ 440 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.58 [s] Ave/Min/Max= 0.29(+- 0.21)/ 0.08/ 0.5 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 3.98 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() 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 84fd67399e26..f3fbb829603f 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref @@ -1,14 +1,14 @@ -Tue Jan 22 03:41:29 CET 2019 +Sat Jan 26 19:51:16 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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,7 +34,7 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:41:59 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:51:38 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -51,8 +51,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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -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= 28576Kb Time = 1.57S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 23964Kb Time = 0.69S 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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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. @@ -250,11 +250,11 @@ GeoModelSvc.Til... INFO PLUG2 Rmin= 2981 R GeoModelSvc.Til... INFO Positioning negative ITC with translation -3405 GeoModelSvc.Til... INFO Positioning negative Gap with translation -3552 GeoModelSvc.Til... INFO Positioning negative Crack with translation -3536 -GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.Til... INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.Til... INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrMan... INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.81S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 3568Kb Time = 0.26S 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/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 @@ -388,12 +388,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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-20T2256/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/2019-01-25T2258/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 @@ -422,7 +422,7 @@ 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 -ClassIDSvc INFO getRegistryEntries: read 2407 CLIDRegistry entries for module ALL +ClassIDSvc INFO getRegistryEntries: read 2427 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL ToolSvc.TileROD... INFO TileL2Builder initialization completed ToolSvc.TileRaw... INFO Initializing TileRawChannelContByteStreamTool @@ -641,22 +641,22 @@ IncidentProcAlg2 INFO Finalize EventInfoByteSt... INFO finalize PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.07 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.15 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104132 (( 0.16 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.10 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.08 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/108 (( 0.04 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/EMS (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/116 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.05 ))s -IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.07 ))s -IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.18 ))s -IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.06 ))s -IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.10 ))s -IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.02 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.02 ))s -IOVDbSvc INFO bytes in (( 1.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/FIBER (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/964 (( 0.03 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/LIN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/96 (( 0.14 ))s +IOVDbFolder INFO Folder /TILE/OFL02/CALIB/LAS/NLN (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/104 (( 0.06 ))s +IOVDbFolder INFO Folder /TILE/OFL02/NOISE/SAMPLE (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/643828 (( 0.20 ))s +IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/93084 (( 0.10 ))s +IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/120 (( 0.05 ))s +IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 1/1 objs/chan/bytes 277/277/100 (( 0.01 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 1.10 ))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.10 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.17 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 2 nFolders: 11 ReadTime: (( 0.93 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -667,18 +667,18 @@ ToolSvc.TileROD... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -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.03 [s] Ave/Min/Max=0.0792(+-0.235)/ 0/ 0.88 [s] #= 13 -ChronoStatSvc INFO Time User : Tot= 41.7 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 460 [ms] Ave/Min/Max= 230(+- 220)/ 10/ 450 [ms] #= 2 +cObj_ALL INFO Time User : Tot= 0.56 [s] Ave/Min/Max=0.0431(+-0.128)/ 0/ 0.48 [s] #= 13 +ChronoStatSvc INFO Time User : Tot= 13.4 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.f... INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully ApplicationMgr INFO Application Manager Terminated successfully Py:Athena INFO leaving with code 0: "successful run" -Tue Jan 22 03:43:23 CET 2019 +Sat Jan 26 19:52:09 CET 2019 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-work3/5871b6e8de] -- built on [2019-01-21T2115] +Py:Athena INFO using release [WorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e0c78d866] -- built on [2019-01-26T1705] Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py" Py:Athena INFO executing ROOT6Setup Py:Athena INFO configuring AthenaHive with [4] concurrent threads and [4] concurrent events @@ -687,7 +687,7 @@ 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 5456 configurables from 80 genConfDb files +Py:ConfigurableDb INFO Read module info for 5456 configurables from 76 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 @@ -714,7 +714,7 @@ MessageSvc INFO Activating in a separate thread ApplicationMgr SUCCESS ==================================================================================================================================== Welcome to ApplicationMgr (GaudiCoreSvc v30r5) - running on lxplus068.cern.ch on Tue Jan 22 03:43:53 2019 + running on lxplus062.cern.ch on Sat Jan 26 19:52:27 2019 ==================================================================================================================================== ApplicationMgr INFO Successfully loaded modules : AthenaServices ApplicationMgr INFO Application Manager Configured successfully @@ -730,8 +730,8 @@ PoolSvc INFO io_register[PoolSvc](xml 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/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config -DBReplicaSvc INFO Total of 10 servers found for host lxplus068.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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config +DBReplicaSvc INFO Total of 10 servers found for host lxplus062.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 @@ -873,7 +873,7 @@ EndcapDMConstruction INFO Start building EC electr multi-layered version of absorbers activated, mlabs == 1 ================================================ EndcapDMConstruction INFO Start building EC electronics geometry -GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 28576Kb Time = 1.76S +GeoModelSvc INFO GeoModelSvc.LArDetectorToolNV SZ= 22940Kb Time = 0.68S GeoModelSvc.TileDetectorTool INFO Entering TileDetectorTool::create() TileDddbManager INFO m_tag = ATLAS-R2-2016-01-00-01 TileDddbManager INFO n_tiglob = 5 @@ -885,7 +885,7 @@ TileDddbManager INFO n_tileSwitches = 1 ClassIDSvc INFO getRegistryEntries: read 213 CLIDRegistry entries for module ALL CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileNeighbour_reduced.txt TileHWIDDetDescrCnv INFO in createObj: creating a TileHWID helper object in the detector store TileHWID INFO initialize_from_dictionary AtlasDetectorID INFO initialize_from_dictionary - OK @@ -897,9 +897,9 @@ CaloIDHelper_IDDetDescrCnv INFO in createObj: creating a AtlasDetectorID INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCal3DNeighborsPrev-April2011.txt CaloIDHelper_IDDetDescrCnv 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. @@ -930,11 +930,11 @@ GeoModelSvc.TileDetectorTool INFO GeoModelSvc.TileDetectorTool INFO Positioning negative ITC with translation -3405 GeoModelSvc.TileDetectorTool INFO Positioning negative Gap with translation -3552 GeoModelSvc.TileDetectorTool INFO Positioning negative Crack with translation -3536 -GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) GeoModelKernelUnits::cm -GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) GeoModelKernelUnits::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of positive ext.barrel with rotation (0,0,0)) and translation (0,0,0) Gaudi::Units::cm +GeoModelSvc.TileDetectorTool INFO Global positioning of negative ext.barrel with rotation (0,0,0)) and translation (0,0,1) Gaudi::Units::cm TileDetDescrManager INFO Entering create_elements() -GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4172Kb Time = 1.78S +GeoModelSvc INFO GeoModelSvc.TileDetectorTool SZ= 4592Kb Time = 0.22S 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 @@ -956,11 +956,11 @@ TileInfoLoader INFO Sampling fraction for E2 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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-20T2256/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/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/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/pulse_adder_muon_physics.dat CaloIDHelper_IDDetDescrCnv 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 @@ -1083,12 +1083,12 @@ CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a LArFCAL_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells2DNeighborsNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsNextNew-April2014.txt -LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells2DNeighborsNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsNextNew-April2014.txt +LArFCAL_Base_ID 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt CaloIDHelper_IDDetDescrCnv 0 0 INFO in createObj: creating a Tile_SuperCell_ID helper object in the detector store AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK -TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-20T2256/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/TileSuperCellNeighbour.txt +TileNeighbour 0 0 INFO Reading file /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2019-01-25T2258/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/TileSuperCellNeighbour.txt AtlasDetectorID 0 0 INFO initialize_from_dictionary - OK CaloIdMgrDetDescrCnv 0 0 INFO Finished CaloIdMgrDetDescrCnv 0 0 INFO Initializing CaloIdMgr from values in CaloIdMgrDetDescrCnv @@ -1096,7 +1096,7 @@ Domain[ROOT_All] 0 0 INFO -> Access DbDatabase Domain[ROOT_All] 0 0 INFO /cvmfs/atlas-condb.cern.ch/repo/conditions/cond08/cond08_mc.000003.gen.COND/cond08_mc.000003.gen.COND._0064.pool.root RootDatabase.open 0 0 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 AthenaHiveEventLoopMgr 0 0 INFO ===>>> start processing event #1129572, run #204073 on slot 0, 0 events processed so far <<<=== -ClassIDSvc 0 0 INFO getRegistryEntries: read 650 CLIDRegistry entries for module ALL +ClassIDSvc 0 0 INFO getRegistryEntries: read 670 CLIDRegistry entries for module ALL SGInputLoader 0 0 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) ClassIDSvc 0 0 INFO getRegistryEntries: read 1757 CLIDRegistry entries for module ALL ClassIDSvc 0 0 INFO getRegistryEntries: read 89 CLIDRegistry entries for module ALL @@ -1109,202 +1109,202 @@ SGInputLoader 2 2 WARNING unable to find proxy for AthenaHiveEventLoopMgr 3 3 INFO ===>>> start processing event #1131086, run #204073 on slot 3, 0 events processed so far <<<=== SGInputLoader 3 3 WARNING unable to find proxy for ( 'TileRawChannelContainer' , 'StoreGateSvc+MuRcvRawChCnt' ) AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129572, run #204073 on slot 0, 1 events processed so far <<<=== +AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 1 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1129665, run #204073 on slot 1, 2 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131212, run #204073 on slot 2, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 4 0 INFO ===>>> start processing event #1130272, run #204073 on slot 0, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 3 events processed so far <<<=== -AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 3 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131086, run #204073 on slot 3, 4 events processed so far <<<=== +AthenaHiveEventLoopMgr 5 1 INFO ===>>> start processing event #1131269, run #204073 on slot 1, 4 events processed so far <<<=== +AthenaHiveEventLoopMgr 6 2 INFO ===>>> start processing event #1130716, run #204073 on slot 2, 4 events processed so far <<<=== AthenaHiveEventLoopMgr 7 3 INFO ===>>> start processing event #1132019, run #204073 on slot 3, 4 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130272, run #204073 on slot 0, 5 events processed so far <<<=== AthenaHiveEventLoopMgr 8 0 INFO ===>>> start processing event #1132092, run #204073 on slot 0, 5 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131269, run #204073 on slot 1, 6 events processed so far <<<=== -AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #1130238, run #204073 on slot 1, 6 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130716, run #204073 on slot 2, 7 events processed so far <<<=== +AthenaHiveEventLoopMgr 9 1 INFO ===>>> start processing event #1130238, run #204073 on slot 1, 7 events processed so far <<<=== AthenaHiveEventLoopMgr 10 2 INFO ===>>> start processing event #1134553, run #204073 on slot 2, 7 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132019, run #204073 on slot 3, 8 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132092, run #204073 on slot 0, 9 events processed so far <<<=== AthenaHiveEventLoopMgr 11 0 INFO ===>>> start processing event #1130999, run #204073 on slot 0, 9 events processed so far <<<=== AthenaHiveEventLoopMgr 12 3 INFO ===>>> start processing event #1133461, run #204073 on slot 3, 9 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130238, run #204073 on slot 1, 10 events processed so far <<<=== -AthenaHiveEventLoopMgr 13 1 INFO ===>>> start processing event #1131152, run #204073 on slot 1, 10 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134553, run #204073 on slot 2, 11 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130999, run #204073 on slot 0, 12 events processed so far <<<=== -AthenaHiveEventLoopMgr 14 0 INFO ===>>> start processing event #1130142, run #204073 on slot 0, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 13 0 INFO ===>>> start processing event #1131152, run #204073 on slot 0, 12 events processed so far <<<=== +AthenaHiveEventLoopMgr 14 1 INFO ===>>> start processing event #1130142, run #204073 on slot 1, 12 events processed so far <<<=== AthenaHiveEventLoopMgr 15 2 INFO ===>>> start processing event #1132770, run #204073 on slot 2, 12 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133461, run #204073 on slot 3, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr 16 3 INFO ===>>> start processing event #1132365, run #204073 on slot 3, 13 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr 17 1 INFO ===>>> start processing event #1136791, run #204073 on slot 1, 14 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 0, 15 events processed so far <<<=== -AthenaHiveEventLoopMgr 18 0 INFO ===>>> start processing event #1133781, run #204073 on slot 0, 15 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1131152, run #204073 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr 16 0 INFO ===>>> start processing event #1132365, run #204073 on slot 0, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr 17 3 INFO ===>>> start processing event #1136791, run #204073 on slot 3, 14 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1130142, run #204073 on slot 1, 15 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132770, run #204073 on slot 2, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr 19 2 INFO ===>>> start processing event #1132067, run #204073 on slot 2, 16 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 3, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr 20 3 INFO ===>>> start processing event #1138637, run #204073 on slot 3, 17 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 1, 18 events processed so far <<<=== -AthenaHiveEventLoopMgr 21 1 INFO ===>>> start processing event #1139495, run #204073 on slot 1, 18 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132365, run #204073 on slot 0, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr 18 0 INFO ===>>> start processing event #1133781, run #204073 on slot 0, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr 19 1 INFO ===>>> start processing event #1132067, run #204073 on slot 1, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr 20 2 INFO ===>>> start processing event #1138637, run #204073 on slot 2, 17 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136791, run #204073 on slot 3, 18 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133781, run #204073 on slot 0, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr 22 0 INFO ===>>> start processing event #1140193, run #204073 on slot 0, 19 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 2, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr 23 2 INFO ===>>> start processing event #1142953, run #204073 on slot 2, 20 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 3, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr 24 3 INFO ===>>> start processing event #1139127, run #204073 on slot 3, 21 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr 25 0 INFO ===>>> start processing event #1141272, run #204073 on slot 0, 22 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 23 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 2, 24 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 27 2 INFO ===>>> start processing event #1139599, run #204073 on slot 2, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr 28 3 INFO ===>>> start processing event #1140314, run #204073 on slot 3, 25 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1132067, run #204073 on slot 1, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr 21 0 INFO ===>>> start processing event #1139495, run #204073 on slot 0, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr 22 1 INFO ===>>> start processing event #1140193, run #204073 on slot 1, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr 23 3 INFO ===>>> start processing event #1142953, run #204073 on slot 3, 20 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138637, run #204073 on slot 2, 21 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139495, run #204073 on slot 0, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr 24 0 INFO ===>>> start processing event #1139127, run #204073 on slot 0, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr 25 2 INFO ===>>> start processing event #1141272, run #204073 on slot 2, 22 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140193, run #204073 on slot 1, 23 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142953, run #204073 on slot 3, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 26 1 INFO ===>>> start processing event #1137117, run #204073 on slot 1, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr 27 3 INFO ===>>> start processing event #1139599, run #204073 on slot 3, 24 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139127, run #204073 on slot 0, 25 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141272, run #204073 on slot 2, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr 28 0 INFO ===>>> start processing event #1140314, run #204073 on slot 0, 26 events processed so far <<<=== +AthenaHiveEventLoopMgr 29 2 INFO ===>>> start processing event #1133685, run #204073 on slot 2, 26 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137117, run #204073 on slot 1, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr 29 0 INFO ===>>> start processing event #1133685, run #204073 on slot 0, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #1143279, run #204073 on slot 1, 27 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 2, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr 31 2 INFO ===>>> start processing event #1137563, run #204073 on slot 2, 28 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr 32 3 INFO ===>>> start processing event #1139927, run #204073 on slot 3, 29 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 0, 30 events processed so far <<<=== -AthenaHiveEventLoopMgr 33 0 INFO ===>>> start processing event #1141197, run #204073 on slot 0, 30 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139599, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr 30 1 INFO ===>>> start processing event #1143279, run #204073 on slot 1, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr 31 3 INFO ===>>> start processing event #1137563, run #204073 on slot 3, 28 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140314, run #204073 on slot 0, 29 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1133685, run #204073 on slot 2, 30 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143279, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr 34 1 INFO ===>>> start processing event #1140039, run #204073 on slot 1, 31 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 2, 32 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr 35 2 INFO ===>>> start processing event #1142531, run #204073 on slot 2, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 32 0 INFO ===>>> start processing event #1139927, run #204073 on slot 0, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 33 1 INFO ===>>> start processing event #1141197, run #204073 on slot 1, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr 34 2 INFO ===>>> start processing event #1140039, run #204073 on slot 2, 31 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137563, run #204073 on slot 3, 32 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139927, run #204073 on slot 0, 33 events processed so far <<<=== +AthenaHiveEventLoopMgr 35 0 INFO ===>>> start processing event #1142531, run #204073 on slot 0, 33 events processed so far <<<=== AthenaHiveEventLoopMgr 36 3 INFO ===>>> start processing event #1139475, run #204073 on slot 3, 33 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 34 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 35 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 2, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141197, run #204073 on slot 1, 34 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140039, run #204073 on slot 2, 35 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142531, run #204073 on slot 0, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 37 0 INFO ===>>> start processing event #1139958, run #204073 on slot 0, 36 events processed so far <<<=== +AthenaHiveEventLoopMgr 38 1 INFO ===>>> start processing event #1143765, run #204073 on slot 1, 36 events processed so far <<<=== AthenaHiveEventLoopMgr 39 2 INFO ===>>> start processing event #1143097, run #204073 on slot 2, 36 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139475, run #204073 on slot 3, 37 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139958, run #204073 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #1134147, run #204073 on slot 0, 38 events processed so far <<<=== -AthenaHiveEventLoopMgr 41 3 INFO ===>>> start processing event #1137156, run #204073 on slot 3, 38 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143765, run #204073 on slot 1, 39 events processed so far <<<=== -AthenaHiveEventLoopMgr 42 1 INFO ===>>> start processing event #1136377, run #204073 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 40 0 INFO ===>>> start processing event #1134147, run #204073 on slot 0, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 41 1 INFO ===>>> start processing event #1137156, run #204073 on slot 1, 39 events processed so far <<<=== +AthenaHiveEventLoopMgr 42 3 INFO ===>>> start processing event #1136377, run #204073 on slot 3, 39 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143097, run #204073 on slot 2, 40 events processed so far <<<=== -AthenaHiveEventLoopMgr 43 2 INFO ===>>> start processing event #1137842, run #204073 on slot 2, 40 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1134147, run #204073 on slot 0, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr 44 0 INFO ===>>> start processing event #1141705, run #204073 on slot 0, 41 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 3, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr 45 3 INFO ===>>> start processing event #1143410, run #204073 on slot 3, 42 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr 46 1 INFO ===>>> start processing event #1144170, run #204073 on slot 1, 43 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr 47 2 INFO ===>>> start processing event #1145987, run #204073 on slot 2, 44 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 0, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr 48 0 INFO ===>>> start processing event #1145633, run #204073 on slot 0, 45 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 3, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr 49 3 INFO ===>>> start processing event #1135005, run #204073 on slot 3, 46 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #1142167, run #204073 on slot 1, 47 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 2, 48 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 51 0 INFO ===>>> start processing event #1144646, run #204073 on slot 0, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr 52 2 INFO ===>>> start processing event #1145027, run #204073 on slot 2, 49 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 3, 50 events processed so far <<<=== -AthenaHiveEventLoopMgr 53 3 INFO ===>>> start processing event #1144112, run #204073 on slot 3, 50 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137156, run #204073 on slot 1, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 43 0 INFO ===>>> start processing event #1137842, run #204073 on slot 0, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 44 1 INFO ===>>> start processing event #1141705, run #204073 on slot 1, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr 45 2 INFO ===>>> start processing event #1143410, run #204073 on slot 2, 42 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136377, run #204073 on slot 3, 43 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137842, run #204073 on slot 0, 44 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1141705, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 46 0 INFO ===>>> start processing event #1144170, run #204073 on slot 0, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 47 1 INFO ===>>> start processing event #1145987, run #204073 on slot 1, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr 48 3 INFO ===>>> start processing event #1145633, run #204073 on slot 3, 45 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143410, run #204073 on slot 2, 46 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144170, run #204073 on slot 0, 47 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145987, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 49 0 INFO ===>>> start processing event #1135005, run #204073 on slot 0, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 50 1 INFO ===>>> start processing event #1142167, run #204073 on slot 1, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr 51 2 INFO ===>>> start processing event #1144646, run #204073 on slot 2, 48 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145633, run #204073 on slot 3, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr 52 3 INFO ===>>> start processing event #1145027, run #204073 on slot 3, 49 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1135005, run #204073 on slot 0, 50 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142167, run #204073 on slot 1, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr 54 1 INFO ===>>> start processing event #1138485, run #204073 on slot 1, 51 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr 55 0 INFO ===>>> start processing event #1144565, run #204073 on slot 0, 52 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr 56 2 INFO ===>>> start processing event #1139498, run #204073 on slot 2, 53 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 3, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144646, run #204073 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr 53 0 INFO ===>>> start processing event #1144112, run #204073 on slot 0, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr 54 1 INFO ===>>> start processing event #1138485, run #204073 on slot 1, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr 55 2 INFO ===>>> start processing event #1144565, run #204073 on slot 2, 52 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145027, run #204073 on slot 3, 53 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144112, run #204073 on slot 0, 54 events processed so far <<<=== +AthenaHiveEventLoopMgr 56 0 INFO ===>>> start processing event #1139498, run #204073 on slot 0, 54 events processed so far <<<=== AthenaHiveEventLoopMgr 57 3 INFO ===>>> start processing event #1136546, run #204073 on slot 3, 54 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138485, run #204073 on slot 1, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #1143799, run #204073 on slot 1, 55 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144565, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr 59 0 INFO ===>>> start processing event #1142877, run #204073 on slot 0, 56 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 2, 57 events processed so far <<<=== -AthenaHiveEventLoopMgr 60 2 INFO ===>>> start processing event #1149894, run #204073 on slot 2, 57 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144565, run #204073 on slot 2, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr 58 1 INFO ===>>> start processing event #1143799, run #204073 on slot 1, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr 59 2 INFO ===>>> start processing event #1142877, run #204073 on slot 2, 56 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1139498, run #204073 on slot 0, 57 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1136546, run #204073 on slot 3, 58 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143799, run #204073 on slot 1, 59 events processed so far <<<=== +AthenaHiveEventLoopMgr 60 0 INFO ===>>> start processing event #1149894, run #204073 on slot 0, 59 events processed so far <<<=== AthenaHiveEventLoopMgr 61 1 INFO ===>>> start processing event #1145364, run #204073 on slot 1, 59 events processed so far <<<=== AthenaHiveEventLoopMgr 62 3 INFO ===>>> start processing event #1143770, run #204073 on slot 3, 59 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 0, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr 63 0 INFO ===>>> start processing event #1148361, run #204073 on slot 0, 60 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 2, 61 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142877, run #204073 on slot 2, 60 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149894, run #204073 on slot 0, 61 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145364, run #204073 on slot 1, 62 events processed so far <<<=== +AthenaHiveEventLoopMgr 63 0 INFO ===>>> start processing event #1148361, run #204073 on slot 0, 62 events processed so far <<<=== AthenaHiveEventLoopMgr 64 1 INFO ===>>> start processing event #1148167, run #204073 on slot 1, 62 events processed so far <<<=== AthenaHiveEventLoopMgr 65 2 INFO ===>>> start processing event #1138948, run #204073 on slot 2, 62 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143770, run #204073 on slot 3, 63 events processed so far <<<=== -AthenaHiveEventLoopMgr 66 3 INFO ===>>> start processing event #1144808, run #204073 on slot 3, 63 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148361, run #204073 on slot 0, 64 events processed so far <<<=== -AthenaHiveEventLoopMgr 67 0 INFO ===>>> start processing event #1145832, run #204073 on slot 0, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr 66 0 INFO ===>>> start processing event #1144808, run #204073 on slot 0, 64 events processed so far <<<=== +AthenaHiveEventLoopMgr 67 3 INFO ===>>> start processing event #1145832, run #204073 on slot 3, 64 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148167, run #204073 on slot 1, 65 events processed so far <<<=== -AthenaHiveEventLoopMgr 68 1 INFO ===>>> start processing event #1153100, run #204073 on slot 1, 65 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138948, run #204073 on slot 2, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr 69 2 INFO ===>>> start processing event #1142524, run #204073 on slot 2, 66 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 3, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr 70 3 INFO ===>>> start processing event #1138294, run #204073 on slot 3, 67 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 1, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr 71 1 INFO ===>>> start processing event #1138350, run #204073 on slot 1, 68 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr 72 0 INFO ===>>> start processing event #1149424, run #204073 on slot 0, 69 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 2, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr 73 2 INFO ===>>> start processing event #1151102, run #204073 on slot 2, 70 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 3, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr 74 3 INFO ===>>> start processing event #1152242, run #204073 on slot 3, 71 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr 75 1 INFO ===>>> start processing event #1148416, run #204073 on slot 1, 72 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 0, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 73 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 2, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr 77 2 INFO ===>>> start processing event #1149997, run #204073 on slot 2, 74 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 3, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1144808, run #204073 on slot 0, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 68 0 INFO ===>>> start processing event #1153100, run #204073 on slot 0, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 69 1 INFO ===>>> start processing event #1142524, run #204073 on slot 1, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr 70 2 INFO ===>>> start processing event #1138294, run #204073 on slot 2, 67 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145832, run #204073 on slot 3, 68 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153100, run #204073 on slot 0, 69 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142524, run #204073 on slot 1, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr 71 0 INFO ===>>> start processing event #1138350, run #204073 on slot 0, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr 72 1 INFO ===>>> start processing event #1149424, run #204073 on slot 1, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr 73 3 INFO ===>>> start processing event #1151102, run #204073 on slot 3, 70 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138294, run #204073 on slot 2, 71 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1138350, run #204073 on slot 0, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr 74 0 INFO ===>>> start processing event #1152242, run #204073 on slot 0, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr 75 2 INFO ===>>> start processing event #1148416, run #204073 on slot 2, 72 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149424, run #204073 on slot 1, 73 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151102, run #204073 on slot 3, 74 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152242, run #204073 on slot 0, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 76 0 INFO ===>>> start processing event #1142753, run #204073 on slot 0, 75 events processed so far <<<=== +AthenaHiveEventLoopMgr 77 1 INFO ===>>> start processing event #1149997, run #204073 on slot 1, 75 events processed so far <<<=== AthenaHiveEventLoopMgr 78 3 INFO ===>>> start processing event #1151617, run #204073 on slot 3, 75 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 1, 76 events processed so far <<<=== -AthenaHiveEventLoopMgr 79 1 INFO ===>>> start processing event #1149794, run #204073 on slot 1, 76 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148416, run #204073 on slot 2, 76 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142753, run #204073 on slot 0, 77 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 2, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 80 0 INFO ===>>> start processing event #1152504, run #204073 on slot 0, 78 events processed so far <<<=== -AthenaHiveEventLoopMgr 81 2 INFO ===>>> start processing event #1142485, run #204073 on slot 2, 78 events processed so far <<<=== +AthenaHiveEventLoopMgr 79 0 INFO ===>>> start processing event #1149794, run #204073 on slot 0, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr 80 2 INFO ===>>> start processing event #1152504, run #204073 on slot 2, 77 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149997, run #204073 on slot 1, 78 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151617, run #204073 on slot 3, 79 events processed so far <<<=== +AthenaHiveEventLoopMgr 81 1 INFO ===>>> start processing event #1142485, run #204073 on slot 1, 79 events processed so far <<<=== AthenaHiveEventLoopMgr 82 3 INFO ===>>> start processing event #1151364, run #204073 on slot 3, 79 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 1, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr 83 1 INFO ===>>> start processing event #1143901, run #204073 on slot 1, 80 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr 84 0 INFO ===>>> start processing event #1153979, run #204073 on slot 0, 81 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 2, 82 events processed so far <<<=== -AthenaHiveEventLoopMgr 85 2 INFO ===>>> start processing event #1150212, run #204073 on slot 2, 82 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149794, run #204073 on slot 0, 80 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152504, run #204073 on slot 2, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 83 0 INFO ===>>> start processing event #1143901, run #204073 on slot 0, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr 84 2 INFO ===>>> start processing event #1153979, run #204073 on slot 2, 81 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1142485, run #204073 on slot 1, 82 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151364, run #204073 on slot 3, 83 events processed so far <<<=== +AthenaHiveEventLoopMgr 85 1 INFO ===>>> start processing event #1150212, run #204073 on slot 1, 83 events processed so far <<<=== AthenaHiveEventLoopMgr 86 3 INFO ===>>> start processing event #1152633, run #204073 on slot 3, 83 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr 87 1 INFO ===>>> start processing event #1155482, run #204073 on slot 1, 84 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr 88 0 INFO ===>>> start processing event #1150472, run #204073 on slot 0, 85 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 2, 86 events processed so far <<<=== -AthenaHiveEventLoopMgr 89 2 INFO ===>>> start processing event #1140275, run #204073 on slot 2, 86 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1143901, run #204073 on slot 0, 84 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153979, run #204073 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr 87 0 INFO ===>>> start processing event #1155482, run #204073 on slot 0, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr 88 2 INFO ===>>> start processing event #1150472, run #204073 on slot 2, 85 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150212, run #204073 on slot 1, 86 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1152633, run #204073 on slot 3, 87 events processed so far <<<=== +AthenaHiveEventLoopMgr 89 1 INFO ===>>> start processing event #1140275, run #204073 on slot 1, 87 events processed so far <<<=== AthenaHiveEventLoopMgr 90 3 INFO ===>>> start processing event #1145882, run #204073 on slot 3, 87 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 1, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr 91 1 INFO ===>>> start processing event #1151732, run #204073 on slot 1, 88 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr 92 0 INFO ===>>> start processing event #1137896, run #204073 on slot 0, 89 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 2, 90 events processed so far <<<=== -AthenaHiveEventLoopMgr 93 2 INFO ===>>> start processing event #1156381, run #204073 on slot 2, 90 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1155482, run #204073 on slot 0, 88 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1150472, run #204073 on slot 2, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr 91 0 INFO ===>>> start processing event #1151732, run #204073 on slot 0, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr 92 2 INFO ===>>> start processing event #1137896, run #204073 on slot 2, 89 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1140275, run #204073 on slot 1, 90 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1145882, run #204073 on slot 3, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr 94 3 INFO ===>>> start processing event #1149161, run #204073 on slot 3, 91 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 1, 92 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 95 0 INFO ===>>> start processing event #1153794, run #204073 on slot 0, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr 96 1 INFO ===>>> start processing event #1151312, run #204073 on slot 1, 93 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 2, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr 97 2 INFO ===>>> start processing event #1148893, run #204073 on slot 2, 94 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 3, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr 98 3 INFO ===>>> start processing event #1156938, run #204073 on slot 3, 95 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr 99 0 INFO ===>>> start processing event #1156351, run #204073 on slot 0, 96 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 1, 97 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 2, 98 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 3, 99 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151732, run #204073 on slot 0, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 93 0 INFO ===>>> start processing event #1156381, run #204073 on slot 0, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 94 1 INFO ===>>> start processing event #1149161, run #204073 on slot 1, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr 95 3 INFO ===>>> start processing event #1153794, run #204073 on slot 3, 92 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1137896, run #204073 on slot 2, 93 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156381, run #204073 on slot 0, 94 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1149161, run #204073 on slot 1, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr 96 0 INFO ===>>> start processing event #1151312, run #204073 on slot 0, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr 97 1 INFO ===>>> start processing event #1148893, run #204073 on slot 1, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr 98 2 INFO ===>>> start processing event #1156938, run #204073 on slot 2, 95 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1153794, run #204073 on slot 3, 96 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1151312, run #204073 on slot 0, 97 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1148893, run #204073 on slot 1, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr 99 0 INFO ===>>> start processing event #1156351, run #204073 on slot 0, 98 events processed so far <<<=== +AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156938, run #204073 on slot 2, 99 events processed so far <<<=== AthenaHiveEventLoopMgr INFO ===>>> done processing event #1156351, run #204073 on slot 0, 100 events processed so far <<<=== -AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 27.2973 +AthenaHiveEventLoopMgr INFO ---> Loop Finished (seconds): 9.61478 /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... Domain[ROOT_All] INFO -> Deaccess DbDatabase READ [ROOT_All] 06C9EAE8-6F5B-E011-BAAA-003048F0E7AC /cvmfs/atlas-condb.cern.ch/repo/condi... INFO Database being retired... @@ -1324,7 +1324,7 @@ AvalancheSchedulerSvc INFO Joining Scheduler thread PyComponentMgr INFO Finalizing PyComponentMgr... IdDictDetDescrCnv INFO in finalize EventDataSvc INFO Finalizing EventDataSvc - package version StoreGate-00-00-00 -IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.14 ))s +IOVDbFolder INFO Folder /LAR/Align (PoolRef) db-read 1/1 objs/chan/bytes 1/1/340 (( 0.19 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CES (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/LIN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/CALIB/CIS/FIT/NLN (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s @@ -1336,10 +1336,10 @@ IOVDbFolder INFO Folder /TILE/OFL02/NOISE IOVDbFolder INFO Folder /TILE/OFL02/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/OFL02/TIME/CHANNELOFFSET/PHY (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s IOVDbFolder INFO Folder /TILE/ONL01/STATUS/ADC (AttrListColl) db-read 0/0 objs/chan/bytes 0/277/0 (( 0.00 ))s -IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.09 ))s -IOVDbSvc INFO bytes in (( 0.23 ))s +IOVDbFolder INFO Folder /LAR/LArCellPositionShift (PoolRef) db-read 1/1 objs/chan/bytes 1/1/390 (( 0.03 ))s +IOVDbSvc INFO bytes in (( 0.22 ))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.23 ))s +IOVDbSvc INFO Connection COOLOFL_LAR/OFLP200 : nConnect: 2 nFolders: 2 ReadTime: (( 0.22 ))s IOVDbSvc INFO Connection COOLOFL_TILE/OFLP200 : nConnect: 1 nFolders: 11 ReadTime: (( 0.00 ))s TileInfoLoader INFO TileInfoLoader::finalize() AthDictLoaderSvc INFO in finalize... @@ -1350,9 +1350,9 @@ ToolSvc.TileROD_Decoder.TileROD_L2Bui... INFO Finalizing *****Chrono***** INFO **************************************************************************************************** *****Chrono***** INFO The Final CPU consumption ( Chrono ) Table (ordered) *****Chrono***** INFO **************************************************************************************************** -cObjR_ALL INFO Time User : Tot= 1.05 [s] Ave/Min/Max=0.525(+-0.505)/ 0.02/ 1.03 [s] #= 2 -cObj_ALL INFO Time User : Tot= 1.33 [s] Ave/Min/Max=0.665(+-0.485)/ 0.18/ 1.15 [s] #= 2 -ChronoStatSvc INFO Time User : Tot= 40.2 [s] #= 1 +cObjR_ALL INFO Time User : Tot= 0.69 [s] Ave/Min/Max=0.345(+-0.335)/ 0.01/ 0.68 [s] #= 2 +cObj_ALL INFO Time User : Tot= 0.84 [s] Ave/Min/Max= 0.42(+- 0.33)/ 0.09/ 0.75 [s] #= 2 +ChronoStatSvc INFO Time User : Tot= 12 [s] #= 1 *****Chrono***** INFO **************************************************************************************************** ChronoStatSvc.finalize() INFO Service finalized successfully ApplicationMgr INFO Application Manager Finalized successfully -- GitLab From 354721ce3ee090a5c3b042db9c47c26e38300a7a Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sat, 26 Jan 2019 16:53:34 +0100 Subject: [PATCH 142/192] TrkExStraightLineIntersector: Preparing to make interfaces const. The tool was caching event information in member variables. Rework to remove this caching, to allow the interfaces to eventually be made const. Results are identical, and this is not expected to have any significant effect on performance. Also changed CRLF line endings to LF. --- .../StraightLineIntersector.h | 297 +++++++------- .../src/StraightLineIntersector.cxx | 384 ++++++++---------- 2 files changed, 320 insertions(+), 361 deletions(-) diff --git a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/TrkExStraightLineIntersector/StraightLineIntersector.h b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/TrkExStraightLineIntersector/StraightLineIntersector.h index 7ffee9df5b14..325057f2df8c 100755 --- a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/TrkExStraightLineIntersector/StraightLineIntersector.h +++ b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/TrkExStraightLineIntersector/StraightLineIntersector.h @@ -1,147 +1,156 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ -////////////////////////////////////////////////////////////////////// -// provide straight line intersection to a surface -// (useful for abstract interfaces in track/segment fitters) -// (c) ATLAS Tracking software -////////////////////////////////////////////////////////////////////// - -#ifndef TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H -#define TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H - -#include "AthenaBaseComps/AthAlgTool.h" -#include "TrkExInterfaces/IIntersector.h" -#include "TrkExUtils/TrackSurfaceIntersection.h" - -namespace Trk -{ - -class StraightLineIntersector: public AthAlgTool, - virtual public IIntersector -{ - -public: - StraightLineIntersector (const std::string& type, - const std::string& name, - const IInterface* parent); - ~StraightLineIntersector (void); // destructor - - StatusCode initialize(); - StatusCode finalize(); - - /**IIntersector interface method for general Surface type */ - const TrackSurfaceIntersection* intersectSurface(const Surface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double qOverP); - - /**IIntersector interface method for specific Surface type : PerigeeSurface */ - const TrackSurfaceIntersection* approachPerigeeSurface(const PerigeeSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double /*qOverP*/); - - /**IIntersector interface method for specific Surface type : StraightLineSurface */ - const TrackSurfaceIntersection* approachStraightLineSurface(const StraightLineSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double /*qOverP*/); - - /**IIntersector interface method for specific Surface type : CylinderSurface */ - const TrackSurfaceIntersection* intersectCylinderSurface (const CylinderSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double /*qOverP*/); - - /**IIntersector interface method for specific Surface type : DiscSurface */ - const TrackSurfaceIntersection* intersectDiscSurface (const DiscSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double /*qOverP*/); - - /**IIntersector interface method for specific Surface type : PlaneSurface */ - const TrackSurfaceIntersection* intersectPlaneSurface(const PlaneSurface& surface, - const TrackSurfaceIntersection* trackTrackSurfaceIntersection, - const double /*qOverP*/); - - /**IIntersector interface method for validity check over a particular extrapolation range */ - bool isValid(Amg::Vector3D /*startPosition*/, - Amg::Vector3D /*endPosition*/) const - { return true; } - -private: - - // private methods - void distanceToCylinder (const double cylinderRadius); - void distanceToDisc (const double discZ); - void distanceToLine (const Amg::Vector3D& linePosition, - const Amg::Vector3D& lineDirection); - void distanceToPlane (const Amg::Vector3D& planePosition, - const Amg::Vector3D& planeNormal); - void step (void); - - // current parameters: - Amg::Vector3D m_direction; - unsigned m_intersectionNumber; - Amg::Vector3D m_position; - double m_stepLength; - double m_transverseLength; - - // counters - unsigned long long m_countExtrapolations; - -}; - -//<<<<<< INLINE PRIVATE MEMBER FUNCTIONS >>>>>> - -inline void -StraightLineIntersector::distanceToCylinder (const double cylinderRadius) -{ - double sinThsqinv = 1./m_direction.perp2(); - m_stepLength = (-m_position.x()*m_direction.x() - m_position.y()*m_direction.y()) * - sinThsqinv; - double deltaRSq = (cylinderRadius*cylinderRadius - m_position.perp2())*sinThsqinv + - m_stepLength*m_stepLength; - if (deltaRSq > 0.) m_stepLength += sqrt(deltaRSq); -} - -inline void -StraightLineIntersector::distanceToDisc (const double discZ) -{ - m_stepLength = (discZ - m_position.z())/m_direction.z(); -} - -inline void - StraightLineIntersector::distanceToLine (const Amg::Vector3D& linePosition, - const Amg::Vector3D& lineDirection) -{ - // offset joining track to line is given by - // offset = linePosition + a*lineDirection - trackPosition - b*trackDirection - // - // offset is perpendicular to both line and track at solution i.e. - // lineDirection.dot(offset) = 0 - // trackDirection.dot(offset) = 0 - double cosAngle = lineDirection.dot(m_direction); - m_stepLength = (linePosition - m_position).dot(m_direction - lineDirection*cosAngle) / - (1. - cosAngle*cosAngle); -} - -inline void - StraightLineIntersector::distanceToPlane (const Amg::Vector3D& planePosition, - const Amg::Vector3D& planeNormal) -{ - // take the normal component of the offset from track position to plane position - // this is equal to the normal component of the required distance along the track direction - m_stepLength = planeNormal.dot(planePosition - m_position) / - planeNormal.dot(m_direction); -} - -inline void -StraightLineIntersector::step (void) -{ - m_position += m_stepLength*m_direction; - m_transverseLength += m_stepLength; -} - - -} // end of namespace - - -#endif // TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H +////////////////////////////////////////////////////////////////////// +// provide straight line intersection to a surface +// (useful for abstract interfaces in track/segment fitters) +// (c) ATLAS Tracking software +////////////////////////////////////////////////////////////////////// + +#ifndef TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H +#define TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H + +#include "AthenaBaseComps/AthAlgTool.h" +#include "TrkExInterfaces/IIntersector.h" +#include "TrkExUtils/TrackSurfaceIntersection.h" +#include <atomic> + +namespace Trk +{ + +class StraightLineIntersector: public AthAlgTool, + virtual public IIntersector +{ + +public: + StraightLineIntersector (const std::string& type, + const std::string& name, + const IInterface* parent); + ~StraightLineIntersector (void); // destructor + + StatusCode initialize(); + StatusCode finalize(); + + /**IIntersector interface method for general Surface type */ + const TrackSurfaceIntersection* intersectSurface(const Surface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double qOverP); + + /**IIntersector interface method for specific Surface type : PerigeeSurface */ + const TrackSurfaceIntersection* approachPerigeeSurface(const PerigeeSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double /*qOverP*/); + + /**IIntersector interface method for specific Surface type : StraightLineSurface */ + const TrackSurfaceIntersection* approachStraightLineSurface(const StraightLineSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double /*qOverP*/); + + /**IIntersector interface method for specific Surface type : CylinderSurface */ + const TrackSurfaceIntersection* intersectCylinderSurface (const CylinderSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double /*qOverP*/); + + /**IIntersector interface method for specific Surface type : DiscSurface */ + const TrackSurfaceIntersection* intersectDiscSurface (const DiscSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double /*qOverP*/); + + /**IIntersector interface method for specific Surface type : PlaneSurface */ + const TrackSurfaceIntersection* intersectPlaneSurface(const PlaneSurface& surface, + const TrackSurfaceIntersection* trackTrackSurfaceIntersection, + const double /*qOverP*/); + + /**IIntersector interface method for validity check over a particular extrapolation range */ + bool isValid(Amg::Vector3D /*startPosition*/, + Amg::Vector3D /*endPosition*/) const + { return true; } + +private: + // private methods + double distanceToCylinder (const TrackSurfaceIntersection& isect, + const double cylinderRadius) const; + double distanceToDisc (const TrackSurfaceIntersection& isect, + const double discZ) const; + double distanceToLine (const TrackSurfaceIntersection& isect, + const Amg::Vector3D& linePosition, + const Amg::Vector3D& lineDirection) const; + double distanceToPlane (const TrackSurfaceIntersection& isect, + const Amg::Vector3D& planePosition, + const Amg::Vector3D& planeNormal) const; + void step (TrackSurfaceIntersection& isect, double stepLength) const; + + // counters + mutable std::atomic<unsigned long long> m_countExtrapolations; + +}; + +//<<<<<< INLINE PRIVATE MEMBER FUNCTIONS >>>>>> + +inline double +StraightLineIntersector::distanceToCylinder (const TrackSurfaceIntersection& isect, + const double cylinderRadius) const +{ + const Amg::Vector3D& pos = isect.position(); + const Amg::Vector3D& dir = isect.direction(); + double sinThsqinv = 1./dir.perp2(); + double stepLength = (-pos.x()*dir.x() - pos.y()*dir.y()) * sinThsqinv; + double deltaRSq = (cylinderRadius*cylinderRadius - pos.perp2())*sinThsqinv + + stepLength*stepLength; + if (deltaRSq > 0.) stepLength += sqrt(deltaRSq); + return stepLength; +} + +inline double +StraightLineIntersector::distanceToDisc (const TrackSurfaceIntersection& isect, + const double discZ) const +{ + const Amg::Vector3D& pos = isect.position(); + const Amg::Vector3D& dir = isect.direction(); + return (discZ - pos.z())/dir.z(); +} + +inline double +StraightLineIntersector::distanceToLine (const TrackSurfaceIntersection& isect, + const Amg::Vector3D& linePosition, + const Amg::Vector3D& lineDirection) const +{ + // offset joining track to line is given by + // offset = linePosition + a*lineDirection - trackPosition - b*trackDirection + // + // offset is perpendicular to both line and track at solution i.e. + // lineDirection.dot(offset) = 0 + // trackDirection.dot(offset) = 0 + const Amg::Vector3D& pos = isect.position(); + const Amg::Vector3D& dir = isect.direction(); + double cosAngle = lineDirection.dot(dir); + return (linePosition - pos).dot(dir - lineDirection*cosAngle) / + (1. - cosAngle*cosAngle); +} + +inline double + StraightLineIntersector::distanceToPlane (const TrackSurfaceIntersection& isect, + const Amg::Vector3D& planePosition, + const Amg::Vector3D& planeNormal) const +{ + // take the normal component of the offset from track position to plane position + // this is equal to the normal component of the required distance along the track direction + const Amg::Vector3D& pos = isect.position(); + const Amg::Vector3D& dir = isect.direction(); + return planeNormal.dot(planePosition - pos) / planeNormal.dot(dir); +} + + +inline void +StraightLineIntersector::step (TrackSurfaceIntersection& isect, double stepLength) const +{ + isect.position() += stepLength*isect.direction(); + isect.pathlength() += stepLength; +} + + +} // end of namespace + + +#endif // TRKEXSTRAIGHTLINEINTERSECTOR_STRAIGHTLINEINTERSECTOR_H diff --git a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/src/StraightLineIntersector.cxx b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/src/StraightLineIntersector.cxx index 083e72ae841e..2e19682f3cbc 100755 --- a/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/src/StraightLineIntersector.cxx +++ b/Tracking/TrkExtrapolation/TrkExStraightLineIntersector/src/StraightLineIntersector.cxx @@ -1,220 +1,170 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017, 2019 CERN for the benefit of the ATLAS collaboration */ -////////////////////////////////////////////////////////////////////// -// provide straight line intersection to a surface -// (useful for abstract interfaces in track/segment fitters) -// (c) ATLAS Tracking software -////////////////////////////////////////////////////////////////////// - -#include <cmath> -#include "CLHEP/Units/SystemOfUnits.h" -#include "TrkExStraightLineIntersector/StraightLineIntersector.h" -#include "TrkExUtils/TrackSurfaceIntersection.h" -//#include "TrkParameters/Perigee.h" -#include "TrkParameters/TrackParameters.h" -#include "TrkSurfaces/CylinderSurface.h" -#include "TrkSurfaces/DiscSurface.h" -#include "TrkSurfaces/PerigeeSurface.h" -#include "TrkSurfaces/PlaneSurface.h" -#include "TrkSurfaces/StraightLineSurface.h" -#include "TrkSurfaces/Surface.h" - -namespace Trk -{ - -StraightLineIntersector::StraightLineIntersector (const std::string& type, - const std::string& name, - const IInterface* parent) - : AthAlgTool (type, name, parent), - m_intersectionNumber (0), - m_countExtrapolations (0) -{ - declareInterface<Trk::IIntersector>(this); -} - -StraightLineIntersector::~StraightLineIntersector (void) -{} - -StatusCode -StraightLineIntersector::initialize() -{ - // print name and package version - ATH_MSG_INFO( "StraightLineIntersector::initialize()" - << " - package version " << PACKAGE_VERSION ); - - // initialize base class - if (StatusCode::SUCCESS != AlgTool::initialize()) return StatusCode::FAILURE; - - return StatusCode::SUCCESS; -} - -StatusCode -StraightLineIntersector::finalize() -{ - ATH_MSG_INFO( "finalized after " << m_countExtrapolations << " extrapolations" ); - - return StatusCode::SUCCESS; -} - -/**IIntersector interface method for general Surface type */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::intersectSurface(const Surface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double qOverP) -{ - const PlaneSurface* plane = dynamic_cast<const PlaneSurface*>(&surface); - if (plane) return intersectPlaneSurface(*plane,trackIntersection,qOverP); - - const StraightLineSurface* straightLine = dynamic_cast<const StraightLineSurface*>(&surface); - if (straightLine) return approachStraightLineSurface(*straightLine,trackIntersection,qOverP); - - const CylinderSurface* cylinder = dynamic_cast<const CylinderSurface*>(&surface); - if (cylinder) return intersectCylinderSurface(*cylinder,trackIntersection,qOverP); - - const DiscSurface* disc = dynamic_cast<const DiscSurface*>(&surface); - if (disc) return intersectDiscSurface(*disc,trackIntersection,qOverP); - - const PerigeeSurface* perigee = dynamic_cast<const PerigeeSurface*>(&surface); - if (perigee) return approachPerigeeSurface(*perigee,trackIntersection,qOverP); - - ATH_MSG_WARNING( " unrecognized Surface" ); - return 0; -} - -/**IIntersector interface method for specific Surface type : PerigeeSurface */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::approachPerigeeSurface(const PerigeeSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double /*qOverP*/) -{ - // set member data - if (trackIntersection->serialNumber() != m_intersectionNumber) - { - m_position = trackIntersection->position(); - m_direction = trackIntersection->direction(); - m_transverseLength = trackIntersection->pathlength(); - ++m_countExtrapolations; - } - - // straight line distance along track to closest approach to line - const Amg::Vector3D& lineDirection = surface.transform().rotation().col(2); - distanceToLine (surface.center(),lineDirection); - step(); - - const Trk::TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(m_position, - m_direction, - m_transverseLength); - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - -/**IIntersector interface method for specific Surface type : StraightLineSurface */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::approachStraightLineSurface(const StraightLineSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double /*qOverP*/) -{ - // set member data - if (trackIntersection->serialNumber() != m_intersectionNumber) - { - m_position = trackIntersection->position(); - m_direction = trackIntersection->direction(); - m_transverseLength = trackIntersection->pathlength(); - ++m_countExtrapolations; - } - - // straight line distance along track to closest approach to line - const Amg::Vector3D& lineDirection = surface.transform().rotation().col(2); - distanceToLine (surface.center(),lineDirection); - step(); - - const Trk::TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(m_position, - m_direction, - m_transverseLength); - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - -/**IIntersector interface method for specific Surface type : CylinderSurface */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::intersectCylinderSurface (const CylinderSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double /*qOverP*/) -{ - // set member data - if (trackIntersection->serialNumber() != m_intersectionNumber) - { - m_position = trackIntersection->position(); - m_direction = trackIntersection->direction(); - m_transverseLength = trackIntersection->pathlength(); - ++m_countExtrapolations; - } - - // calculate straight line distance along track to intersect with cylinder radius - double cylinderRadius = surface.globalReferencePoint().perp(); - distanceToCylinder(cylinderRadius); - step(); - - const Trk::TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(m_position, - m_direction, - m_transverseLength); - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - -/**IIntersector interface method for specific Surface type : DiscSurface */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::intersectDiscSurface (const DiscSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double /*qOverP*/) -{ - if (trackIntersection->serialNumber() != m_intersectionNumber) - { - m_position = trackIntersection->position(); - m_direction = trackIntersection->direction(); - m_transverseLength = trackIntersection->pathlength(); - ++m_countExtrapolations; - } - - // straight line distance along track to intersect with disc - distanceToDisc(surface.center().z()); - step(); - - const Trk::TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(m_position, - m_direction, - m_transverseLength); - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - -/**IIntersector interface method for specific Surface type : PlaneSurface */ -const Trk::TrackSurfaceIntersection* -StraightLineIntersector::intersectPlaneSurface(const PlaneSurface& surface, - const TrackSurfaceIntersection* trackIntersection, - const double /*qOverP*/) -{ - // set member data - if (trackIntersection->serialNumber() != m_intersectionNumber) - { - m_position = trackIntersection->position(); - m_direction = trackIntersection->direction(); - m_transverseLength = trackIntersection->pathlength(); - ++m_countExtrapolations; - } - - // straight line distance along track to intersect with plane - distanceToPlane (surface.center(),surface.normal()); - step(); - distanceToPlane(surface.center(),surface.normal()); - - const Trk::TrackSurfaceIntersection* intersection = new TrackSurfaceIntersection(m_position, - m_direction, - m_transverseLength); - m_intersectionNumber = intersection->serialNumber(); - return intersection; -} - - -} // end of namespace +////////////////////////////////////////////////////////////////////// +// provide straight line intersection to a surface +// (useful for abstract interfaces in track/segment fitters) +// (c) ATLAS Tracking software +////////////////////////////////////////////////////////////////////// + +#include <cmath> +#include "CLHEP/Units/SystemOfUnits.h" +#include "TrkExStraightLineIntersector/StraightLineIntersector.h" +#include "TrkExUtils/TrackSurfaceIntersection.h" +//#include "TrkParameters/Perigee.h" +#include "TrkParameters/TrackParameters.h" +#include "TrkSurfaces/CylinderSurface.h" +#include "TrkSurfaces/DiscSurface.h" +#include "TrkSurfaces/PerigeeSurface.h" +#include "TrkSurfaces/PlaneSurface.h" +#include "TrkSurfaces/StraightLineSurface.h" +#include "TrkSurfaces/Surface.h" + +namespace Trk +{ + +StraightLineIntersector::StraightLineIntersector (const std::string& type, + const std::string& name, + const IInterface* parent) + : AthAlgTool (type, name, parent), + m_countExtrapolations (0) +{ + declareInterface<Trk::IIntersector>(this); +} + +StraightLineIntersector::~StraightLineIntersector (void) +{} + +StatusCode +StraightLineIntersector::initialize() +{ + // print name and package version + ATH_MSG_INFO( "StraightLineIntersector::initialize()" + << " - package version " << PACKAGE_VERSION ); + + // initialize base class + if (StatusCode::SUCCESS != AlgTool::initialize()) return StatusCode::FAILURE; + + return StatusCode::SUCCESS; +} + +StatusCode +StraightLineIntersector::finalize() +{ + ATH_MSG_INFO( "finalized after " << m_countExtrapolations << " extrapolations" ); + + return StatusCode::SUCCESS; +} + +/**IIntersector interface method for general Surface type */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::intersectSurface(const Surface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double qOverP) +{ + const PlaneSurface* plane = dynamic_cast<const PlaneSurface*>(&surface); + if (plane) return intersectPlaneSurface(*plane,trackIntersection,qOverP); + + const StraightLineSurface* straightLine = dynamic_cast<const StraightLineSurface*>(&surface); + if (straightLine) return approachStraightLineSurface(*straightLine,trackIntersection,qOverP); + + const CylinderSurface* cylinder = dynamic_cast<const CylinderSurface*>(&surface); + if (cylinder) return intersectCylinderSurface(*cylinder,trackIntersection,qOverP); + + const DiscSurface* disc = dynamic_cast<const DiscSurface*>(&surface); + if (disc) return intersectDiscSurface(*disc,trackIntersection,qOverP); + + const PerigeeSurface* perigee = dynamic_cast<const PerigeeSurface*>(&surface); + if (perigee) return approachPerigeeSurface(*perigee,trackIntersection,qOverP); + + ATH_MSG_WARNING( " unrecognized Surface" ); + return 0; +} + +/**IIntersector interface method for specific Surface type : PerigeeSurface */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::approachPerigeeSurface(const PerigeeSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double /*qOverP*/) +{ + auto isect = std::make_unique<TrackSurfaceIntersection> (*trackIntersection); + ++m_countExtrapolations; + + // straight line distance along track to closest approach to line + const Amg::Vector3D& lineDirection = surface.transform().rotation().col(2); + double stepLength = distanceToLine (*isect, surface.center(),lineDirection); + step(*isect, stepLength); + + return isect.release(); +} + +/**IIntersector interface method for specific Surface type : StraightLineSurface */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::approachStraightLineSurface(const StraightLineSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double /*qOverP*/) +{ + auto isect = std::make_unique<TrackSurfaceIntersection> (*trackIntersection); + ++m_countExtrapolations; + + // straight line distance along track to closest approach to line + const Amg::Vector3D& lineDirection = surface.transform().rotation().col(2); + double stepLength = distanceToLine (*isect, surface.center(),lineDirection); + step(*isect, stepLength); + + return isect.release(); +} + +/**IIntersector interface method for specific Surface type : CylinderSurface */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::intersectCylinderSurface (const CylinderSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double /*qOverP*/) +{ + auto isect = std::make_unique<TrackSurfaceIntersection> (*trackIntersection); + ++m_countExtrapolations; + + // calculate straight line distance along track to intersect with cylinder radius + double cylinderRadius = surface.globalReferencePoint().perp(); + double stepLength = distanceToCylinder(*isect, cylinderRadius); + step(*isect, stepLength); + + return isect.release(); +} + +/**IIntersector interface method for specific Surface type : DiscSurface */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::intersectDiscSurface (const DiscSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double /*qOverP*/) +{ + auto isect = std::make_unique<TrackSurfaceIntersection> (*trackIntersection); + ++m_countExtrapolations; + + // straight line distance along track to intersect with disc + double stepLength = distanceToDisc(*isect, surface.center().z()); + step(*isect, stepLength); + + return isect.release(); +} + +/**IIntersector interface method for specific Surface type : PlaneSurface */ +const Trk::TrackSurfaceIntersection* +StraightLineIntersector::intersectPlaneSurface(const PlaneSurface& surface, + const TrackSurfaceIntersection* trackIntersection, + const double /*qOverP*/) +{ + auto isect = std::make_unique<TrackSurfaceIntersection> (*trackIntersection); + ++m_countExtrapolations; + + // straight line distance along track to intersect with plane + double stepLength = distanceToPlane (*isect, surface.center(),surface.normal()); + step(*isect, stepLength); + stepLength = distanceToPlane (*isect, surface.center(),surface.normal()); + + return isect.release(); +} + + +} // end of namespace -- GitLab From 2cfa8623e7b51b0aad0f0989fb8f26a5ef1cae89 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 16:57:44 +0100 Subject: [PATCH 143/192] EventBookkeeperTools: VarHandle migration. Change EventCounterAlg to use ReadHandle. --- Event/EventBookkeeperTools/src/EventCounterAlg.cxx | 8 +++++--- Event/EventBookkeeperTools/src/EventCounterAlg.h | 12 ++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Event/EventBookkeeperTools/src/EventCounterAlg.cxx b/Event/EventBookkeeperTools/src/EventCounterAlg.cxx index 6483fbc951ed..f9709885509a 100644 --- a/Event/EventBookkeeperTools/src/EventCounterAlg.cxx +++ b/Event/EventBookkeeperTools/src/EventCounterAlg.cxx @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // EventCounterAlg.cxx @@ -21,6 +21,7 @@ // EDM includes #include "xAODCutFlow/CutBookkeeper.h" #include "xAODEventInfo/EventInfo.h" +#include "StoreGate/ReadHandle.h" @@ -64,6 +65,7 @@ StatusCode EventCounterAlg::initialize() xAOD::CutBookkeeper::CutLogic::ALLEVENTSPROCESSED, "AllStreams"); + ATH_CHECK( m_eventInfoKey.initialize() ); return StatusCode::SUCCESS; } @@ -79,6 +81,7 @@ StatusCode EventCounterAlg::finalize() StatusCode EventCounterAlg::execute() { + const EventContext& ctx = Gaudi::Hive::currentContext(); ATH_MSG_VERBOSE ("Executing " << this->name() << "..."); setFilterPassed(true); @@ -86,8 +89,7 @@ StatusCode EventCounterAlg::execute() // Update also the other counters for the non-nominal MC weights if (m_trackOtherMCWeights) { // Get the EventInfo object - const xAOD::EventInfo* evtInfo = 0; - ATH_CHECK( evtStore()->retrieve(evtInfo) ); + SG::ReadHandle<xAOD::EventInfo> evtInfo (m_eventInfoKey, ctx); // Only try to access the mcEventWeight is we are running on Monte Carlo, duhhh! if ( !(evtInfo->eventType(xAOD::EventInfo::IS_SIMULATION)) ) { ATH_MSG_DEBUG("We are not running on simulation and thus, nothing to be done here"); diff --git a/Event/EventBookkeeperTools/src/EventCounterAlg.h b/Event/EventBookkeeperTools/src/EventCounterAlg.h index 6b9fe87f1ab6..20feee502017 100644 --- a/Event/EventBookkeeperTools/src/EventCounterAlg.h +++ b/Event/EventBookkeeperTools/src/EventCounterAlg.h @@ -1,7 +1,7 @@ ///////////////////////// -*- C++ -*- ///////////////////////////// /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // EventCounterAlg.h @@ -17,6 +17,8 @@ // FrameWork includes #include "AthenaBaseComps/AthFilterAlgorithm.h" +#include "StoreGate/ReadHandleKey.h" +#include "xAODEventInfo/EventInfo.h" class EventCounterAlg @@ -40,9 +42,9 @@ class EventCounterAlg //EventCounterAlg &operator=(const EventCounterAlg &alg); // Athena algorithm's Hooks - virtual StatusCode initialize(); - virtual StatusCode execute(); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; /////////////////////////////////////////////////////////////////// // Const methods: @@ -69,6 +71,8 @@ class EventCounterAlg /// Keep a vector of all cutIDs for the non-nominal MC event weights std::vector<CutIdentifier> m_mcCutIDs; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey + { this, "EventInfoKey", "EventInfo", "" }; }; // I/O operators -- GitLab From 1b964879055ebd0fd06df5c3cfb00e081c1a762a Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 16:58:09 +0100 Subject: [PATCH 144/192] InDetAlignmentMonitoring; Migrate IDAlignMonResiduals to VarHandle. Use ReadHandle to access SG data. --- .../src/IDAlignMonResiduals.cxx | 14 ++++++-------- .../src/IDAlignMonResiduals.h | 15 ++++++++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx index 8df68f42033f..0caa5d55f195 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************************** @@ -24,9 +24,8 @@ #include "TFitResult.h" #include "TFitResultPtr.h" -#include "xAODEventInfo/EventInfo.h" - #include "GaudiKernel/IJobOptionsSvc.h" +#include "StoreGate/ReadHandle.h" #include "AtlasDetDescr/AtlasDetectorID.h" #include "InDetIdentifier/PixelID.h" #include "InDetIdentifier/SCT_ID.h" @@ -629,6 +628,8 @@ StatusCode IDAlignMonResiduals::initialize() } } + ATH_CHECK( m_eventInfoKey.initialize() ); + return StatusCode::SUCCESS; } @@ -1061,16 +1062,13 @@ void IDAlignMonResiduals::RegisterHisto(MonGroup& mon, TH2* histo) { StatusCode IDAlignMonResiduals::fillHistograms() { + const EventContext& ctx = Gaudi::Hive::currentContext(); ++m_events; m_hasBeenCalledThisEvent=false; m_mu=0.; - const DataHandle<xAOD::EventInfo> eventInfo; - if (StatusCode::SUCCESS != evtStore()->retrieve( eventInfo ) ){ - msg(MSG::ERROR) << "Cannot get event info." << endmsg; - } - + SG::ReadHandle<xAOD::EventInfo> eventInfo (m_eventInfoKey, ctx); m_changedlumiblock = false; m_lumiblock = eventInfo->lumiBlock(); diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h index d9ceb28f9868..1b4e6c38d386 100755 --- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h +++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef IDAlignMonResiduals_H @@ -18,6 +18,8 @@ #include "AthenaMonitoring/ManagedMonitorToolBase.h" #include "EventPrimitives/EventPrimitives.h" #include "TrkParameters/TrackParameters.h" +#include "xAODEventInfo/EventInfo.h" +#include "StoreGate/ReadHandleKey.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" @@ -71,10 +73,10 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase virtual ~IDAlignMonResiduals(); - virtual StatusCode initialize(); - virtual StatusCode bookHistograms(); - virtual StatusCode fillHistograms(); - virtual StatusCode procHistograms(); + virtual StatusCode initialize() override; + virtual StatusCode bookHistograms() override; + virtual StatusCode fillHistograms() override; + virtual StatusCode procHistograms() override; void MakePIXBarrelHistograms (MonGroup& al_mon); void MakePIXEndCapsHistograms (MonGroup& al_mon); @@ -886,6 +888,9 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase float m_z_fix{}; int m_minIBLhits{}; bool m_doIBLLBPlots{}; + + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey + { this, "EventInfoKey", "EventInfo", "" }; }; #endif -- GitLab From f03437c87ff3b4537607e96452e39abbaf9891ba Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 16:58:42 +0100 Subject: [PATCH 145/192] TrigT1CaloCalibTools: Migrate to VarHandle. Migrate L1CaloTriggerTowerDecoratorAlg/L1CaloxAODOfflineTriggerTowerTools to use Read/WriteHandle. Make tool private. --- .../L1CaloTriggerTowerDecoratorAlg.h | 7 ++++- .../L1CaloxAODOfflineTriggerTowerTools.h | 10 +++---- ...ateL1CaloTriggerTowers_prodJobOFragment.py | 4 +-- .../src/L1CaloTriggerTowerDecoratorAlg.cxx | 17 ++++++------ .../L1CaloxAODOfflineTriggerTowerTools.cxx | 27 +++++-------------- 5 files changed, 26 insertions(+), 39 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloTriggerTowerDecoratorAlg.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloTriggerTowerDecoratorAlg.h index 5caa1eaea818..5c748db207e8 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloTriggerTowerDecoratorAlg.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloTriggerTowerDecoratorAlg.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: L1CaloTriggerTowerDecoratorAlg.h 728363 2016-03-08 12:45:29Z amazurov $ @@ -9,11 +9,14 @@ #define TRIGGER_TRIGT1_TRIGT1CALOXAODCALIBTOOLS_DECORATETRIGGERTOWERSALG_H // Gaudi/Athena include(s): +#include "xAODTrigL1Calo/TriggerTowerContainer.h" #include "AthenaBaseComps/AthAlgorithm.h" #include "AsgTools/ToolHandle.h" +#include "StoreGate/ReadHandleKey.h" // Local include(s): #include "TrigT1CaloCalibToolInterfaces/IL1CaloxAODOfflineTriggerTowerTools.h" +#include "TrigT1Interfaces/TrigT1CaloDefs.h" namespace LVL1 { class L1CaloTriggerTowerDecoratorAlg : public AthAlgorithm { @@ -28,6 +31,8 @@ class L1CaloTriggerTowerDecoratorAlg : public AthAlgorithm { virtual StatusCode execute(); private: + SG::ReadHandleKey<xAOD::TriggerTowerContainer> m_triggerTowerContainerKey + { this, "sgKey_TriggerTowers", LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation, "" }; std::string m_sgKey_TriggerTowers; /// Decoration strings (leave empty to disable the decoration) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloxAODOfflineTriggerTowerTools.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloxAODOfflineTriggerTowerTools.h index 9f2f676e74df..8b69243491a3 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloxAODOfflineTriggerTowerTools.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloxAODOfflineTriggerTowerTools.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************** // * Author: John Morris (john.morris@cern.ch) * @@ -12,6 +12,7 @@ // Framework include(s): #include "AsgTools/AsgTool.h" +#include "StoreGate/ReadHandleKey.h" #include "GaudiKernel/ToolHandle.h" // STL include(s): @@ -73,8 +74,6 @@ namespace LVL1{ /// Calo Cells into maps for L1Calo use StatusCode initCaloCells(); - /// Database init - StatusCode initDatabase(); std::vector<L1CaloRxCoolChannelId> receivers( const xAOD::TriggerTower& tt ) const; std::vector<unsigned int> receiversId( const xAOD::TriggerTower& tt ) const; @@ -179,9 +178,8 @@ namespace LVL1{ CaloTriggerTowerService* m_ttSvc; /// StoreGate keys for the Calo Cells - std::string m_sgKey_CaloCells; - /// StoreGate keys for the Database - std::string m_sgKey_dbPpmChanCalib; + SG::ReadHandleKey<CaloCellContainer> m_caloCellContainerKey + { this, "CaloCellContainerKey", "AllCalo" }; /// Database const CondAttrListCollection* m_dbPpmChanCalib; diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/share/DecorateL1CaloTriggerTowers_prodJobOFragment.py b/Trigger/TrigT1/TrigT1CaloCalibTools/share/DecorateL1CaloTriggerTowers_prodJobOFragment.py index 829cda4897fd..be5f98defb9a 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/share/DecorateL1CaloTriggerTowers_prodJobOFragment.py +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/share/DecorateL1CaloTriggerTowers_prodJobOFragment.py @@ -7,6 +7,6 @@ include.block( "TrigT1CaloCalibTools/DecorateL1CaloTriggerTowers_prodJobOFragmen include("TrigT1CaloCalibConditions/L1CaloCalibConditions_jobOptions.py") -ToolSvc += CfgMgr.LVL1__L1CaloxAODOfflineTriggerTowerTools( "LVL1__L1CaloxAODOfflineTriggerTowerTools" ) +triggerTowerTools = CfgMgr.LVL1__L1CaloxAODOfflineTriggerTowerTools( "LVL1__L1CaloxAODOfflineTriggerTowerTools" ) # decorate L1Calo Trigger Towers -topSequence += CfgMgr.LVL1__L1CaloTriggerTowerDecoratorAlg( TriggerTowerTools = ToolSvc.LVL1__L1CaloxAODOfflineTriggerTowerTools ) +topSequence += CfgMgr.LVL1__L1CaloTriggerTowerDecoratorAlg( TriggerTowerTools = triggerTowerTools ) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloTriggerTowerDecoratorAlg.cxx b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloTriggerTowerDecoratorAlg.cxx index 69bc22f05c67..4204f82e83da 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloTriggerTowerDecoratorAlg.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloTriggerTowerDecoratorAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // $Id: L1CaloTriggerTowerDecoratorAlg.cxx 728363 2016-03-08 12:45:29Z amazurov $ @@ -31,17 +31,15 @@ namespace LVL1 { L1CaloTriggerTowerDecoratorAlg::L1CaloTriggerTowerDecoratorAlg( const std::string& name, ISvcLocator* svcLoc) : AthAlgorithm(name, svcLoc), - m_sgKey_TriggerTowers(LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation), m_caloCellEnergy(""), // disabled by default m_caloCellET(""), // disabled by default m_caloCellEnergyByLayer("CaloCellEnergyByLayer"), m_caloCellETByLayer("CaloCellETByLayer"), m_caloCellsQuality("CaloCellQuality"), m_caloCellEnergyByLayerByReceiver(""), // disabled by default - m_caloCellETByLayerByReceiver("") // disabled by default + m_caloCellETByLayerByReceiver(""), // disabled by default + m_ttTools(this) { - declareProperty("sgKey_TriggerTowers", m_sgKey_TriggerTowers); - declareProperty("DecorName_caloCellEnergy", m_caloCellEnergy, // disabled by default "Decoration name - leave empty to disable"); @@ -108,6 +106,8 @@ StatusCode L1CaloTriggerTowerDecoratorAlg::initialize() { m_caloCellETByLayerByReceiver); } + CHECK( m_triggerTowerContainerKey.initialize(SG::AllowEmpty) ); + // Return gracefully: return StatusCode::SUCCESS; } @@ -132,12 +132,11 @@ StatusCode L1CaloTriggerTowerDecoratorAlg::execute() { // use decorators to avoid the costly name -> auxid lookup // Shall I proceed? - if (evtStore()->contains<xAOD::TriggerTowerContainer>( - m_sgKey_TriggerTowers)) { + if (!m_triggerTowerContainerKey.empty()) { CHECK(m_ttTools->initCaloCells()); - const xAOD::TriggerTowerContainer* tts(nullptr); - CHECK(evtStore()->retrieve(tts, m_sgKey_TriggerTowers)); + const EventContext& ctx = Gaudi::Hive::currentContext(); + SG::ReadHandle<xAOD::TriggerTowerContainer> tts (m_triggerTowerContainerKey, ctx); for (const auto x : *tts) { if (caloCellEnergyDecorator) (*caloCellEnergyDecorator)(*x) = m_ttTools->caloCellsEnergy(*x); diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloxAODOfflineTriggerTowerTools.cxx b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloxAODOfflineTriggerTowerTools.cxx index 063b38344acb..36535e4219e8 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloxAODOfflineTriggerTowerTools.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloxAODOfflineTriggerTowerTools.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************** // * Author: John Morris (john.morris@cern.ch) * @@ -9,6 +9,7 @@ // Like it says above, please chop up this code until it does what you want ! #include "TrigT1CaloCalibTools/L1CaloxAODOfflineTriggerTowerTools.h" +#include "StoreGate/ReadHandle.h" #include <algorithm> // for std::transform #include <iterator> // for std::back_inserter @@ -24,8 +25,6 @@ namespace LVL1{ m_caloMgr(nullptr), m_lvl1Helper(nullptr), m_ttSvc(nullptr), - m_sgKey_CaloCells("AllCalo"), - m_sgKey_dbPpmChanCalib("/TRIGGER/L1Calo/V1/Calibration/Physics/PprChanCalib"), m_dbPpmChanCalib(nullptr) { } @@ -53,8 +52,9 @@ namespace LVL1{ CHECK( svcLoc->service( "ToolSvc",toolSvc ) ); CHECK( toolSvc->retrieveTool("CaloTriggerTowerService",m_ttSvc) ); - - + + CHECK( m_caloCellContainerKey.initialize() ); + // Return gracefully: return StatusCode::SUCCESS; } @@ -71,28 +71,13 @@ namespace LVL1{ StatusCode L1CaloxAODOfflineTriggerTowerTools::initCaloCells() { - if( ! evtStore()->contains< CaloCellContainer >( m_sgKey_CaloCells ) ){ - ATH_MSG_INFO("Could not find CaloCellContainer with key "<<m_sgKey_CaloCells); - return StatusCode::FAILURE; - } - - const CaloCellContainer* cells(nullptr); - CHECK( evtStore()->retrieve( cells , m_sgKey_CaloCells ) ); + SG::ReadHandle<CaloCellContainer> cells (m_caloCellContainerKey); m_cells2tt->initCaloCellsTriggerTowers( *cells ); // Return gracefully: return StatusCode::SUCCESS; } - StatusCode - L1CaloxAODOfflineTriggerTowerTools::initDatabase() - { - CHECK( evtStore()->retrieve( m_dbPpmChanCalib , m_sgKey_dbPpmChanCalib ) ); - - // Return gracefully: - return StatusCode::SUCCESS; - } - std::vector<L1CaloRxCoolChannelId> L1CaloxAODOfflineTriggerTowerTools::receivers( const xAOD::TriggerTower& tt ) const { -- GitLab From c110b9b9357f4112ae2ec5fb2ed8a84bdf7a8795 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sat, 26 Jan 2019 16:58:27 +0100 Subject: [PATCH 146/192] TrigT1CaloCalibToolInterfaces: Remove unused interface. IL1CaloxAODOfflineTriggerTowerTools::initDatabase is never called, and the concrete implementation is problematic for MT. Remove it. --- .../IL1CaloxAODOfflineTriggerTowerTools.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/IL1CaloxAODOfflineTriggerTowerTools.h b/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/IL1CaloxAODOfflineTriggerTowerTools.h index d502266c9ac0..45442d0fd7b2 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/IL1CaloxAODOfflineTriggerTowerTools.h +++ b/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/IL1CaloxAODOfflineTriggerTowerTools.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************** // * Author: John Morris (john.morris@cern.ch) * @@ -43,8 +43,6 @@ namespace LVL1{ /// Calo Cells into maps for L1Calo use virtual StatusCode initCaloCells() = 0; - /// Database init - virtual StatusCode initDatabase() = 0; virtual std::vector<L1CaloRxCoolChannelId> receivers( const xAOD::TriggerTower& tt ) const = 0; virtual std::vector<unsigned int> receiversId( const xAOD::TriggerTower& tt ) const = 0; -- GitLab From cc815bc83c0b798767a5d5163da94beb8dd55b02 Mon Sep 17 00:00:00 2001 From: Scott Snyder <scott.snyder@cern.ch> Date: Sun, 27 Jan 2019 07:42:55 +0000 Subject: [PATCH 147/192] ZdcRec+ZdcAnalysis: Migrate to VarHandles. --- .../ZDC/ZdcAnalysis/Root/ZdcAnalysisTool.cxx | 14 +- .../ZdcAnalysis/IZdcAnalysisTool.h | 7 +- .../ZdcAnalysis/ZdcAnalysis/ZdcAnalysisTool.h | 12 +- .../ZDC/ZdcRec/ZdcRec/ZdcRecChannelToolV2.h | 20 +-- ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecV3.h | 43 ++---- .../ZDC/ZdcRec/python/ZdcModuleGetter.py | 21 +-- .../ZDC/ZdcRec/src/ZdcRecChannelToolV2.cxx | 12 +- ForwardDetectors/ZDC/ZdcRec/src/ZdcRecV3.cxx | 129 ++++-------------- 8 files changed, 79 insertions(+), 179 deletions(-) diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/Root/ZdcAnalysisTool.cxx b/ForwardDetectors/ZDC/ZdcAnalysis/Root/ZdcAnalysisTool.cxx index f3480cb92fe2..52ab89e72fef 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/Root/ZdcAnalysisTool.cxx +++ b/ForwardDetectors/ZDC/ZdcAnalysis/Root/ZdcAnalysisTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "ZdcAnalysis/ZdcAnalysisTool.h" @@ -28,7 +28,6 @@ namespace ZDC declareInterface<IZdcAnalysisTool>(this); #endif - declareProperty("ZdcModuleContainerName",m_zdcModuleContainerName="ZdcModules","Location of ZDC processed data"); declareProperty("EventInfoKey", m_eventInfoKey, "Location of the event info."); declareProperty("ZdcModuleWriteKey", m_ZdcModuleWriteKey, "Output location of ZDC reprocessed data"); declareProperty("Configuration", m_configuration = "PbPb2015"); @@ -586,7 +585,6 @@ StatusCode ZdcAnalysisTool::initializeTool() ATH_MSG_INFO("ChisqRatioCut: "<<m_ChisqRatioCut); ATH_CHECK( m_eventInfoKey.initialize()); - ATH_CHECK( m_zdcModuleContainerName.initialize()); ATH_CHECK( m_ZdcModuleWriteKey.initialize() ); return StatusCode::SUCCESS; @@ -918,16 +916,6 @@ void ZdcAnalysisTool::setTimeCalibrations(unsigned int runNumber) fCalib->Close(); } -StatusCode ZdcAnalysisTool::reprocessZdc() -{ - SG::ReadHandle<xAOD::ZdcModuleContainer> zdc_modules(m_zdcModuleContainerName); - if (!zdc_modules.isValid()) return StatusCode::FAILURE; - - ATH_CHECK(recoZdcModules(*zdc_modules)); - - return StatusCode::SUCCESS; -} - bool ZdcAnalysisTool::sigprocMaxFinder(const std::vector<unsigned short>& adc, float deltaT, float& amp, float& time, float& qual) { size_t nsamp = adc.size(); diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/IZdcAnalysisTool.h b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/IZdcAnalysisTool.h index c4a9e9bdeb9f..81de4ccc6899 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/IZdcAnalysisTool.h +++ b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/IZdcAnalysisTool.h @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#ifndef __IZDCRECTOOL_H__ -#define __IZDCRECTOOL_H__ +#ifndef ZDCANALYSIS_IZDCRECTOOL_H +#define ZDCANALYSIS_IZDCRECTOOL_H #include "AsgTools/IAsgTool.h" #include "xAODForward/ZdcModuleContainer.h" @@ -21,7 +21,6 @@ class IZdcAnalysisTool : virtual public asg::IAsgTool virtual StatusCode initializeTool() = 0; virtual StatusCode recoZdcModule(const xAOD::ZdcModule& module) = 0; virtual StatusCode recoZdcModules(const xAOD::ZdcModuleContainer& moduleContainer) = 0; - virtual StatusCode reprocessZdc() = 0; }; } diff --git a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/ZdcAnalysisTool.h b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/ZdcAnalysisTool.h index 3b401b9b571c..8d944608d957 100644 --- a/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/ZdcAnalysisTool.h +++ b/ForwardDetectors/ZDC/ZdcAnalysis/ZdcAnalysis/ZdcAnalysisTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef ZDCANALYSIS_ZDCANALYSISTOOL_H @@ -30,15 +30,14 @@ class ZdcAnalysisTool : public virtual IZdcAnalysisTool, public asg::AsgTool virtual ~ZdcAnalysisTool(); //interface from AsgTool - StatusCode initializeTool(); - StatusCode initialize() {return initializeTool();} + virtual StatusCode initializeTool() override; + virtual StatusCode initialize() override {return initializeTool();} void initialize80MHz(); void initialize40MHz(); void initializeTriggerEffs(unsigned int runNumber); - StatusCode recoZdcModule(const xAOD::ZdcModule& module); - StatusCode recoZdcModules(const xAOD::ZdcModuleContainer& moduleContainer); - StatusCode reprocessZdc(); + virtual StatusCode recoZdcModule(const xAOD::ZdcModule& module) override; + virtual StatusCode recoZdcModules(const xAOD::ZdcModuleContainer& moduleContainer) override; // methods for processing, used for decoration bool sigprocMaxFinder(const std::vector<unsigned short>& adc, float deltaT, float& amp, float& time, float& qual); @@ -95,7 +94,6 @@ class ZdcAnalysisTool : public virtual IZdcAnalysisTool, public asg::AsgTool TF1* m_tf1SincInterp; SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey; - SG::ReadHandleKey<xAOD::ZdcModuleContainer> m_zdcModuleContainerName; SG::WriteHandleKey<xAOD::ZdcModuleContainer> m_ZdcModuleWriteKey; bool m_flipEMDelay; bool m_lowGainOnly; diff --git a/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecChannelToolV2.h b/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecChannelToolV2.h index 54c276804cce..4c6f7ec8b47d 100644 --- a/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecChannelToolV2.h +++ b/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecChannelToolV2.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /* @@ -42,15 +42,15 @@ class ZdcRecChannelToolV2: public asg::AsgTool, virtual public IIncidentListener ZdcRecChannelToolV2(const std::string& name); virtual ~ZdcRecChannelToolV2() {}; - virtual StatusCode initialize(); - virtual StatusCode finalize(); - virtual void handle( const Incident& ); - - int convertTT2ZM(const xAOD::TriggerTowerContainer* ttCollection, xAOD::ZdcModuleContainer* zdcModules); - int makeRawFromDigits(xAOD::ZdcModuleContainer& zdcModules); // NOT const -- we're going to modify the objects to add signal processing - int makeWaveformFromDigits(xAOD::ZdcModule& module); - int splitWaveform(std::map<int,float>& waveform, std::vector<float>& times, std::vector<float>& adcs); - int getPeakProperties(std::vector<float>& times, std::vector<float>& adcs, float& time, float& amp, float& qual, float& presamp); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; + virtual void handle( const Incident& ) override; + + int convertTT2ZM(const xAOD::TriggerTowerContainer* ttCollection, xAOD::ZdcModuleContainer* zdcModules) const; + int makeRawFromDigits(xAOD::ZdcModuleContainer& zdcModules) const; // NOT const -- we're going to modify the objects to add signal processing + int makeWaveformFromDigits(xAOD::ZdcModule& module) const; + int splitWaveform(std::map<int,float>& waveform, std::vector<float>& times, std::vector<float>& adcs) const; + int getPeakProperties(std::vector<float>& times, std::vector<float>& adcs, float& time, float& amp, float& qual, float& presamp) const; private: diff --git a/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecV3.h b/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecV3.h index 9862c24b6e65..e6294d6d1c84 100755 --- a/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecV3.h +++ b/ForwardDetectors/ZDC/ZdcRec/ZdcRec/ZdcRecV3.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -16,6 +16,8 @@ //which one ??? #include "AthenaBaseComps/AthAlgorithm.h" +#include "StoreGate/WriteHandleKey.h" +#include "StoreGate/ReadHandleKey.h" //#include "GaudiKernel/Algorithm.h" #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" @@ -51,44 +53,29 @@ class ZdcRecV3 : public AthAlgorithm public: ZdcRecV3(const std::string& name, ISvcLocator* pSvcLocator); - ~ZdcRecV3(); + virtual ~ZdcRecV3(); - StatusCode initialize(); - StatusCode execute(); - StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize() override; private: - - /** class member version of retrieving StoreGate */ - //StoreGateSvc* m_storeGate; - ServiceHandle<StoreGateSvc> m_storeGate; - - - /** Does the collection own it's objects ? **/ - int m_ownPolicy; - - /** Digits data container name */ - std::string m_ttContainerName; + SG::ReadHandleKey<xAOD::TriggerTowerContainer> m_ttContainerName + { this, "DigitsContainerName", "ZdcTriggerTowers", "" }; /** Raw data object name */ - std::string m_zdcModuleContainerName; - std::string m_zdcModuleAuxContainerName; - + SG::WriteHandleKey<xAOD::ZdcModuleContainer> m_zdcModuleContainerName + { this, "ZdcModuleContainerName", "ZdcModules", "" }; - /** Pointer to Zdc input "digits" data */ - const xAOD::TriggerTowerContainer* m_ttContainer; - - int m_eventCount; - bool m_complainContain; - bool m_complainRetrieve; //Include here all tools to do the job. They will be called by the algorithm execute method //Another option is to use ToolHandleArray<IZdcRecTool>, where IZdcRecTool is the factory for //the tools - ToolHandle<ZdcRecChannelToolV2> m_ChannelTool; - ToolHandle<ZDC::IZdcAnalysisTool> m_zdcTool; - + ToolHandle<ZdcRecChannelToolV2> m_ChannelTool + { this, "ChannelTool", "ZdcRecChannelToolV2", "" }; + ToolHandle<ZDC::IZdcAnalysisTool> m_zdcTool + { this, "ZdcAnalysisTool", "ZDC::ZdcAnalysisTool/ZdcAnalysisTool", "" }; }; #endif diff --git a/ForwardDetectors/ZDC/ZdcRec/python/ZdcModuleGetter.py b/ForwardDetectors/ZDC/ZdcRec/python/ZdcModuleGetter.py index d5545e751dd6..e7dbc4cbce16 100644 --- a/ForwardDetectors/ZDC/ZdcRec/python/ZdcModuleGetter.py +++ b/ForwardDetectors/ZDC/ZdcRec/python/ZdcModuleGetter.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # specifies egamma"standard" from AthenaCommon.Logging import logging @@ -53,23 +53,24 @@ class ZdcModuleGetter ( Configured ) : from AthenaCommon.AppMgr import ToolSvc from AthenaCommon import CfgMgr - mlog.info("adding ZDC::ZdcAnalysisTool to ToolSvc with default parameters, and no calibrations enabled"); + #mlog.info("adding ZDC::ZdcAnalysisTool to ToolSvc with default parameters, and no calibrations enabled"); #ToolSvc += CfgMgr.ZDC__ZdcAnalysisTool("ZdcAnalysisTool",DoCalib=False,Configuration="default") - ToolSvc += CfgMgr.ZDC__ZdcAnalysisTool("ZdcAnalysisTool",DoCalib=False,Configuration="pPb2016") + zdcAnalysisTool = CfgMgr.ZDC__ZdcAnalysisTool("ZdcAnalysisTool",DoCalib=False,Configuration="pPb2016") - ToolSvc.ZdcAnalysisTool.FixTau1=True - ToolSvc.ZdcAnalysisTool.FixTau2=True - ToolSvc.ZdcAnalysisTool.Tau1=5 - ToolSvc.ZdcAnalysisTool.Tau2=21 - ToolSvc.ZdcAnalysisTool.Peak2ndDerivThresh=15 + zdcAnalysisTool.FixTau1=True + zdcAnalysisTool.FixTau2=True + zdcAnalysisTool.Tau1=5 + zdcAnalysisTool.Tau2=21 + zdcAnalysisTool.Peak2ndDerivThresh=15 try: from ZdcRec.ZdcRecConf import ZdcRecV3 mlog.info("got ZdcRecV2") - self._zdcRecHandle = ZdcRecV3() + self._zdcRecHandle = ZdcRecV3(ZdcAnalysisTool = zdcAnalysisTool) except Exception: mlog.error("could not get handle to ZdcRecV3") - print traceback.format_exc() + import traceback + traceback.print_exc() return False diff --git a/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecChannelToolV2.cxx b/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecChannelToolV2.cxx index 9d6073f16364..cbae6914fb23 100644 --- a/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecChannelToolV2.cxx +++ b/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecChannelToolV2.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /* @@ -113,7 +113,7 @@ StatusCode ZdcRecChannelToolV2::finalize() } //================================================================================================== -int ZdcRecChannelToolV2::convertTT2ZM(const xAOD::TriggerTowerContainer* ttCollection, xAOD::ZdcModuleContainer* zdcModules ) +int ZdcRecChannelToolV2::convertTT2ZM(const xAOD::TriggerTowerContainer* ttCollection, xAOD::ZdcModuleContainer* zdcModules ) const { //typedef std::map<uint64_t,xAOD::ZdcModule*> hashmapType; @@ -200,7 +200,7 @@ int ZdcRecChannelToolV2::convertTT2ZM(const xAOD::TriggerTowerContainer* ttColle } -int ZdcRecChannelToolV2::makeWaveformFromDigits(xAOD::ZdcModule& module) +int ZdcRecChannelToolV2::makeWaveformFromDigits(xAOD::ZdcModule& module) const { size_t nsamp = 0; @@ -335,7 +335,7 @@ int ZdcRecChannelToolV2::makeWaveformFromDigits(xAOD::ZdcModule& module) //Returns a pointer to a RawChannel Collection with energy and time //================================================================================================== -int ZdcRecChannelToolV2::makeRawFromDigits(xAOD::ZdcModuleContainer& ChannelCollection) +int ZdcRecChannelToolV2::makeRawFromDigits(xAOD::ZdcModuleContainer& ChannelCollection) const { Identifier id; @@ -345,7 +345,7 @@ int ZdcRecChannelToolV2::makeRawFromDigits(xAOD::ZdcModuleContainer& ChannelCo return 0; } -int ZdcRecChannelToolV2::splitWaveform(std::map<int,float>& waveform, std::vector<float>& times, std::vector<float>& adcs) +int ZdcRecChannelToolV2::splitWaveform(std::map<int,float>& waveform, std::vector<float>& times, std::vector<float>& adcs) const { times.clear(); adcs.clear(); @@ -360,7 +360,7 @@ int ZdcRecChannelToolV2::splitWaveform(std::map<int,float>& waveform, std::vecto return 1; } -int ZdcRecChannelToolV2::getPeakProperties(std::vector<float>& times, std::vector<float>& adcs, float& time, float& amp, float& qual, float& presamp) +int ZdcRecChannelToolV2::getPeakProperties(std::vector<float>& times, std::vector<float>& adcs, float& time, float& amp, float& qual, float& presamp) const { if (times.size() != adcs.size()) diff --git a/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecV3.cxx b/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecV3.cxx index 4ce47705129d..81df40dbfa13 100644 --- a/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecV3.cxx +++ b/ForwardDetectors/ZDC/ZdcRec/src/ZdcRecV3.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /* @@ -16,6 +16,8 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/StatusCode.h" #include "StoreGate/StoreGateSvc.h" +#include "StoreGate/WriteHandle.h" +#include "StoreGate/ReadHandle.h" //#include "Identifier/Identifier.h" #include "xAODForward/ZdcModuleAuxContainer.h" @@ -29,24 +31,8 @@ //================================================================================================== ZdcRecV3::ZdcRecV3(const std::string& name, ISvcLocator* pSvcLocator) : - AthAlgorithm(name, pSvcLocator), - m_storeGate("StoreGateSvc", name), - m_ownPolicy(static_cast<int> (SG::OWN_ELEMENTS)), - m_ttContainerName("ZdcTriggerTowers"), - m_zdcModuleContainerName("ZdcModules"), - m_zdcModuleAuxContainerName("ZdcModulesAux."), - m_ttContainer(0), - m_eventCount(0), - m_complainContain(1), - m_complainRetrieve(1), - m_ChannelTool("ZdcRecChannelToolV2"), - m_zdcTool("ZDC::ZdcAnalysisTool/ZdcAnalysisTool") + AthAlgorithm(name, pSvcLocator) { - declareProperty("OwnPolicy",m_ownPolicy) ; - - declareProperty("DigitsContainerName", m_ttContainerName, "ZdcTriggerTowers"); - declareProperty("ZdcModuleContainerName", m_zdcModuleContainerName, "ZdcModules"); - declareProperty("ZdcModuleAuxContainerName", m_zdcModuleAuxContainerName, "ZdcModulesAux."); } //================================================================================================== @@ -57,93 +43,38 @@ ZdcRecV3::~ZdcRecV3() {} //================================================================================================== StatusCode ZdcRecV3::initialize() { - MsgStream mLog(msgSvc(), name()); - - // Look up the Storegate service - StatusCode sc = m_storeGate.retrieve(); - if (sc.isFailure()) - { - mLog << MSG::FATAL << "--> ZDC: Unable to retrieve pointer to StoreGateSvc" << endmsg; - return sc; - } - + ATH_CHECK( m_ChannelTool.retrieve() ); + ATH_CHECK( m_zdcTool.retrieve() ); - // Reconstruction Tool - StatusCode scTool = m_ChannelTool.retrieve(); - if (scTool.isFailure()) - { - mLog << MSG::WARNING << "--> ZDC: Could not retrieve " << m_ChannelTool << endmsg; - return StatusCode::FAILURE; - } - mLog << MSG::DEBUG << "--> ZDC: SUCCESS retrieving " << m_ChannelTool << endmsg; - - // Reconstruction Tool - StatusCode zdcTool = m_zdcTool.retrieve(); - if (zdcTool.isFailure()) - { - mLog << MSG::WARNING << "--> ZDC: Could not retrieve " << m_zdcTool << endmsg; - return StatusCode::FAILURE; - } - mLog << MSG::DEBUG << "--> ZDC: SUCCESS retrieving " << m_zdcTool << endmsg; + // Container output name + //TODO: change MESSAGE !! + ATH_MSG_DEBUG( " Output Container Name " << m_zdcModuleContainerName ); - // Container output name - //TODO: change MESSAGE !! - mLog << MSG::DEBUG << " Output Container Name " << m_zdcModuleContainerName << endmsg; - if (m_ownPolicy == SG::OWN_ELEMENTS) - mLog << MSG::DEBUG << "...will OWN its cells." << endmsg; - else - mLog << MSG::DEBUG << "...will VIEW its cells." << endmsg; + ATH_CHECK( m_zdcModuleContainerName.initialize() ); + ATH_CHECK( m_ttContainerName.initialize(SG::AllowEmpty) ); + ATH_MSG_DEBUG( "--> ZDC: ZdcRecV3 initialization complete" ); - mLog << MSG::DEBUG << "--> ZDC: ZdcRecV3 initialization complete" << endmsg; - - return StatusCode::SUCCESS; + return StatusCode::SUCCESS; } //================================================================================================== //================================================================================================== StatusCode ZdcRecV3::execute() { - - MsgStream mLog(msgSvc(), name()); - mLog << MSG::DEBUG - << "--> ZDC: ZdcRecV3 execute starting on " - << m_eventCount - << "th event" - << endmsg; - - m_eventCount++; + const EventContext& ctx = Gaudi::Hive::currentContext(); + ATH_MSG_DEBUG ("--> ZDC: ZdcRecV3 execute starting on " + << ctx.evt() + << "th event"); //Look for the container presence - bool dg = m_storeGate->contains<xAOD::TriggerTowerContainer>( m_ttContainerName); - if (!dg) { - if (m_complainContain) mLog << MSG::WARNING << "--> ZDC: StoreGate does not contain " << m_ttContainerName << endmsg; - m_complainContain = 0; + if (m_ttContainerName.empty()) { return StatusCode::SUCCESS; } // Look up the Digits "TriggerTowerContainer" in Storegate - StatusCode digitsLookupSC = m_storeGate->retrieve(m_ttContainer, m_ttContainerName); - if (digitsLookupSC.isFailure()) - { - if (m_complainRetrieve) - mLog << MSG::WARNING - << "--> ZDC: Could not retrieve " - << m_ttContainerName - << " from StoreGate" - << endmsg; - m_complainRetrieve = 0; - return StatusCode::SUCCESS; - } - - if (digitsLookupSC.isSuccess() && !m_ttContainer) - { - mLog << MSG::ERROR - << "--> ZDC: Storegate returned zero pointer for " - << m_ttContainerName - << endmsg; - return StatusCode::SUCCESS; - } + SG::ReadHandle<xAOD::TriggerTowerContainer> ttContainer + (m_ttContainerName, ctx); //Create the containers to hold the reconstructed information (you just pass the pointer and the converter does the work) std::unique_ptr<xAOD::ZdcModuleContainer> moduleContainer( new xAOD::ZdcModuleContainer()); @@ -151,17 +82,19 @@ StatusCode ZdcRecV3::execute() moduleContainer->setStore( moduleAuxContainer.get() ); // rearrange ZDC channels and perform fast reco on all channels (including non-big tubes) - int ncha = m_ChannelTool->convertTT2ZM(m_ttContainer, moduleContainer.get() ); + int ncha = m_ChannelTool->convertTT2ZM(ttContainer.get(), moduleContainer.get() ); msg( MSG::DEBUG ) << "Channel tool returns " << ncha << endmsg; msg( MSG::DEBUG ) << ZdcModuleToString(*moduleContainer) << endmsg; // re-reconstruct big tubes - - ATH_CHECK( evtStore()->record( std::move(moduleContainer), m_zdcModuleContainerName) ); - ATH_CHECK( evtStore()->record( std::move(moduleAuxContainer), m_zdcModuleAuxContainerName) ); - ATH_CHECK( m_zdcTool->reprocessZdc() ); // pulls the modules out of the event store + ATH_CHECK( m_zdcTool->recoZdcModules(*moduleContainer) ); + + SG::WriteHandle<xAOD::ZdcModuleContainer> moduleContainerH + (m_zdcModuleContainerName, ctx); + ATH_CHECK( moduleContainerH.record (std::move(moduleContainer), + std::move(moduleAuxContainer)) ); return StatusCode::SUCCESS; @@ -171,13 +104,7 @@ StatusCode ZdcRecV3::execute() //================================================================================================== StatusCode ZdcRecV3::finalize() { - - MsgStream mLog(msgSvc(),name()); - - mLog << MSG::DEBUG - << "--> ZDC: ZdcRecV3 finalize complete" - << endmsg; - + ATH_MSG_DEBUG( "--> ZDC: ZdcRecV3 finalize complete" ); return StatusCode::SUCCESS; } -- GitLab From 4bb4d32b395aec5bce1b791327de6d092a8d14a1 Mon Sep 17 00:00:00 2001 From: MihaMuskinja <miha.muskinja@gmail.com> Date: Fri, 25 Jan 2019 15:39:42 +0100 Subject: [PATCH 148/192] User action that sets G4 looper threshold values --- .../G4UserActions/LooperThresholdSet.h | 44 +++++++ .../G4UserActions/LooperThresholdSetTool.h | 54 ++++++++ .../python/G4UserActionsConfig.py | 7 ++ .../python/G4UserActionsConfigDb.py | 2 +- .../share/preInclude.LooperThresholdSet.py | 14 +++ .../G4UserActions/src/G4LooperThresholdSet.h | 29 +++++ .../G4UserActions/src/LooperThresholdSet.cxx | 116 ++++++++++++++++++ .../src/LooperThresholdSetTool.cxx | 51 ++++++++ .../src/components/G4UserActions_entries.cxx | 2 + 9 files changed, 318 insertions(+), 1 deletion(-) create mode 100644 Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSet.h create mode 100644 Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSetTool.h create mode 100644 Simulation/G4Utilities/G4UserActions/share/preInclude.LooperThresholdSet.py create mode 100644 Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h create mode 100644 Simulation/G4Utilities/G4UserActions/src/LooperThresholdSet.cxx create mode 100644 Simulation/G4Utilities/G4UserActions/src/LooperThresholdSetTool.cxx diff --git a/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSet.h b/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSet.h new file mode 100644 index 000000000000..89d0499f5e26 --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSet.h @@ -0,0 +1,44 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + */ + +#ifndef G4UserActions_LooperThresholdSet_H +#define G4UserActions_LooperThresholdSet_H + +#include "G4UserRunAction.hh" +#include "AthenaBaseComps/AthMessaging.h" + +#include "G4Run.hh" +#include "G4ParticleDefinition.hh" +#include "G4Transportation.hh" +#include "G4CoupledTransportation.hh" +#include "G4SystemOfUnits.hh" + +namespace G4UA +{ + +class LooperThresholdSet : public AthMessaging, public G4UserRunAction +{ +public: + +struct Config +{ + double WarningEnergy = 100.0 * CLHEP::MeV; + double ImportantEnergy = 250.0 * CLHEP::MeV; + int NumberOfTrials = 10; +}; + +LooperThresholdSet( const Config& config ); +virtual void BeginOfRunAction( const G4Run* ) override; + +private: + +Config m_config; + +void ChangeLooperParameters( const G4ParticleDefinition* particleDef ); +std::pair<G4Transportation*, G4CoupledTransportation*> findTransportation( const G4ParticleDefinition* particleDef ); +}; // class LooperThresholdSet + +} // namespace G4UA + +#endif diff --git a/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSetTool.h b/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSetTool.h new file mode 100644 index 000000000000..8405b065486f --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/G4UserActions/LooperThresholdSetTool.h @@ -0,0 +1,54 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + */ + +#ifndef G4USERACTIONS_G4UA_LooperThresholdSetTOOL_H +#define G4USERACTIONS_G4UA_LooperThresholdSetTOOL_H + +// System includes +#include <string> + +// Infrastructure includes +#include "G4AtlasTools/UserActionToolBase.h" + +// Local includes +#include "G4UserActions/LooperThresholdSet.h" + +namespace G4UA +{ + +/// @class LooperThresholdSetTool +/// @brief Tool which manages the Looper Threshold options. +/// +/// Create the LooperThresholdSet for each worker thread +/// +/// @author Miha Muskinja +/// +class LooperThresholdSetTool : public UserActionToolBase<LooperThresholdSet> +{ + +public: + +/// Standard constructor +LooperThresholdSetTool(const std::string& type, const std::string& name, + const IInterface* parent); + +virtual StatusCode initialize() override; +virtual StatusCode finalize() override; + +protected: + +/// Create action for this thread +virtual std::unique_ptr<LooperThresholdSet> +makeAndFillAction(G4AtlasUserActions&) override final; + +private: + +/// Configuration parameters +LooperThresholdSet::Config m_config; + +}; // class LooperThresholdSetTool + +} // namespace G4UA + +#endif diff --git a/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfig.py b/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfig.py index 799c1f6d005a..641db08c0fa5 100644 --- a/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfig.py +++ b/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfig.py @@ -108,3 +108,10 @@ def getRadLengthActionTool(name="G4UA::RadLengthActionTool", **kwargs): for prop,value in simFlags.UserActionConfig.get_Value()[name].iteritems(): kwargs.setdefault(prop,value) return CfgMgr.G4UA__RadLengthActionTool(name, **kwargs) + +def getLooperThresholdSetTool(name="G4UA::LooperThresholdSetTool", **kwargs): + from G4AtlasApps.SimFlags import simFlags + if name in simFlags.UserActionConfig.get_Value().keys(): + for prop,value in simFlags.UserActionConfig.get_Value()[name].iteritems(): + kwargs.setdefault(prop,value) + return CfgMgr.G4UA__LooperThresholdSetTool(name, **kwargs) diff --git a/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfigDb.py b/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfigDb.py index 0a54357fc924..cc35a37919f7 100644 --- a/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfigDb.py +++ b/Simulation/G4Utilities/G4UserActions/python/G4UserActionsConfigDb.py @@ -25,4 +25,4 @@ addTool("G4UserActions.G4UserActionsConfig.getScoringPlaneTool", "G4UA::ScoringP addTool("G4UserActions.G4UserActionsConfig.getRadiationMapsMakerTool", "G4UA::RadiationMapsMakerTool") addTool("G4UserActions.G4UserActionsConfig.getStoppedParticleActionTool", "G4UA::StoppedParticleActionTool") addTool("G4UserActions.G4UserActionsConfig.getRadLengthActionTool", "G4UA::RadLengthActionTool") - +addTool("G4UserActions.G4UserActionsConfig.getLooperThresholdSetTool", "G4UA::LooperThresholdSetTool") diff --git a/Simulation/G4Utilities/G4UserActions/share/preInclude.LooperThresholdSet.py b/Simulation/G4Utilities/G4UserActions/share/preInclude.LooperThresholdSet.py new file mode 100644 index 000000000000..f80237385758 --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/share/preInclude.LooperThresholdSet.py @@ -0,0 +1,14 @@ +######################################################### +# +# G4UserActions/preInclude.LooperThresholdSet.py +# @author Miha Muskinja +# +# Sets the looper threshold values in transportation processes +# +######################################################### + +from G4AtlasApps.SimFlags import simFlags +simFlags.OptionalUserActionList.addAction('G4UA::LooperThresholdSetTool') +simFlags.UserActionConfig.addConfig('G4UA::LooperThresholdSetTool', 'WarningEnergy', 0) +simFlags.UserActionConfig.addConfig('G4UA::LooperThresholdSetTool', 'ImportantEnergy', 0) +simFlags.UserActionConfig.addConfig('G4UA::LooperThresholdSetTool', 'NumberOfTrials', 10) diff --git a/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h b/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h new file mode 100644 index 000000000000..6730902cf789 --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef G4UserActions_LooperThresholdSet_H +#define G4UserActions_LooperThresholdSet_H + +#include "G4UserSteppingAction.hh" +#include "AthenaBaseComps/AthMessaging.h" + +#include "G4Run.hh" + +namespace G4UA +{ + + /// @brief Kills Monopoles and QBalls with energy < 1 MeV + class LooperThresholdSet : public G4UserSteppingAction, public AthMessaging + { + public: + LooperThresholdSet(); + virtual void BeginOfRunAction(const G4Run* aRun) override; + private: + void ChangeLooperParameters(const G4ParticleDefinition* particleDef ); + std::pair<G4Transportation*, G4CoupledTransportation*> findTransportation( const G4ParticleDefinition* particleDef, bool reportError ); + }; // class LooperThresholdSet + +} // namespace G4UA + +#endif diff --git a/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSet.cxx b/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSet.cxx new file mode 100644 index 000000000000..f15310c97158 --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSet.cxx @@ -0,0 +1,116 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + */ + +#include "G4UserActions/LooperThresholdSet.h" +#include <iostream> + +#include "G4Version.hh" + +#include "G4Electron.hh" +#include "G4ProcessManager.hh" + +#include "GaudiKernel/Bootstrap.h" +#include "GaudiKernel/ISvcLocator.h" +#include "GaudiKernel/IMessageSvc.h" + +namespace G4UA +{ + +//--------------------------------------------------------------------------- +LooperThresholdSet::LooperThresholdSet(const Config& config) : + AthMessaging(Gaudi::svcLocator()->service<IMessageSvc>("MessageSvc"), "LooperThresholdSet"), + m_config(config) +{ +} + +//--------------------------------------------------------------------------- +void LooperThresholdSet::BeginOfRunAction(const G4Run*) +{ + ChangeLooperParameters( G4Electron::Electron() ); +} + +void LooperThresholdSet::ChangeLooperParameters(const G4ParticleDefinition* particleDef) +{ + if( particleDef == nullptr ) + particleDef = G4Electron::Electron(); + auto transportPair = findTransportation( particleDef ); + auto transport = transportPair.first; + auto coupledTransport = transportPair.second; + + if( transport != nullptr ) + { + // Change the values of the looping particle parameters of Transportation + ATH_MSG_INFO("Setting looper values of G4Transportation process..."); + if( m_config.WarningEnergy >= 0.0 ) { + transport->SetThresholdWarningEnergy( m_config.WarningEnergy ); + ATH_MSG_INFO("Set ThresholdWarningEnergy to " << m_config.WarningEnergy); + } + else + ATH_MSG_WARNING("Invalid ThresholdEnergy: " << m_config.WarningEnergy); + if( m_config.ImportantEnergy >= 0.0 ) { + transport->SetThresholdImportantEnergy( m_config.ImportantEnergy ); + ATH_MSG_INFO("Set ImportantEnergy to " << m_config.ImportantEnergy); + + } + else + ATH_MSG_WARNING("Invalid ImportantEnergy: " << m_config.ImportantEnergy); + if( m_config.NumberOfTrials > 0 ) { + transport->SetThresholdTrials( m_config.NumberOfTrials ); + ATH_MSG_INFO("Set NumberOfTrials to " << m_config.NumberOfTrials); + + } + else + ATH_MSG_WARNING("Invalid NumberOfTrials: " << m_config.NumberOfTrials); + // Geant4 printout +#if G4VERSION_NUMBER > 1049 + transport->ReportLooperThresholds(); +#endif + } + else if( coupledTransport != nullptr ) + { + // Change the values for Coupled Transport + ATH_MSG_INFO("Setting looper values of G4CoupledTransportation process..."); + if( m_config.WarningEnergy >= 0.0 ) { + coupledTransport->SetThresholdWarningEnergy( m_config.WarningEnergy ); + ATH_MSG_INFO("Set ThresholdWarningEnergy to " << m_config.WarningEnergy); + } + else + ATH_MSG_WARNING("Invalid ThresholdEnergy: " << m_config.WarningEnergy); + if( m_config.ImportantEnergy >= 0.0 ) { + coupledTransport->SetThresholdImportantEnergy( m_config.ImportantEnergy ); + ATH_MSG_INFO("Set ImportantEnergy to " << m_config.ImportantEnergy); + + } + else + ATH_MSG_WARNING("Invalid ImportantEnergy: " << m_config.ImportantEnergy); + if( m_config.NumberOfTrials > 0 ) { + coupledTransport->SetThresholdTrials( m_config.NumberOfTrials ); + ATH_MSG_INFO("Set NumberOfTrials to " << m_config.NumberOfTrials); + + } + else + ATH_MSG_WARNING("Invalid NumberOfTrials: " << m_config.NumberOfTrials); + // Geant4 printout +#if G4VERSION_NUMBER > 1049 + transport->ReportLooperThresholds(); +#endif + } +} + +std::pair<G4Transportation*, G4CoupledTransportation*> +LooperThresholdSet::findTransportation( const G4ParticleDefinition* particleDef ) +{ + const auto *partPM = particleDef->GetProcessManager(); + + G4VProcess* partTransport = partPM->GetProcess("Transportation"); + auto transport = dynamic_cast<G4Transportation*>(partTransport); + + partTransport = partPM->GetProcess("CoupledTransportation"); + auto coupledTransport= + dynamic_cast<G4CoupledTransportation*>(partTransport); + + return std::make_pair( transport, coupledTransport ); +} + +} // namespace G4UA diff --git a/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSetTool.cxx b/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSetTool.cxx new file mode 100644 index 000000000000..52964741a01b --- /dev/null +++ b/Simulation/G4Utilities/G4UserActions/src/LooperThresholdSetTool.cxx @@ -0,0 +1,51 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + */ + +#include "G4UserActions/LooperThresholdSetTool.h" + +namespace G4UA +{ + +//--------------------------------------------------------------------------- +// Constructor +//--------------------------------------------------------------------------- +LooperThresholdSetTool::LooperThresholdSetTool(const std::string& type, const std::string& name, + const IInterface* parent) : + UserActionToolBase<LooperThresholdSet>(type, name, parent), + m_config() +{ + declareProperty("WarningEnergy", m_config.WarningEnergy); + declareProperty("ImportantEnergy", m_config.ImportantEnergy); + declareProperty("NumberOfTrials", m_config.NumberOfTrials); +} + +//--------------------------------------------------------------------------- +// Initialize - temporarily here for debugging +//--------------------------------------------------------------------------- +StatusCode LooperThresholdSetTool::initialize() +{ + ATH_MSG_DEBUG("initialize"); + return StatusCode::SUCCESS; +} + +StatusCode LooperThresholdSetTool::finalize() +{ + ATH_MSG_DEBUG("finalize"); + return StatusCode::SUCCESS; +} + + +//--------------------------------------------------------------------------- +// Create the action on request +//--------------------------------------------------------------------------- +std::unique_ptr<LooperThresholdSet> +LooperThresholdSetTool::makeAndFillAction(G4AtlasUserActions& actionList) +{ + ATH_MSG_DEBUG("Making a LooperThresholdSet action"); + auto action = std::make_unique<LooperThresholdSet>(m_config); + actionList.runActions.push_back( action.get() ); + return action; +} + +} diff --git a/Simulation/G4Utilities/G4UserActions/src/components/G4UserActions_entries.cxx b/Simulation/G4Utilities/G4UserActions/src/components/G4UserActions_entries.cxx index 2273268922dd..20927db73188 100644 --- a/Simulation/G4Utilities/G4UserActions/src/components/G4UserActions_entries.cxx +++ b/Simulation/G4Utilities/G4UserActions/src/components/G4UserActions_entries.cxx @@ -15,6 +15,7 @@ #include "G4UserActions/ScoringPlaneTool.h" #include "G4UserActions/RadiationMapsMakerTool.h" #include "G4UserActions/RadLengthActionTool.h" +#include "G4UserActions/LooperThresholdSetTool.h" #include "../TestActionTool.h" DECLARE_COMPONENT( G4UA::G4SimTimerTool ) @@ -34,4 +35,5 @@ DECLARE_COMPONENT( G4UA::FluxRecorderTool ) DECLARE_COMPONENT( G4UA::ScoringPlaneTool ) DECLARE_COMPONENT( G4UA::RadiationMapsMakerTool ) DECLARE_COMPONENT( G4UA::RadLengthActionTool ) +DECLARE_COMPONENT( G4UA::LooperThresholdSetTool ) DECLARE_COMPONENT( G4UA::TestActionTool ) -- GitLab From d4c3594d2f670f46f8072ebd1423918200264afb Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sun, 27 Jan 2019 14:49:40 +0000 Subject: [PATCH 149/192] Const-correctness, potential thread safety issues --- .../Root/CaloClusterAccessors_v1.cxx | 16 ++++++++-------- .../xAODCaloEvent/Root/CaloClusterAccessors_v1.h | 2 +- Event/xAOD/xAODCaloEvent/Root/CaloCluster_v1.cxx | 2 +- Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx | 6 ++++-- .../xAODCaloEvent/versions/CaloTower_v1.h | 4 ---- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.cxx b/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.cxx index 1761b0fd24f9..3a8d455d0c3b 100644 --- a/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.cxx +++ b/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.cxx @@ -14,13 +14,13 @@ #define DEFINE_ACCESSOR( NAME ) \ case xAOD::CaloCluster_v1::NAME: \ { \ - static SG::AuxElement::Accessor< float > a( #NAME ); \ + static const SG::AuxElement::Accessor< float > a( #NAME ); \ return &a; \ } \ break namespace xAOD { - SG::AuxElement::Accessor< float >* + const SG::AuxElement::Accessor< float >* momentAccessorV1( xAOD::CaloCluster_v1::MomentType moment ) { switch( moment ) { @@ -65,14 +65,14 @@ namespace xAOD { DEFINE_ACCESSOR( OOC_WEIGHT ); DEFINE_ACCESSOR( DM_WEIGHT ); DEFINE_ACCESSOR( TILE_CONFIDENCE_LEVEL ); - DEFINE_ACCESSOR( VERTEX_FRACTION ); - DEFINE_ACCESSOR( NVERTEX_FRACTION ); + DEFINE_ACCESSOR( VERTEX_FRACTION ); + DEFINE_ACCESSOR( NVERTEX_FRACTION ); DEFINE_ACCESSOR( ETACALOFRAME ); DEFINE_ACCESSOR( PHICALOFRAME ); - DEFINE_ACCESSOR( ETA1CALOFRAME ); - DEFINE_ACCESSOR( PHI1CALOFRAME ); - DEFINE_ACCESSOR( ETA2CALOFRAME ); - DEFINE_ACCESSOR( PHI2CALOFRAME ); + DEFINE_ACCESSOR( ETA1CALOFRAME ); + DEFINE_ACCESSOR( PHI1CALOFRAME ); + DEFINE_ACCESSOR( ETA2CALOFRAME ); + DEFINE_ACCESSOR( PHI2CALOFRAME ); DEFINE_ACCESSOR( ENG_CALIB_TOT ); DEFINE_ACCESSOR( ENG_CALIB_OUT_L ); DEFINE_ACCESSOR( ENG_CALIB_OUT_M ); diff --git a/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.h b/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.h index 668964ec81f3..0103e956a81c 100644 --- a/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.h +++ b/Event/xAOD/xAODCaloEvent/Root/CaloClusterAccessors_v1.h @@ -21,7 +21,7 @@ namespace xAOD { /// @param moment The cluster moment for which an Accessor should be returned /// @returns A pointer to an Accessor if successful, <code>0</code> if not /// - SG::AuxElement::Accessor< float >* + const SG::AuxElement::Accessor< float >* momentAccessorV1( xAOD::CaloCluster_v1::MomentType moment ); } // namespace xAOD diff --git a/Event/xAOD/xAODCaloEvent/Root/CaloCluster_v1.cxx b/Event/xAOD/xAODCaloEvent/Root/CaloCluster_v1.cxx index 5cb6d4cda360..726723fbc38e 100644 --- a/Event/xAOD/xAODCaloEvent/Root/CaloCluster_v1.cxx +++ b/Event/xAOD/xAODCaloEvent/Root/CaloCluster_v1.cxx @@ -791,7 +791,7 @@ namespace xAOD { bool CaloCluster_v1::retrieveMoment( MomentType type, double& value ) const { // Get the moment accessor: - Accessor< float >* acc = momentAccessorV1( type ); + const Accessor< float >* acc = momentAccessorV1( type ); if( ! acc ) return false; // Check if the moment is available: if( ! acc->isAvailable( *this ) ) { diff --git a/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx b/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx index d82a267f966d..a064b4552115 100644 --- a/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx +++ b/Event/xAOD/xAODCaloEvent/Root/CaloTower_v1.cxx @@ -7,7 +7,9 @@ #include "xAODCaloEvent/versions/CaloTowerContainer_v1.h" #include <cmath> -const double xAOD::CaloTower_v1::m_towerMass = 0.; +namespace{ +const double s_towerMass{0.}; +} xAOD::CaloTower_v1::CaloTower_v1() : IParticle() @@ -45,7 +47,7 @@ double xAOD::CaloTower_v1::phi() const { return pTowCont->phi(index()); } -double xAOD::CaloTower_v1::m() const { return m_towerMass; } +double xAOD::CaloTower_v1::m() const { return s_towerMass; } double xAOD::CaloTower_v1::rapidity() const { return eta(); } double xAOD::CaloTower_v1::pt() const { return genvecP4().Pt(); } diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h index 6bc9cd8bee46..0131656b4d08 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloTower_v1.h @@ -81,10 +81,6 @@ namespace xAOD { float f_val_e() const; ///< @brief Accessor for energy /// @} - /// @name Transient four-momentum store - /// @{ - static const double m_towerMass; ///> @brief Convention @f$ m_{\mathrm{tower}} = 0 @f$. - /// @} }; } -- GitLab From cd3000fa2cff3c2dae8ace274d58b7406af6bf98 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sun, 27 Jan 2019 15:10:00 +0000 Subject: [PATCH 150/192] xAODBase/xAODPrimitives pass THREAD_SAFETY_CHECKER --- Event/xAOD/xAODBase/Root/IParticleHelpers.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Event/xAOD/xAODBase/Root/IParticleHelpers.cxx b/Event/xAOD/xAODBase/Root/IParticleHelpers.cxx index 1350ca88bb59..fc1e915bce00 100644 --- a/Event/xAOD/xAODBase/Root/IParticleHelpers.cxx +++ b/Event/xAOD/xAODBase/Root/IParticleHelpers.cxx @@ -16,7 +16,7 @@ namespace xAOD { /// Object used for setting/getting the dynamic decoration in question - static SG::AuxElement::Accessor< ElementLink< IParticleContainer > > + static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc( "originalObjectLink" ); /// This function should be used by CP tools when they make a deep copy -- GitLab From 3360153145e73be5bd4bbcaf4229002de5edc023 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sun, 27 Jan 2019 15:13:25 +0000 Subject: [PATCH 151/192] add the files forcing the check, for now as a mean to not revert back to non-safe constructs --- Event/xAOD/xAODBase/xAODBase/ATLAS_CHECK_THREAD_SAFETY | 1 + .../xAOD/xAODPrimitives/xAODPrimitives/ATLAS_CHECK_THREAD_SAFETY | 1 + 2 files changed, 2 insertions(+) create mode 100644 Event/xAOD/xAODBase/xAODBase/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/xAOD/xAODPrimitives/xAODPrimitives/ATLAS_CHECK_THREAD_SAFETY diff --git a/Event/xAOD/xAODBase/xAODBase/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODBase/xAODBase/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..78b65e6b1544 --- /dev/null +++ b/Event/xAOD/xAODBase/xAODBase/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODBase diff --git a/Event/xAOD/xAODPrimitives/xAODPrimitives/ATLAS_CHECK_THREAD_SAFETY b/Event/xAOD/xAODPrimitives/xAODPrimitives/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 000000000000..1757f5133730 --- /dev/null +++ b/Event/xAOD/xAODPrimitives/xAODPrimitives/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/xAOD/xAODPrimitives -- GitLab From 3fc211f3ddf7882a84db3725fd0798989a3015ce Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 19:11:25 +0100 Subject: [PATCH 152/192] Fix unused variable warning --- DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx b/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx index 29a4fd1ec2a7..e93a39b52c39 100644 --- a/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx +++ b/DataQuality/dqm_algorithms/src/MDTTDCOfflineSpectrum.cxx @@ -52,6 +52,10 @@ dqm_algorithms::MDTTDCOfflineSpectrum::execute( const std::string & name, } const double minstat = dqm_algorithms::tools::GetFirstFromMap( "MinStat", config.getParameters(), -1); + /* + const bool publish = (bool) dqm_algorithms::tools::GetFirstFromMap( "PublishBins", config.getParameters(), 0); + const int maxpublish = (int) dqm_algorithms::tools::GetFirstFromMap( "MaxPublish", config.getParameters(), 20); + */ if (histogram->GetEntries() < minstat ) { dqm_core::Result *result = new dqm_core::Result(dqm_core::Result::Undefined); -- GitLab From df5ae669593a766b56004b4ac8d74f5d3686ff9f Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 19:11:47 +0100 Subject: [PATCH 153/192] Sweep 21.0 dqm_algorithms to master --- DataQuality/dqm_algorithms/src/GatherData.cxx | 13 +++++++++++-- .../dqm_algorithms/tools/AlgorithmHelper.cxx | 11 +++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/DataQuality/dqm_algorithms/src/GatherData.cxx b/DataQuality/dqm_algorithms/src/GatherData.cxx index 2e5f058fc480..af65fdf705f7 100644 --- a/DataQuality/dqm_algorithms/src/GatherData.cxx +++ b/DataQuality/dqm_algorithms/src/GatherData.cxx @@ -14,6 +14,7 @@ #include <TH1.h> #include <TGraph.h> +#include <TEfficiency.h> #include "dqm_core/exceptions.h" #include "dqm_core/AlgorithmManager.h" @@ -60,8 +61,9 @@ execute( const std::string& name, const TObject& data, const dqm_core::Algorithm // Cast to the type of TObject to assess const TH1* h = dynamic_cast<const TH1*>( &data ); const TGraph* g = dynamic_cast<const TGraph*>( &data ); - if( h == 0 && g == 0 ) { - throw dqm_core::BadConfig( ERS_HERE, name, "Cannot cast data to type TH1" ); + const TEfficiency* e = dynamic_cast<const TEfficiency*>( &data ); + if( h == 0 && g == 0 && e==0 ) { + throw dqm_core::BadConfig( ERS_HERE, name, "Cannot cast data to type TH1, TGraph, or TEfficiency" ); } std::map<std::string,double> tags; @@ -78,6 +80,13 @@ execute( const std::string& name, const TObject& data, const dqm_core::Algorithm tags["XRMS"] = g->GetRMS(1); tags["YRMS"] = g->GetRMS(2); } + + if ( e != 0 ) { + tags["Mean"] = e->GetCopyPassedHisto()->GetMean(); + tags["MeanError"] = e->GetCopyPassedHisto()->GetMeanError(); + tags["RMS"] = e->GetCopyPassedHisto()->GetRMS(); + tags["RMSError"] = e->GetCopyPassedHisto()->GetRMSError(); + } dqm_core::Result* result = new dqm_core::Result( status ); result->tags_ = tags; diff --git a/DataQuality/dqm_algorithms/tools/AlgorithmHelper.cxx b/DataQuality/dqm_algorithms/tools/AlgorithmHelper.cxx index 29e2dd00105f..c4ee85c94116 100644 --- a/DataQuality/dqm_algorithms/tools/AlgorithmHelper.cxx +++ b/DataQuality/dqm_algorithms/tools/AlgorithmHelper.cxx @@ -379,10 +379,17 @@ std::vector<int> dqm_algorithms::tools::GetBinRange(const TH1 *h, const std::map const double xmax = dqm_algorithms::tools::GetFirstFromMap("xmax", params, notFound); const double ymin = dqm_algorithms::tools::GetFirstFromMap("ymin", params, notFound); const double ymax = dqm_algorithms::tools::GetFirstFromMap("ymax", params, notFound); + + /**The nested ternaries do the following. + * Suppose xmax (or ymax) happen to be a value that corresponds to the boundary of a bin. + * TAxis::FindBin then returns the bin for which the xmax is the lower edge of the bin. + * The nested ternaries prevent this happening by decrementing the bin number returned by TAxis::FindBin by 1. + */ const int xlow = (xmin == notFound) ? 1 : xAxis->FindBin(xmin); - const int xhigh = (xmax == notFound) ? xAxis->GetNbins() : xAxis->FindBin(xmax); + const int xhigh = (xmax == notFound) ? xAxis->GetNbins() : (xAxis->GetBinLowEdge(xAxis->FindBin(xmax))== xmax) ? (xAxis->FindBin(xmax)-1) : xAxis->FindBin(xmax); const int ylow = (ymin == notFound) ? 1 : yAxis->FindBin(ymin); - const int yhigh = (ymax == notFound) ? yAxis->GetNbins() : yAxis->FindBin(ymax); + const int yhigh = (ymax == notFound) ? yAxis->GetNbins() : (yAxis->GetBinLowEdge(yAxis->FindBin(ymax))== ymax) ? (yAxis->FindBin(ymax)-1) : yAxis->FindBin(ymax); + if (xlow>xhigh) { char temp[128]; -- GitLab From 4c7ad2bea0b4693c6595c58c7edbf8a02daa6bb1 Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 19:59:12 +0100 Subject: [PATCH 154/192] Sweep 21.0 DataQualityConfigurations to master --- .../config/HLT/HLTegamma/heavyions_run.config | 33807 +++++++++---- .../config/HLT/HLTjet/heavyions_run.config | 1375 +- .../config/HLT/HLTmuon/collisions_run.config | 113 +- .../config/HLT/HLTmuon/heavyions_run.config | 125 +- .../config/HLT/HLTtau/collisions_run.config | 41660 +++++++--------- .../JetTagging/collisions_minutes10.config | 72 +- .../config/JetTagging/collisions_run.config | 101 +- .../JetTagging/heavyions_minutes10.config | 95 +- .../config/JetTagging/heavyions_run.config | 1191 +- .../config/MuonCombined/collisions_run.config | 34 +- .../config/common/collisions_run.config | 24 +- .../scripts/UploadDQAMITag.py | 2 +- 12 files changed, 42155 insertions(+), 36444 deletions(-) diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTegamma/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTegamma/heavyions_run.config index b8adc2e8d45f..b5020b9104af 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTegamma/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTegamma/heavyions_run.config @@ -1,9 +1,9 @@ ###################################################################### -# $Id: collisions_run.config Fri Nov 4 11:59:15 2016 rwhite $ +# file egamma_ATR-18760.config Fri Oct 5 15:53:37 2018 mifeng ###################################################################### ####################### -# HLTegamma +# HLTidtrk ####################### @@ -20,25 +20,37 @@ output top_level { output Expert { output Event { } - output HLT_g13_etcut { - output Efficiency { + output HLT_e15_etcut_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Photon { + output L2 { } output L2Calo { } @@ -46,29 +58,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_g15_loose { - output Efficiency { + output HLT_e15_lhloose_ion_L1EM12 { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Photon { + output L2 { } output L2Calo { } @@ -76,29 +102,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_g18_etcut { - output Efficiency { + output HLT_e15_lhmedium_ion_L1EM12 { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Photon { + output L2 { } output L2Calo { } @@ -106,29 +146,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_g20_loose { - output Efficiency { + output HLT_e15_loose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Photon { + output L2 { } output L2Calo { } @@ -136,29 +190,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_g35_loose { - output Efficiency { + output HLT_e15_medium_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Photon { + output L2 { } output L2Calo { } @@ -166,29 +234,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e15_etcut { - output Efficiency { + output HLT_e18_etcut_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -196,29 +278,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e15_lhloose { - output Efficiency { + output HLT_e18_lhloose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -226,29 +322,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e17_lhloose { - output Efficiency { + output HLT_e18_lhmedium_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -256,29 +366,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e15_lhloose_nod0 { - output Efficiency { + output HLT_e18_loose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -286,29 +410,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e15_loose { - output Efficiency { + output HLT_e18_medium_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -316,29 +454,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e17_lhloose_nod0 { - output Efficiency { + output HLT_e20_loose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Electron { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -346,29 +498,43 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - output HLT_e22_lhloose_nod0 { - output Efficiency { + output HLT_g13_etcut_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } output HLT { } + output L1Calo { + } output L2Calo { + output discriminant_binned { + } } - output L2 { + output L2Photon { } - output EFCalo { + output Offline { + } + output RoI { } } - output Distributions { - output Offline { + output Efficiency { + output EFCalo { } output HLT { } - output EFCalo { + output L1Calo { } - output L2Electron { + output L2 { } output L2Calo { } @@ -376,15334 +542,27828 @@ output top_level { output Resolutions { output HLT { } + output L1Calo { + } output L2Calo_vs_HLT { } } } - } - output Shifter { - output primary_single_pho { - } - output primary_single_ele { - } - output primary_single_ele_cutbased { - } - } - } - } -} - - -####################### -# Histogram Assessments + output HLT_g15_loose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2Calo { + output discriminant_binned { + } + } + output L2Photon { + } + output Offline { + } + output RoI { + } + } + output Efficiency { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2 { + } + output L2Calo { + } + } + output Resolutions { + output HLT { + } + output L1Calo { + } + output L2Calo_vs_HLT { + } + } + } + output HLT_g18_etcut_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2Calo { + output discriminant_binned { + } + } + output L2Photon { + } + output Offline { + } + output RoI { + } + } + output Efficiency { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2 { + } + output L2Calo { + } + } + output Resolutions { + output HLT { + } + output L1Calo { + } + output L2Calo_vs_HLT { + } + } + } + output HLT_g20_loose_ion { + output AbsResolutions { + output L1Calo { + } + } + output Distributions { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2Calo { + output discriminant_binned { + } + } + output L2Photon { + } + output Offline { + } + output RoI { + } + } + output Efficiency { + output EFCalo { + } + output HLT { + } + output L1Calo { + } + output L2 { + } + output L2Calo { + } + } + output Resolutions { + output HLT { + } + output L1Calo { + } + output L2Calo_vs_HLT { + } + } + } + } + output Shifter { + output primary_single_ele { + } + output primary_single_ele_cutbased { + } + output primary_single_pho { + } + } + } + } +} + + +####################### +# Histogram Assessments ####################### dir HLT { dir Egamma { dir Expert { dir Event { - hist Photons_electrons { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Photons_trigger_counts { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } hist Electrons_electrons { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Expert/Event display = StatBox } hist Electrons_trigger_counts { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_ProbeCutCounter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_TagCutCounter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_Mee { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_CutCounter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_trigger_counts { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbes { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbesL1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbesL2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbesL2Calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbesEFCalo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_nProbesHLT { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_EffL1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_EffL2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Expert/Event display = StatBox } - hist Zee_EffL2Calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/Event - display = StatBox - } - hist Zee_EffEFCalo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist Photons_electrons { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Expert/Event display = StatBox } - hist Zee_EffHLT { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist Photons_trigger_counts { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Expert/Event display = StatBox } } - dir HLT_g13_etcut { - dir Efficiency { + dir HLT_e15_etcut_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/AbsResolutions/L1Calo + display = StatBox + } + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/EFCalo + display = StatBox + } + } dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/HLT + display = StatBox + } + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L1Calo + display = StatBox + } + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Calo + display = StatBox + } + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Electron + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Electron + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/L2Electron + display = StatBox + } + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Distributions/RoI + display = StatBox + } + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/EFCalo + display = StatBox + } + } + dir HLT { + hist FailisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/HLT + display = StatBox + } + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L1Calo + display = StatBox + } + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2 + display = StatBox + } + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Efficiency/L2Calo + display = StatBox + } + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/HLT + display = StatBox + } + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L1Calo + display = StatBox + } + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_etcut_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + } + } + } + dir HLT_e15_lhloose_ion_L1EM12 { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/AbsResolutions/L1Calo + display = StatBox + } + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/HLT + display = StatBox + } + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Distributions/RoI + display = StatBox + } + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + } + dir HLT { + hist FailisEMLHLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist IneffisEMLHLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/HLT + display = StatBox + } + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2 + display = StatBox + } + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/HLT + display = StatBox + } + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L1Calo + display = StatBox + } + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhloose_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + } + } + } + dir HLT_e15_lhmedium_ion_L1EM12 { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/AbsResolutions/L1Calo + display = StatBox + } + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/EFCalo + display = StatBox + } + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/HLT + display = StatBox + } + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L1Calo + display = StatBox + } + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Calo + display = StatBox + } + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/L2Electron + display = StatBox + } + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Distributions/RoI + display = StatBox + } + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/EFCalo + display = StatBox + } + } + dir HLT { + hist FailisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist IneffisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/HLT + display = StatBox + } + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L1Calo + display = StatBox + } + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2 + display = StatBox + } + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Efficiency/L2Calo + display = StatBox + } + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/HLT + display = StatBox + } + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L1Calo + display = StatBox + } + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_lhmedium_ion_L1EM12/Resolutions/L2Calo_vs_HLT + display = StatBox + } + } + } + } + dir HLT_e15_loose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/AbsResolutions/L1Calo + display = StatBox + } + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/EFCalo + display = StatBox + } + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/HLT + display = StatBox + } + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L1Calo + display = StatBox + } + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Calo + display = StatBox + } + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Electron + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Electron + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/L2Electron + display = StatBox + } + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Distributions/RoI + display = StatBox + } + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/EFCalo + display = StatBox + } + } + dir HLT { + hist FailisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMLooseTRT { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMLooseTrk { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMLooseTrkClus { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/HLT + display = StatBox + } + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L1Calo + display = StatBox + } + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2 + display = StatBox + } + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Efficiency/L2Calo + display = StatBox + } + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/HLT + display = StatBox + } + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L1Calo + display = StatBox + } + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_loose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + } + } + } + dir HLT_e15_medium_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/AbsResolutions/L1Calo + display = StatBox + } + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/EFCalo + display = StatBox + } + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/HLT + display = StatBox + } + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L1Calo + display = StatBox + } + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Calo + display = StatBox + } + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Electron + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Electron + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/L2Electron + display = StatBox + } + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Distributions/RoI + display = StatBox + } + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/EFCalo + display = StatBox + } + } + dir HLT { + hist FailisEMMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMMediumTRT { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMMediumTrk { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist IneffisEMMediumTrkClus { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/HLT + display = StatBox + } + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L1Calo + display = StatBox + } + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2 + display = StatBox + } + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Efficiency/L2Calo + display = StatBox + } + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT + display = StatBox + } + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L1Calo display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e15_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + } + } + } + dir HLT_e18_etcut_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/AbsResolutions/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2Calo + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/EFCalo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/L2 + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT + display = StatBox + } + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Efficiency/EFCalo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT + display = StatBox + } + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L1Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline - display = StatBox + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Calo display = StatBox } } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Electron display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Electron display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Electron display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Electron display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/L2Electron display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - } - dir L2Photon { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Photon + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Photon + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Photon + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - } - dir L2Calo { - hist ringer_nnOutput { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist ringer_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Calo + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Calo + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Calo + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Distributions/L2Calo + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/Offline display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/RoI display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Distributions/RoI display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_et_cnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_et_uncnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_uncnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_uncnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_cnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_uncnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist res_uncnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + } + dir HLT { + hist FailisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist IneffisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/HLT + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g13_etcut/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/HLT display = StatBox } } - } - } - dir HLT_g15_loose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L1Calo display = StatBox } } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2 display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 - display = StatBox - } + dir L2Calo { hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 - display = StatBox - } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/L2 - display = StatBox - } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Efficiency/EFCalo + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/Offline + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/HLT display = StatBox } } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/HLT + } + } + } + dir HLT_e18_lhloose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/AbsResolutions/L1Calo display = StatBox } } + } + dir Distributions { dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo + display = StatBox + } hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo - display = StatBox - } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/EFCalo + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/EFCalo display = StatBox } } - dir L2Photon { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Photon + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Photon + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Photon + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Calo + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Calo + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Distributions/L2Calo + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_et_cnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_et_uncnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_cnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_uncnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/HLT + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L1Calo display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT - display = StatBox + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Calo display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Electron display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Electron display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Electron display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Electron display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g15_loose/Resolutions/L2Calo_vs_HLT + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/L2Electron display = StatBox } } - } - } - dir HLT_g18_etcut { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2Calo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/Offline display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Distributions/RoI display = StatBox } + } + } + dir Efficiency { + dir EFCalo { hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/L2 + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/EFCalo display = StatBox } } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + dir HLT { + hist FailisEMLHLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist IneffisEMLHLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Efficiency/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/EFCalo + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Photon { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Photon + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Photon + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Photon + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Calo { - hist ringer_nnOutput { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Calo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist ringer_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Calo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Distributions/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Efficiency/L2Calo display = StatBox } + } + } + dir Resolutions { + dir HLT { hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_et_cnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_et_uncnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_cnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_uncnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L1Calo display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g18_etcut/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - } - } - dir HLT_g20_loose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhloose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + } + } + } + dir HLT_e18_lhmedium_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/AbsResolutions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/EFCalo display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2Calo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/L2 + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/HLT display = StatBox } } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo - display = StatBox - } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo - display = StatBox - } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Electron display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Electron display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Electron display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Efficiency/EFCalo + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Electron + display = StatBox + } + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/L2Electron display = StatBox } } - } - dir Distributions { dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/Offline display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/RoI display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Distributions/RoI display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - } - dir L2Photon { hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Photon + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Photon + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Photon + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Calo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Calo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Distributions/L2Calo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/EFCalo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + } + dir HLT { + hist FailisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist IneffisEMLHMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_et_cnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_et_uncnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_cnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_uncnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g20_loose/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } - } - } - } - dir HLT_g35_loose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L1Calo display = StatBox } + } + dir L2 { hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT - display = StatBox - } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT - display = StatBox - } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2 display = StatBox } } dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Efficiency/L2Calo display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/L2 + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Efficiency/EFCalo + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_lhmedium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + } + } + } + dir HLT_e18_loose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/AbsResolutions/L1Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/Offline + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/EFCalo display = StatBox } + } + dir HLT { hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT - display = StatBox - } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/EFCalo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - } - dir L2Photon { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Photon + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Photon + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Photon + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Calo + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT + display = StatBox + } + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_et_cnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_et_uncnv { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_cnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_cnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_uncnv_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L1Calo display = StatBox } - hist res_uncnv_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo display = StatBox } - hist res_cnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo display = StatBox } - hist res_cnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Calo display = StatBox } - hist res_cnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Electron display = StatBox } - hist res_cnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Electron display = StatBox } - hist res_uncnv_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Electron display = StatBox } - hist res_uncnv_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Electron display = StatBox } - hist res_uncnv_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/L2Electron display = StatBox } - hist res_uncnv_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_g35_loose/Resolutions/L2Calo_vs_HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - } - } - } - dir HLT_e15_etcut { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/RoI display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Distributions/RoI display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/EFCalo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + } + dir HLT { + hist FailisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist IneffisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist IneffisEMLooseTRT { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist IneffisEMLooseTrk { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist IneffisEMLooseTrkClus { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2Calo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - } - dir L2 { hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT + display = StatBox + } + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/L2 + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo + display = StatBox + } + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L1Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2 display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Efficiency/L2Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/Offline + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/HLT display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L1Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/EFCalo + } + } + } + dir HLT_e18_medium_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/AbsResolutions/L1Calo display = StatBox } } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Electron + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Electron + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Electron + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Electron + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Electron + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - } - dir L2Calo { - hist ringer_nnOutput { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist ringer_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Calo + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Distributions/L2Calo + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/EFCalo display = StatBox } } - } - dir Resolutions { dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT + display = StatBox + } + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_etcut/Resolutions/L2Calo_vs_HLT + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L1Calo display = StatBox } } - } - } - dir HLT_e15_lhloose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT - display = StatBox + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Electron display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Electron display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Electron display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Electron display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/L2Electron display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/RoI display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2Calo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Distributions/RoI display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/L2 + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/EFCalo display = StatBox } } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + dir HLT { + hist FailisEMMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist IneffisEMMedium { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist IneffisEMMediumTRT { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist IneffisEMMediumTrk { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist IneffisEMMediumTrkClus { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT + display = StatBox + } + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Efficiency/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L1Calo display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2 display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Efficiency/L2Calo display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/HLT + hist res_dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/EFCalo + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Electron + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Electron + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Electron + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Electron + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Electron + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Calo + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Calo + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Distributions/L2Calo + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L1Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e18_medium_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + } + } + } + dir HLT_e20_loose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/AbsResolutions/L1Calo display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo + display = StatBox + } + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/EFCalo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose/Resolutions/L2Calo_vs_HLT + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - } - } - } - dir HLT_e17_lhloose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/HLT + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L1Calo display = StatBox } } dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo - display = StatBox + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + } + dir L2Electron { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Electron display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Electron display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Electron display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist trkClusDeta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Electron display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist trkClusDphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/L2Electron display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist charge { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist deta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2Calo + hist deta1_EMEBA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist deta1_EMEBC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist deta1_EMECA { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist deta1_EMECC { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist dphi2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist dphiresc { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 - display = StatBox - } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/L2 + hist nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist ptcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist ptcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist ptvarcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist ptvarcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/RoI display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Distributions/RoI display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline - display = StatBox - } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/EFCalo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + } + dir HLT { + hist FailisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist IneffisEMLoose { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist IneffisEMLooseTRT { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist IneffisEMLooseTrk { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist IneffisEMLooseTrkClus { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_hltreco { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eff_triggerstep { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L1Calo display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2 display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/EFCalo + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Electron + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Electron + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Electron + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Electron + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Electron + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Calo { hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Distributions/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Efficiency/L2Calo display = StatBox } + } + } + dir Resolutions { + dir HLT { hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT - display = StatBox - } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT - display = StatBox - } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_d0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_d0sig { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_eprobht { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_eprobhtVsPt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_eprobht_onVsOff { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT - display = StatBox - } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/HLT - display = StatBox - } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_npixhits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_nscthits { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose/Resolutions/L2Calo_vs_HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/HLT display = StatBox } } - } - } - dir HLT_e15_lhloose_nod0 { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT - display = StatBox - } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT - display = StatBox - } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT - display = StatBox - } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT - display = StatBox - } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L1Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_e20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + } + } + } + dir HLT_g13_etcut_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/AbsResolutions/L1Calo display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/EFCalo display = StatBox } } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2Calo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + } + dir L2Photon { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Photon display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Photon display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/L2Photon display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/L2 + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Efficiency/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline + display = StatBox + } + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/Offline + display = StatBox + } + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/RoI + display = StatBox + } + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Distributions/RoI display = StatBox } } } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/EFCalo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + } + dir HLT { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT + display = StatBox + } + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/HLT display = StatBox } } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L1Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2 display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Electron + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Electron + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Electron + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Electron + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Electron + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Calo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Calo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Efficiency/L2Calo display = StatBox } } } dir Resolutions { dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT - display = StatBox - } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_cnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_et_cnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_et_uncnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_uncnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_uncnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L1Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - } - } - dir HLT_e15_loose { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g13_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + } + } + } + dir HLT_g15_loose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/AbsResolutions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT - display = StatBox - } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT - display = StatBox - } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT - display = StatBox - } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/EFCalo display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/HLT display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2Calo + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L1Calo display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 - display = StatBox - } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 - display = StatBox + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + } + dir L2Photon { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Photon display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Photon display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/L2Photon display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 - display = StatBox - } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 - display = StatBox - } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/L2 - display = StatBox - } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/RoI display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Distributions/RoI display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/EFCalo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + } + dir HLT { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/Offline + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L1Calo display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2 display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Electron + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Electron + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Electron + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Electron + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Electron + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Calo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Calo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Distributions/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo + display = StatBox + } + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Efficiency/L2Calo display = StatBox } } } dir Resolutions { dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT - display = StatBox - } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_cnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_et_cnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_et_uncnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_uncnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_uncnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_uncnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/HLT + hist res_uncnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo_vs_HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_uncnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_uncnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L1Calo display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e15_loose/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - } - } - dir HLT_e17_lhloose_nod0 { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g15_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + } + } + } + dir HLT_g18_etcut_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/AbsResolutions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/EFCalo display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/HLT display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + } + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L1Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Calo display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + dir L2Photon { + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Photon display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Photon display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/L2Photon display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + } + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/L2 + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/RoI display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Distributions/RoI display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Efficiency/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/EFCalo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + } + dir HLT { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/HLT display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo + display = StatBox + } + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2 display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/EFCalo + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Electron + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT + display = StatBox + } + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Electron + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Electron + hist res_cnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Electron + hist res_cnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Electron + hist res_cnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_et_cnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_et_uncnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L1Calo display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - dir L2Calo_vs_HLT { hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e17_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g18_etcut_ion/Resolutions/L2Calo_vs_HLT display = StatBox } } } } - dir HLT_e22_lhloose_nod0 { - dir Efficiency { - dir HLT { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT - display = StatBox - } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + dir HLT_g20_loose_ion { + dir AbsResolutions { + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/AbsResolutions/L1Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + } + } + dir Distributions { + dir EFCalo { + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist energyBE0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist energyBE1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist energyBE2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist energyBE3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist eta_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist phi_calo { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + } + dir HLT { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist match_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist eff_coarse_et_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist eff_triggerstep { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist eff_hltreco { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IneffIsEmTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailLoose { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailMedium { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } - hist IsEmLHFailTight { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/HLT + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/HLT display = StatBox } } - dir L2Calo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + dir L1Calo { + hist emClusVsEmIsol { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist emClusVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist emClusVsHadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist emIso { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist energy { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist hadCore { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist roi_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L1Calo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo - display = StatBox + } + dir L2Calo { + hist discriminant { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo + display = StatBox + } + hist discriminantVsMu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo + display = StatBox + } + dir discriminant_binned { + hist discriminantVsMu_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminantVsMu_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_0_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_1_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_2_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_3_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } + hist discriminant_et_4_eta_4 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo/discriminant_binned + display = StatBox + } } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Calo display = StatBox } + } + dir L2Photon { hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo - display = StatBox - } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Photon display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Photon display = StatBox } hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo - display = StatBox - } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2Calo + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/L2Photon display = StatBox } } - dir L2 { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 - display = StatBox - } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + dir Offline { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist rejection { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist topoetcone20 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist topoetcone20_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/L2 + hist topoetcone40_shift { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - } - dir EFCalo { - hist eff_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist topoetcone40_shift_rel { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/Offline display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + } + dir RoI { + hist roi_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/RoI display = StatBox } - hist eff_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist roi_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Distributions/RoI display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + } + } + dir Efficiency { + dir EFCalo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist match_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Efficiency/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - } - } - dir Distributions { - dir Offline { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/EFCalo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + } + dir HLT { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/HLT display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + } + dir L1Calo { + hist coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/Offline + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - } - dir HLT { - hist highet { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_coarse_et_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L1Calo display = StatBox } - hist Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + } + dir L2 { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist topoetcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta1_EMECA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta1_EMECC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta1_EMEBA { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta1_EMEBC { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2 display = StatBox } - hist charge { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + } + dir L2Calo { + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist ptvarcone20_rel { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist rejection { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist eff_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/HLT + hist highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - } - dir EFCalo { - hist energyBE0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist energyBE1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist energyBE2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist energyBE3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist energy { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist match_pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi_calo { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + hist pt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Efficiency/L2Calo display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/EFCalo + } + } + dir Resolutions { + dir HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - } - dir L2Electron { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Electron + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Electron + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Electron + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist trkClusDeta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Electron + hist res_cnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist trkClusDphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Electron + hist res_cnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - } - dir L2Calo { - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Distributions/L2Calo + hist res_cnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - } - } - dir Resolutions { - dir HLT { - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_cnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_et_cnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_et_uncnv { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_ethad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT + display = StatBox + } + hist res_ethad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_pt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta0 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_deta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_dphi2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etInEta3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_dphiresc { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_uncnv_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_d0sig { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_weta1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_eprobht { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_weta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_wtots1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/HLT display = StatBox } - hist res_npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + } + dir L1Calo { + hist res_etVsEta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L1Calo display = StatBox } - hist res_etInEta0 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + } + dir L2Calo_vs_HLT { + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_Rhad1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etInEta3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_wtots1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/HLT + hist res_eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - } - dir L2Calo_vs_HLT { hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_phi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_etVsEt { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_etVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_etVsEt { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_ethad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_ethad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_Rhad1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + hist res_phi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_weta1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } hist res_weta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT - display = StatBox - } - hist res_eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Expert/HLT_e22_lhloose_nod0/Resolutions/L2Calo_vs_HLT + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Expert/HLT_g20_loose_ion/Resolutions/L2Calo_vs_HLT display = StatBox } } @@ -15711,342 +28371,361 @@ dir HLT { } } dir Shifter { - dir primary_single_pho { - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } + dir primary_single_ele { hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho - display = StatBox - } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_pho + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - } - dir primary_single_ele { hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_ele - display = StatBox - } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_ele - display = StatBox - } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring - output = HLT/TREG/Shifter/primary_single_ele - display = StatBox - } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele display = StatBox } } dir primary_single_ele_cutbased { - hist eff_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist eff_eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist eff_mu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist eta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist f1 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist f3 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist eratio { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_ele_cutbased + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } hist npixhits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } hist nscthits { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } hist ptvarcone20 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist res_et { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist res_Rphi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist res_Reta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist res_Rhad { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_deta2 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } - hist res_deta2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/TrigEgammaDataQualityAndMonitoring + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 output = HLT/TREG/Shifter/primary_single_ele_cutbased display = StatBox } } + dir primary_single_pho { + hist Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eff_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eff_eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eff_highet { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eff_mu { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eratio { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist eta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist f1 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist f3 { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist res_Reta { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist res_Rhad { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist res_Rphi { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + hist res_et { + algorithm = HLT_Histogram_Not_Empty_with_Ref&GatherData + description = DQWebdisplay ATR-18760 + output = HLT/TREG/Shifter/primary_single_pho + display = StatBox + } + } } } } + diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTjet/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTjet/heavyions_run.config index 480bfd91ce71..94b6786151f3 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTjet/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTjet/heavyions_run.config @@ -24,49 +24,52 @@ reference HLTJetRef { output top_level { -# algorithm = HLTjetWorstCaseSummary -# algorithm = HLTjetSimpleSummary output HLT { ## Begin TRJET output TRJET { - #algorithm = HLTjetWorstCaseSummary - #algorithm = HLTjetSimpleSummary - output EXPERT { output HLT { - output a4tcemsubjesFS { + output j85_ion_TE50 { } - output j30_ion_L1TE20 { + output j85_ion_L1J20 { } - output j30_L1TE20 { + output j100_ion_L1J30 { } - output j100_ion_L1J20 { + output j110_ion_L1J30 { } - output j150_ion_L1J30 { + output j120_ion_L1J30 { } - output j100_L1J20 { + output j50_320eta490_ion { } - output j150_L1J30 { + output j60_320eta490_ion { } - output j45_320eta490_ion { + output j70_320eta490_ion { } - output j45_320eta490 { + output mu4_j30_a2_ion_dr05 { } - output j50_ion_2j30_ion_0eta490_L1J10 { + output mu4_j40_a2_ion_dr05 { } - output j50_2j30_0eta490_L1J10 { + output mu4_j30_a2_ion { } + output mu4_j40_a2_ion { + } } ## End HLT output L1 { output L1_J20 { + } + output L1_J30 { } output L1_TE50 { - } + } + output L1_J15.31ETA49 { + } + output L1_J20.31ETA49 { + } } ## End L1 - output OF { + output Collections { output AntiKt4HIJets { } } ## End OF @@ -75,17 +78,19 @@ output top_level { output SHIFTER { output HLT { output a4ionemsubjesFS { - } - output j75_ion_L1J20 { - } - output j75_L1J20 { + } + output j85_ion_L1TE50 { } output j85_ion_L1J20 { } - output j85_L1J20 { - } } ## End HLT output L1 { + output L1_J20 { + } + output L1_J30 { + } + output L1_TE50 { + } } ## End L1 } ## End SHIFTER @@ -93,7 +98,6 @@ output top_level { } ## End TRJET } ## End HLT - } ## End top_level @@ -143,107 +147,833 @@ dir HLT { output = HLT/TRJET/EXPERT/L1 } dir L1_J20 { - hist .* { - regex = 1 + hist L1Jet_n@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + hist L1Jet_Et@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData output = HLT/TRJET/EXPERT/L1/L1_J20 - } - } + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + hist L1Jet_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + hist L1Jet_phi_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + hist L1Jet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + hist L1Sigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20 + } + } ## End L1_J20 + dir L1_J30 { + hist L1Jet_n@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + hist L1Jet_Et@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + hist L1Jet_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + hist L1Jet_phi_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + hist L1Jet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + hist L1Sigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J30 + } + } ## End L1_J30 dir L1_TE50 { - hist .* { - regex = 1 + hist L1Jet_n@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + hist L1Jet_Et@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData output = HLT/TRJET/EXPERT/L1/L1_TE50 - } - } + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + hist L1Jet_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + hist L1Jet_phi_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + hist L1Jet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + hist L1Sigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_TE50 + } + } ## End L1_TE50 + dir L1_J15.31ETA49 { + hist L1Jet_n@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + hist L1Jet_Et@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + hist L1Jet_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + hist L1Jet_phi_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + hist L1Jet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + hist L1Sigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J15.31ETA49 + } + } ## End L1_J15.31ETA49 + dir L1_J20.31ETA49 { + hist L1Jet_n@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + hist L1Jet_Et@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + hist L1Jet_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + hist L1Jet_phi_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + hist L1Jet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + hist L1Sigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/L1/L1_J20.31ETA49 + } + } ## End L1_J20.31ETA49 } ## End L1 } ##End JetMon } ##End HLT ############################## HLT ################################### +# Need to directly reference the histograms to avoid a loss of the reference histograms. +###################################################################### + dir HLT { dir JetMon { dir HLT { - dir a4tcemsubjesFS { - hist .* { - regex = 1 + dir j85_ion_TE50 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_TE50 + } + } ## End j85_ion_TE50 + dir j85_ion_L1J20 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j85_ion_L1J20 + } + } ## End j85_ion_L1J20 + dir j100_ion_L1J30 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J30 + } + } ## End j100_ion_L1J30 + dir j110_ion_L1J30 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j110_ion_L1J30 + } + } ## End j110_ion_L1J30 + dir j120_ion_L1J30 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/a4tcemsubjesFS + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j120_ion_L1J30 + } + } ## End j120_ion_L1J30 + dir j50_320eta490_ion { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j50_320eta490_ion + } + } ## End j50_320eta490_ion + dir j60_320eta490_ion { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j60_320eta490_ion + } + } ## End j60_320eta490_ion + dir j70_320eta490_ion { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/j70_320eta490_ion + } + } ## End j70_320eta490_ion + dir mu4_j30_a2_ion_dr05 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion_dr05 + } + } ## End mu4_j30_a2_ion_dr05 + dir mu4_j40_a2_ion_dr05 { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion_dr05 + } + } ## End mu4_j40_a2_ion_dr05 + dir mu4_j30_a2_ion { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + hist HLTJet_E_vs_phi@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + hist HLTJet_phi_vs_eta_LAr@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + hist HLTSigma_vs_LB@Expert { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/EXPERT/HLT/mu4_j30_a2_ion + } + } ## End mu4_j30_a2_ion + dir mu4_j40_a2_ion { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. + } + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + } + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. } - } ## End a10tcemsubFS - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j30_ion_L1TE20 { - hist .* { - regex = 1 + hist HLTJet_E_vs_eta@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j30_ion_L1TE20 + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion } - } ## End j30_ion_L1TE20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j30_L1TE20 { - hist .* { - regex = 1 + hist HLTJet_E_vs_phi@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j30_L1TE20 + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion } - } ## End j30_L1TE20 - } ## End HLT - } ##End JetMon -} ##End HLT - - -dir HLT { - dir JetMon { - dir HLT { - dir j100_ion_L1J20 { - hist .* { - regex = 1 + hist HLTJet_phi_vs_eta_LAr@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j100_ion_L1J20 + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion } - } ## End j100_ion_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j150_ion_L1J30 { - hist .* { - regex = 1 - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j150_ion_L1J30 + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion } - } ## End j150_ion_L1J30 - } ## End HLT - } ##End JetMon -} ##End HLT - - -dir HLT { - dir JetMon { - dir HLT { - dir j100_L1J20 { - hist .* { - regex = 1 + hist HLTSigma_vs_LB@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j100_L1J20 + output = HLT/TRJET/EXPERT/HLT/mu4_j40_a2_ion } - } ## End j75_L1J20 + } ## End mu4_j40_a2_ion } ## End HLT } ##End JetMon } ##End HLT @@ -251,90 +981,65 @@ dir HLT { dir HLT { dir JetMon { dir HLT { - dir j150_L1J30 { - hist .* { - regex = 1 - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j150_L1J30 + dir a4ionemsubjesISFS { + hist HLTJet_n@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j45_320eta490_ion { - hist .* { - regex = 1 - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j45_320eta490_ion + hist HLTJet_Et@Expert { + display = LogY + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j45_320eta490 { - hist .* { - regex = 1 + hist HLTJet_eta@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. + } + hist HLTJet_phi@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. + } + hist HLTJet_phi_vs_eta@Expert { + algorithm = HLTjet_Bins_Diff_FromAvg + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. + } + hist HLTJet_E_vs_eta@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j45_320eta490 + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j50_ion_2j30_ion_0eta490_L1J10 { - hist .* { - regex = 1 + hist HLTJet_E_vs_phi@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j50_ion_2j30_ion_0eta490_L1J10 + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -dir HLT { - dir JetMon { - dir HLT { - dir j50_2j30_0eta490_L1J10 { - hist .* { - regex = 1 + hist HLTJet_phi_vs_eta_LAr@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/HLT/j50_2j30_0eta490_L1J10 + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + } + hist HLTJet_emfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - -############################### OF ################################ - -dir HLT { - dir JetMon { - dir OF { - dir AntiKt4HIJets { - hist OFJet.* { - regex = 1 + hist HLTJet_hecfrac@Expert { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets + } + hist HLTSigma_vs_LB@Expert { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/EXPERT/OF/AntiKt4HIJets + output = HLT/TRJET/EXPERT/Collections/AntiKt4HIJets } - } ## End AntiKt4HIJets - } ## End OF + } ## End L1_J20 + } ## End L1 } ##End JetMon } ##End HLT + ######################################################################## @@ -346,45 +1051,114 @@ dir HLT { dir HLT { dir JetMon { dir L1 { - hist L1Jet_n@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/L1 - description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. - } - hist L1Jet_Et@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/L1 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist L1Jet_eta@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/L1 - description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. - } - hist L1Jet_phi@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/L1 - description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. - } - hist L1Jet_phi_vs_eta@Shifter { - algorithm = HLTjet_Bins_Diff_FromAvg - output = HLT/TRJET/SHIFTER/L1 - description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. - } - hist L1Jet_E_vs_eta@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/L1 - } - hist L1Jet_E_vs_phi@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/L1 - } - hist L1Sigma_vs_LB@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/L1 - } + dir L1_J20 { + hist L1Jet_n@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + hist L1Jet_Et@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + hist L1Jet_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + hist L1Jet_phi_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + hist L1Jet_E_vs_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + hist L1Sigma_vs_LB@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J20 + } + } ## End L1_J20 + dir L1_J30 { + hist L1Jet_n@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + hist L1Jet_Et@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + hist L1Jet_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + hist L1Jet_phi_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + hist L1Jet_E_vs_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + hist L1Sigma_vs_LB@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_J30 + } + } ## End L1_J30 + dir L1_TE50 { + hist L1Jet_n@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + hist L1Jet_Et@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + description = The distribution should not be broad. Check with reference when available. + } + hist L1Jet_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + hist L1Jet_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + hist L1Jet_phi_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + description = Particular attention should be payed in checking hot regions. The distribution should not have peaks. + } + hist L1Jet_E_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + hist L1Jet_E_vs_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + hist L1Sigma_vs_LB@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + output = HLT/TRJET/SHIFTER/L1/L1_TE50 + } + } ## End L1_TE50 } ## End L1 } ##End JetMon } ##End HLT @@ -460,185 +1234,67 @@ dir HLT { dir HLT { dir JetMon { dir HLT { - dir j75_L1J20 { - hist HLTJet_Et@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist HLTJet_Leading_Et@Shifter { + dir j85_ion_TE50 { + hist HLTJet_n@Shifter { display = LogY algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist HLTJet_eta@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. - } - hist HLTJet_phi@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. - } - hist HLTJet_phi_vs_eta@Shifter { - algorithm = HLTjet_Bins_Diff_FromAvg - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. - } - hist HLTJet_emfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - } - hist HLTJet_hecfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - } - hist HLTJet_E_vs_eta@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - } - hist HLTJet_E_vs_phi@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 - } - hist HLTSigma_vs_LB@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. } - } ## End j75_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - - -dir HLT { - dir JetMon { - dir HLT { - dir j75_ion_L1J20 { hist HLTJet_Et@Shifter { display = LogY algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist HLTJet_Leading_Et@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. } hist HLTJet_eta@Shifter { algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. } hist HLTJet_phi@Shifter { algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. } hist HLTJet_phi_vs_eta@Shifter { algorithm = HLTjet_Bins_Diff_FromAvg - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. } - hist HLTJet_emfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 - } - hist HLTJet_hecfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 - } - hist HLTJet_E_vs_eta@Shifter { + hist HLTJet_E_vs_eta@Shifter { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 } - hist HLTJet_E_vs_phi@Shifter { + hist HLTJet_E_vs_phi@Shifter { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 } - hist HLTSigma_vs_LB@Shifter { + hist HLTJet_phi_vs_eta_LAr@Shifter { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j75_ion_L1J20 - } - } ## End j75_ion_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - - -dir HLT { - dir JetMon { - dir HLT { - dir j85_L1J20 { - hist HLTJet_Et@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist HLTJet_Leading_Et@Shifter { - display = LogY - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. - } - hist HLTJet_eta@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - description = Red means: mean of the histogram different from reference. Eta plot: this plot should be symmetrical. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. - } - hist HLTJet_phi@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - description = Red means: mean of the histogram different from reference. Phi plot: this plot should be symmetrical and flat. Red can be due to: 1) Distribution not simmetric. 2) Histogram significantly different from reference. 3) Hotspots. i.e bins higher than average. - } - hist HLTJet_phi_vs_eta@Shifter { - algorithm = HLTjet_Bins_Diff_FromAvg - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. - } + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 + } hist HLTJet_emfrac@Shifter { algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 } hist HLTJet_hecfrac@Shifter { algorithm = HLTjet_KolmogorovTest_MaxDist - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - } - hist HLTJet_E_vs_eta@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 - } - hist HLTJet_E_vs_phi@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 } hist HLTSigma_vs_LB@Shifter { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData - output = HLT/TRJET/SHIFTER/HLT/j85_L1J20 + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1TE50 } - } ## End j85_L1J20 - } ## End HLT - } ##End JetMon -} ##End HLT - - -dir HLT { - dir JetMon { - dir HLT { + } ## End j85_ion_TE50 dir j85_ion_L1J20 { - hist HLTJet_Et@Shifter { + hist HLTJet_n@Shifter { display = LogY algorithm = HLTjet_KolmogorovTest_MaxDist output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 - description = Red means: mean of the histogram different from reference. Et plot: This plot should be close to the reference. Red can be due to: 1) The histogram threshold is not the same as HLT threshold. 2) Slope of the histogram significantly different from reference. 3) Strange shape, i.e. bumps at high Et. + description = Red means: mean of the histogram different from reference. NJet plot: this plot should be close to the reference. Red can be due to: 1) Low statistics wrt reference. 2) Current bunch spacing different from reference. 3) Strange shape. i.e. bumps at high multiplicity. } - hist HLTJet_Leading_Et@Shifter { + hist HLTJet_Et@Shifter { display = LogY algorithm = HLTjet_KolmogorovTest_MaxDist output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 @@ -659,20 +1315,24 @@ dir HLT { output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 description = Red means: A critical number (1) bins is greater than average. Eta vs Phi plot: this distribution should not show hotspots. Check that there is sufficient statistics to claim an hotspot. } - hist HLTJet_emfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist + hist HLTJet_E_vs_eta@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 } - hist HLTJet_hecfrac@Shifter { - algorithm = HLTjet_KolmogorovTest_MaxDist + hist HLTJet_E_vs_phi@Shifter { + algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 } - hist HLTJet_E_vs_eta@Shifter { + hist HLTJet_phi_vs_eta_LAr@Shifter { algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 + } + hist HLTJet_emfrac@Shifter { + algorithm = HLTjet_KolmogorovTest_MaxDist + output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 } - hist HLTJet_E_vs_phi@Shifter { - algorithm = HLTjet_Histogram_Not_Empty_with_Ref&GatherData + hist HLTJet_hecfrac@Shifter { + algorithm = HLTjet_KolmogorovTest_MaxDist output = HLT/TRJET/SHIFTER/HLT/j85_ion_L1J20 } hist HLTSigma_vs_LB@Shifter { @@ -684,7 +1344,6 @@ dir HLT { } ##End JetMon } ##End HLT - ################################################################################################# diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config index 2c03c14b371c..d1883e4ead21 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/collisions_run.config @@ -563,7 +563,9 @@ dir HLT { } hist muChainEFiso1_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChainEFiso1/idtrk/wrtOffline - algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChainEFiso1_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChainEFiso1/idtrk/wrtOffline @@ -689,7 +691,9 @@ dir HLT { # wrtOffline hist muChainEFiso1_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline - algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChainEFiso1_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline @@ -701,7 +705,9 @@ dir HLT { } hist muChainEFiso1_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline - algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChainEFiso1_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline @@ -713,7 +719,9 @@ dir HLT { } hist muChainEFiso1_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline - algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChainEFiso1_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline @@ -727,7 +735,9 @@ dir HLT { # wrtOffline/TakenByMSonly hist muChainEFiso1_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline/TakenByMSonly - algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu24i_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChainEFiso1_MSb_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChainEFiso1/wrtOffline/TakenByMSonly @@ -825,7 +835,8 @@ dir HLT { } hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline - algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 threshold for L2MuonSA eff wrt offline muons } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline @@ -946,7 +957,9 @@ dir HLT { # wrtOffline hist muChain1_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline - algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 threshold for L2MuonSA eff wrt offline muons } hist muChain1_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline @@ -958,7 +971,9 @@ dir HLT { } hist muChain1_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline - algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 threshold for L2MuonSA eff wrt offline muons } hist muChain1_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline @@ -970,7 +985,9 @@ dir HLT { } hist muChain1_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline - algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 threshold for L2MuonSA eff wrt offline muons } hist muChain1_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline @@ -983,7 +1000,9 @@ dir HLT { # wrtOffline/TakenByMSonly hist muChain1_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline/TakenByMSonly - algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu50_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_Fit +# we see almost L1 turn-on curves for L2MuonSA eff wrt offline muons } hist muChain1_MSb_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline/TakenByMSonly @@ -1070,7 +1089,9 @@ dir HLT { } hist muChainMSonly1_EStag_L2MuonSA_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/ES_muChainMSonly1/muCombTag/wrtOffline - algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_barrel_Fit +# we see almost L1 turn-on curves for L2MuonSA wrt offline muons } hist muChainMSonly1_EStag_MuonEFSA_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/ES_muChainMSonly1/muCombTag/wrtOffline @@ -1126,7 +1147,9 @@ dir HLT { # wrtOffline hist muChainMSonly1_L2MuonSA_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/muChainMSonly1/wrtOffline - algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_barrel_Fit +# we see almost L1 turn-on curves for L2MuonSA wrt offline muons } hist muChainMSonly1_MuonEFSA_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/muChainMSonly1/wrtOffline @@ -1134,7 +1157,9 @@ dir HLT { } hist muChainMSonly1_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/muChainMSonly1/wrtOffline - algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + #algorithm = TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_Fit + algorithm = TRMUO_fermi_fit_L1MU20_barrel_Fit +# we see almost L1 turn-on curves for L2MuonSA wrt offline muons } hist muChainMSonly1_MuonEFSA_Barrel_Turn_On_Curve_wrt_MuidSA_Fit { output = HLT/TRMUO/Expert/muChainMSonly1/wrtOffline @@ -2692,7 +2717,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream_Fit { libname = libdqm_algorithms.so name = Simple_fermi_Fit_Graph thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream - MinPoint = 120 + MinPoint = 50 ImproveFit = 1.0 # MinSignificance = 2.0 } @@ -2710,7 +2735,7 @@ algorithm TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream_Fit { libname = libdqm_algorithms.so name = Simple_fermi_Fit_Graph thresholds = th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_MuonEFSA_upstream - MinPoint = 120 + MinPoint = 50 ImproveFit = 1.0 # MinSignificance = 2.0 } @@ -2740,7 +2765,7 @@ algorithm TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream_Fit { libname = libdqm_algorithms.so name = Simple_fermi_Fit_Graph thresholds = th_TRMUO_fermi_fit_mu50_ESid_MuonEFCB_upstream - MinPoint = 120 + MinPoint = 40 ImproveFit = 1.0 # MinSignificance = 2.0 } @@ -3465,8 +3490,8 @@ thresholds th_TRMUO_fermi_fit_mu60_MSonly_barrel_EStag_L2MuonSA_upstream { error = 0.899 } limits Threshold { - warning = 60.0 - error = 65.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 3.0 @@ -3512,8 +3537,8 @@ thresholds th_TRMUO_fermi_fit_mu50_ESid_L2MuonSA_upstream { error = 0.979 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 3.0 @@ -3529,8 +3554,8 @@ thresholds th_TRMUO_fermi_fit_mu50_ESid_muComb_upstream { error = 0.964 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 3.0 @@ -3706,8 +3731,8 @@ thresholds th_TRMUO_fermi_fit_mu60_MSonly_barrel_L2MuonSA_upstream { error = 0.799 } limits Threshold { - warning = 60.0 - error = 65.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 3.0 @@ -3801,8 +3826,8 @@ thresholds th_TRMUO_fermi_fit_mu50_L2MuonSA_upstream { error = 0.98 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 3.0 @@ -3817,8 +3842,8 @@ thresholds th_TRMUO_fermi_fit_mu50_muComb_upstream { error = 0.97 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 2.0 @@ -3880,8 +3905,8 @@ thresholds th_TRMUO_fermi_fit_mu50_L2MuonSA { error = 0.599 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 3.0 @@ -3896,8 +3921,8 @@ thresholds th_TRMUO_fermi_fit_mu50_muComb { error = 0.599 } limits Threshold { - warning = 50.0 - error = 52.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 2.0 @@ -3958,8 +3983,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_L2MuonSA_upstream { error = 0.799 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 2.0 @@ -3974,8 +3999,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_muComb_upstream { error = 0.799 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 1.0 @@ -4038,8 +4063,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_ESid_L2MuonSA_upstream { error = 0.979 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 2.0 @@ -4056,8 +4081,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_ESid_muComb_upstream { error = 0.964 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 2.0 @@ -4090,8 +4115,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_L2MuonSA { error = 0.599 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 8.0 + error = 10.0 } limits Resolution { warning = 2.0 @@ -4106,8 +4131,8 @@ thresholds th_TRMUO_fermi_fit_mu24i_muComb { error = 0.599 } limits Threshold { - warning = 26.5 - error = 28.0 + warning = 22.0 + error = 24.0 } limits Resolution { warning = 1.0 diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config index 4c275cf3285d..55fcd7f7dcd9 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTmuon/heavyions_run.config @@ -476,13 +476,14 @@ dir HLT { hist muChain1_highpt_effsummary_by_ESid { output = HLT/TRMUO/Expert/ES_muChain1 algorithm = TRMUO_GatherDataNoRef + description = muChain1 corresponds to chain HLT_mu8. ##description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } hist muChain1_highpt_effsummary_by_ESid@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = effalgmin_3bins - description = muChain1 corresponds to chain HLT_mu15_L1MU10. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain1 corresponds to chain HLT_mu8. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. #description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=BinContentDump%7CEF+algorithmError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=BinContentDump%7CMuCombError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain1%2Fmu8_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=BinContentDump%7CL2MuonSAError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } @@ -491,51 +492,63 @@ dir HLT { hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain1 algorithm = TRMUO_fermi_fit_mu10_ESid_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } # ESid/wrtOffline hist muChain1_ESid_L1_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L1_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_barrel_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L1_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_endcap_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_ESid_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain1/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } ### mu10 (all ES and bulk) @@ -543,27 +556,28 @@ dir HLT { hist muChain1_highptL1plateau_wrtOffline { output = HLT/TRMUO/Expert/muChain1 algorithm = TRMUO_GatherDataNoRef - description = the L1 item for muChain1 (HLT_mu15_L1MU10) is L1MU10. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = the L1 item for muChain1 (HLT_mu8) is L1MU6. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Endcap 30-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">Endcap 30-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highptL1plateau_wrtOffline@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_3bins - description = the L1 item for muChain1 (HLT_mu15_L1MU10) is L1MU10. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = the L1 item for muChain1 (HLT_mu8) is L1MU6. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus significantly larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=BinContentDump%7CBarrel+30-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.55&high_y=1.01&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=BinContentDump%7CEndcap+30-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=1.01&outputtype=png">Endcap 30-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CBarrel+30-100+GeV+Z+T%26P&error=BinContentDump%7CBarrel+30-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.55&high_y=0.80&outputtype=png">Barrel 30-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highptL1plateau_wrtOffline%40shifter&result=BinContentDump%7CEndcap+30-100+GeV+Z+T%26P&error=BinContentDump%7CEndcap+30-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.95&outputtype=png">Endcap 30-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highpt3bins_effwrtL1 { output = HLT/TRMUO/Expert/muChain1 algorithm = TRMUO_GatherDataNoRef - description = muChain1 corresponds to chain HLT_mu15_L1MU10. For express stream, efficiencies measured with Z T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain1 corresponds to chain HLT_mu8. For express stream, efficiencies measured with Z T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> ## need to put reference and compare! } hist muChain1_highpt3bins_effwrtL1@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_2bins + description = muChain1 corresponds to chain HLT_mu8. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu8_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> ## need to put reference and compare! } @@ -576,38 +590,47 @@ dir HLT { hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Barrel_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Turn_On_Curve_wrt_L1_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_L2MuonSA_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_muComb_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuComb_Endcap_Fit { output = HLT/TRMUO/Expert/muChain1/wrtUpstream algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_upstream_Fit + description = muChain1 corresponds to chain HLT_mu8. } # wrtUpstream/TakenByMSonly hist muChain1_MSb_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { @@ -651,38 +674,47 @@ dir HLT { hist muChain1_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_L2MuonSA_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_muComb_Fit + description = muChain1 corresponds to chain HLT_mu8. } hist muChain1_EFmuon_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain1/wrtOffline algorithm = TRMUO_fermi_fit_mu10_MuonEFCB_Fit + description = muChain1 corresponds to chain HLT_mu8. } # wrtOffline/TakenByMSonly hist muChain1_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { @@ -731,14 +763,14 @@ dir HLT { hist muChain2_highpt_effsummary_by_ESid { output = HLT/TRMUO/Expert/ES_muChain2 algorithm = TRMUO_GatherDataNoRef - description = muChain2 corresponds to chain HLT_mu14. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain2 corresponds to chain HLT_mu3. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. #description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } hist muChain2_highpt_effsummary_by_ESid@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = effalgmin_3bins - description = muChain2 corresponds to chain HLT_mu14. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. + description = muChain2 corresponds to chain HLT_mu3. Shifters could click on the link (BinContentDump) on bottom right to see the history efficiencies for each bin. # description = check history efficiencies <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CEF+algorithm&error=BinContentDump%7CEF+algorithmError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">EF algorithm</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CMuComb&error=BinContentDump%7CMuCombError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png" >MuComb</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FES_muChain2%2Fmu6_highpt_effsummary_by_ESid%40shifter&result=BinContentDump%7CL2MuonSA&error=BinContentDump%7CL2MuonSAError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.85&high_y=1.05&outputtype=png">L2MuonSA</a> ## need to put reference and compare! } @@ -747,51 +779,63 @@ dir HLT { hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_L1_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuComb_Fit@shifter { output = HLT/TRMUO/Shift/ES_muChain2 algorithm = TRMUO_fermi_fit_mu14_ESid_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } # ESid/wrtOffline hist muChain2_ESid_L1_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L1_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_barrel_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L1_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_L1MU0_endcap_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_ESid_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/ES_muChain2/idtrk/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } ### mu14 (all ES and bulk) @@ -799,19 +843,20 @@ dir HLT { hist muChain2_highptL1plateau_wrtOffline { output = HLT/TRMUO/Expert/muChain2 algorithm = TRMUO_GatherDataNoRef + description = muChain2 corresponds to chain HLT_mu3. ## need to put reference and compare! } hist muChain2_highpt3bins_effwrtL1 { output = HLT/TRMUO/Expert/muChain2 algorithm = TRMUO_GatherDataNoRef - description = muChain2 corresponds to chain HLT_mu14. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain2 corresponds to chain HLT_mu3. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=-0.05&high_y=1.05&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> ## need to put reference and compare! } hist muChain2_highpt3bins_effwrtL1@shifter { output = HLT/TRMUO/Shift/JpsiTP algorithm = effalgmin_2bins - description = muChain2 corresponds to chain HLT_mu14. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. + description = muChain2 corresponds to chain HLT_mu3. For express stream, efficiencies measured with Jpsi T&P method are biased due to stream prescales, thus expected to be larger than reference. For physics stream, no such bias. Shifters should check the efficiencies carefully for physics stream. #description = check history efficiencies: <br> express_express: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.90&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=BinContentDump%7C100-300+GeV+MSonly_barrel-taggedError&stream=express_express&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> <br> physics_Muons: <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C30-50+GeV+Z+T%26P&error=BinContentDump%7C30-50+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.75&high_y=0.90&outputtype=png">30-50 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C50-100+GeV+Z+T%26P&error=BinContentDump%7C50-100+GeV+Z+T%26PError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">50-100 GeV Z T&P</a> <a href="https://atlasdqm.cern.ch/dqmfquery/query?histogram=HLT%2FTRMUO%2FShift%2FZTP%2Fmu6_highpt3bins_effwrtL1%40shifter&result=BinContentDump%7C100-300+GeV+MSonly_barrel-tagged&error=BinContentDump%7C100-300+GeV+MSonly_barrel-taggedError&stream=physics_Muons&period_type=run&source=tier0&proc_ver=1&low_run=201000&high_run=&low_y=0.90&high_y=1.01&outputtype=png">100-300 GeV MSonly_barrel-tagged</a> ## need to put reference and compare! } @@ -824,38 +869,47 @@ dir HLT { hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Barrel_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Turn_On_Curve_wrt_L1_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_L2MuonSA_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_muComb_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuComb_Endcap_Fit { output = HLT/TRMUO/Expert/muChain2/wrtUpstream algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_upstream_Fit + description = muChain2 corresponds to chain HLT_mu3. } # wrtUpstream/TakenByMSonly hist muChain2_MSb_L2MuonSA_Turn_On_Curve_wrt_L1_Fit { @@ -899,38 +953,47 @@ dir HLT { hist muChain2_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Barrel_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_L2MuonSA_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_L2MuonSA_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_MuComb_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_muComb_Fit + description = muChain2 corresponds to chain HLT_mu3. } hist muChain2_EFmuon_Endcap_Turn_On_Curve_wrt_MuidCB_Fit { output = HLT/TRMUO/Expert/muChain2/wrtOffline algorithm = TRMUO_fermi_fit_mu14_MuonEFCB_Fit + description = muChain2 corresponds to chain HLT_mu3. } # wrtOffline/TakenByMSonly hist muChain2_MSb_L2MuonSA_Turn_On_Curve_wrt_MuidCB_Fit { @@ -3415,16 +3478,16 @@ thresholds th_TRMUO_fermi_fit_mu15_MSonly_EStag_MuonEFSA_upstream { thresholds th_TRMUO_fermi_fit_mu10_ESid_L2MuonSA_upstream { limits Plateau { - warning = 0.93 - error = 0.929 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 10.0 - error = 11.0 + warning = 8.0 + error = 10.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } @@ -3463,16 +3526,16 @@ thresholds th_TRMUO_fermi_fit_mu10_ESid_MuonEFCB_upstream { #for Shift mu14 thresholds th_TRMUO_fermi_fit_mu14_ESid_L2MuonSA_upstream { limits Plateau { - warning = 0.70 - error = 0.699 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } @@ -3481,11 +3544,11 @@ thresholds th_TRMUO_fermi_fit_mu14_ESid_muComb_upstream { # warning = 0.98 # 120830 # warning = 0.97 # 110909 warning = 0.95 - error = 0.949 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { warning = 1.0 @@ -3496,16 +3559,16 @@ thresholds th_TRMUO_fermi_fit_mu14_ESid_muComb_upstream { thresholds th_TRMUO_fermi_fit_mu14_ESid_MuonEFCB_upstream { limits Plateau { - warning = 0.98 - error = 0.979 + warning = 0.95 + error = 0.93 } limits Threshold { - warning = 14.0 - error = 15.0 + warning = 5.0 + error = 7.0 } limits Resolution { - warning = 0.5 - error = 1.0 + warning = 1.0 + error = 2.0 } } @@ -3683,8 +3746,8 @@ thresholds th_TRMUO_fermi_fit_mu10_L2MuonSA_upstream { error = 11.0 } limits Resolution { - warning = 1.0 - error = 2.0 + warning = 2.0 + error = 3.0 } } diff --git a/DataQuality/DataQualityConfigurations/config/HLT/HLTtau/collisions_run.config b/DataQuality/DataQualityConfigurations/config/HLT/HLTtau/collisions_run.config index 94fa0bd324d3..70d314ca9974 100644 --- a/DataQuality/DataQualityConfigurations/config/HLT/HLTtau/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/HLT/HLTtau/collisions_run.config @@ -15,988 +15,784 @@ output top_level { - output HLT { - output TauMon { - output Expert { - output Emulation { - } - output HLTefficiency { - output EffRatios_FTKvsNonFTK { - } - } - output RealZtautauEff { - output tau25_medium1_tracktwo { - } - } - output TopoDiTau { - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { - } - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - } - output tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - } - output tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - } - } - output TopoElTau { - output e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo { - } - output e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 { - } - } - output TopoMuTau { - output mu14_ivarloose_tau25_medium1_tracktwo { - } - output mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 { - } - } - output dijetFakeTausEff { - output tau160_idperf_tracktwo_L1TAU100 { - } - output tau160_medium1_tracktwo_L1TAU100 { - } - output tau80_medium1_tracktwo_L1TAU60 { - } - } - output tau0_perf_ptonly_L1TAU100 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau0_perf_ptonly_L1TAU12 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau160_idperf_tracktwo_L1TAU100 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau160_medium1_tracktwo_L1TAU100 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau160_perf_tracktwo_L1TAU100 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_idperf_tracktwo { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_idperf_tracktwoEF { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_idperf_tracktwoEFmvaTES { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_idperf_tracktwoMVA { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_looseRNN_tracktwo { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_looseRNN_tracktwoMVA { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_medium1NoPt_tracktwoEFmvaTES { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_medium1_tracktwo { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_medium1_tracktwoEF { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_medium1_tracktwoEFmvaTES { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_medium1_tracktwoMVA { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_mediumRNN_tracktwo { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_mediumRNN_tracktwoMVA { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_perf_tracktwo { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_perf_tracktwoEF { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_perf_tracktwoEFmvaTES { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_perf_tracktwoMVA { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_tightRNN_tracktwo { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_tightRNN_tracktwoMVA { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_verylooseRNN_tracktwo { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau25_verylooseRNN_tracktwoMVA { - output EFTau { - output RNN { - output InputScalar1p { - } - output InputScalar3p { - } - output Output { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau35_medium1_tracktwo_xe70_L1XE45 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - output tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40 { - output EFTau { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output EFVsOffline { - output BDT { - output 1p_nonCorrected { - } - output mp_nonCorrected { - } - } - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - output RecoEfficiency { - } - } - } - } - output Shifter { - output OtherPlots { - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { - } - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { - } - output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - } - output tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - } - output tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - } - } - output tau25_medium1_tracktwo { - output EFTau { - } - output EFVsOffline { - } - output L1RoI { - } - output L1VsOffline { - } - output PreselectionTau { - } - output PreselectionVsOffline { - } - output TurnOnCurves { - } - } - output tau25_medium1_tracktwoEF { - output EFTau { - } - output EFVsOffline { - } - output L1RoI { - } - output L1VsOffline { - } - output TurnOnCurves { - } - } - } - } - } + output HLT { + output TauMon { + output Expert { + output Emulation { + } + output HLTefficiency { + output EffRatios_FTKvsNonFTK { + } + } + output RealZtautauEff { + output tau25_medium1_tracktwoEF { + } + output tau25_mediumRNN_tracktwoMVA { + } + } + output TopoDiTau { + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { + } + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + } + output tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + } + output tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + } + } + output TopoElTau { + output e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo { + } + output e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 { + } + } + output TopoMuTau { + output mu14_ivarloose_tau25_medium1_tracktwo { + } + output mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 { + } + } + output dijetFakeTausEff { + output tau160_idperf_tracktwo_L1TAU100 { + } + output tau160_medium1_tracktwo_L1TAU100 { + } + output tau80_medium1_tracktwo_L1TAU60 { + } + } + output tau0_perf_ptonly_L1TAU100 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau0_perf_ptonly_L1TAU12 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau160_idperf_tracktwo_L1TAU100 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau160_medium1_tracktwo_L1TAU100 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau160_perf_tracktwo_L1TAU100 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_idperf_tracktwo { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_idperf_tracktwoEF { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_idperf_tracktwoEFmvaTES { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_idperf_tracktwoMVA { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + output RNN { + output InputScalar1p { + } + output InputScalar3p { + } + output InputTrack { + } + output InputCluster { + } + output Output { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_looseRNN_tracktwoMVA { + output EFTau { + output RNN { + output InputScalar1p { + } + output InputScalar3p { + } + output InputTrack { + } + output InputCluster { + } + output Output { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_medium1NoPt_tracktwoEFmvaTES { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_medium1_tracktwo { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_medium1_tracktwoEF { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_medium1_tracktwoEFmvaTES { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_mediumRNN_tracktwoMVA { + output EFTau { + output RNN { + output InputScalar1p { + } + output InputScalar3p { + } + output InputTrack { + } + output InputCluster { + } + output Output { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_perf_tracktwo { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_perf_tracktwoEF { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_perf_tracktwoEFmvaTES { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau25_perf_tracktwoMVA { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + output RNN { + output InputScalar1p { + } + output InputScalar3p { + } + output InputTrack { + } + output InputCluster { + } + output Output { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau35_medium1_tracktwo_xe70_L1XE45 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + output tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40 { + output EFTau { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output EFVsOffline { + output BDT { + output 1p_nonCorrected { + } + output mp_nonCorrected { + } + } + } + output L1RoI { + } + output L1VsOffline { + } + output PreselectionTau { + } + output PreselectionVsOffline { + } + output TurnOnCurves { + output RecoEfficiency { + } + } + } + } + output Shifter { + output OtherPlots { + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { + } + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { + } + output tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + } + output tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + } + output tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + } + } + output tau25_mediumRNN_tracktwoMVA { + output EFTau { + } + output EFVsOffline { + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + } + } + output tau25_medium1_tracktwoEF { + output EFTau { + } + output EFVsOffline { + } + output L1RoI { + } + output L1VsOffline { + } + output TurnOnCurves { + } + } + } + } + } } @@ -1005,23708 +801,16174 @@ output top_level { ####################### dir HLT { - dir TauMon { - dir Expert { - dir Emulation { - hist hL1Emulation { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/Emulation - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir HLTefficiency { - dir EffRatios_FTKvsNonFTK { - hist TProfRecoHLTLSTEta1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEta1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEta3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEta3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMu1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMu1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMu3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMu3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_CompFTKNoPrecvsNonFTK_medium0 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_CompFTKNoPrecvsNonFTK_medium1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - hist TProfRecoHLT160PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT160PtEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Eta1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Eta1PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Eta3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Eta3PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25EtaEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Mu1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Mu1PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Mu3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Mu3PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25MuEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25NTrackEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25NVtxEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25PhiEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Pt1PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25Pt3PEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLT25PtEfficiency_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTEtaEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTMuEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTNTrackEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt1PEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPt3PEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_0prong_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_0prong_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_0prong_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_FTKNoPrec_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_FTK_1 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTLSTPtEfficiency_FTK_2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1_J25Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1_J25Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1_J25PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoHLT25EtaVsPhiEfficiency { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoHLT25EtaVsPhiEfficiency_2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoHLT25EtaVsPhiNum { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoHLT25EtaVsPhiNum_2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoTau25EtaVsPhiDenom { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hRecoTau25EtaVsPhiDenom_2 { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/HLTefficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir RealZtautauEff { - dir tau25_medium1_tracktwo { - hist TProfRealZttHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRealZttL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir TopoDiTau { - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir TopoElTau { - dir e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir TopoMuTau { - dir mu14_ivarloose_tau25_medium1_tracktwo { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 { - hist TProfRecoL1_dREfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hHLTdR { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir dijetFakeTausEff { - dir tau160_idperf_tracktwo_L1TAU100 { - hist TProfDijetFakeTausHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTNTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1NTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau160_medium1_tracktwo_L1TAU100 { - hist TProfDijetFakeTausHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTNTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1NTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau80_medium1_tracktwo_L1TAU60 { - hist TProfDijetFakeTausHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTNTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1NTracksEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfDijetFakeTausL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir tau0_perf_ptonly_L1TAU100 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau0_perf_ptonly_L1TAU12 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau160_idperf_tracktwo_L1TAU100 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau160_medium1_tracktwo_L1TAU100 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau160_perf_tracktwo_L1TAU100 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_idperf_tracktwo { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_idperf_tracktwoEF { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_idperf_tracktwoEFmvaTES { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_idperf_tracktwoMVA { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_looseRNN_tracktwo { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_looseRNN_tracktwoMVA { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_medium1NoPt_tracktwoEFmvaTES { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_medium1_tracktwo { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCmu { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hCentFracVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hCentFracVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOvCaloEMEVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOvCaloEMEVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassVsmu1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassVspt1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hCentFracVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hCentFracVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOvCaloEMEVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOvCaloEMEVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigVsmuMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigVsptMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_medium1_tracktwoEF { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_medium1_tracktwoEFmvaTES { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_medium1_tracktwoMVA { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_medium1_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_mediumRNN_tracktwo { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_mediumRNN_tracktwoMVA { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_perf_tracktwo { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_perf_tracktwoEF { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_perf_tracktwoEFmvaTES { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_perf_tracktwoMVA { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_tightRNN_tracktwo { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_tightRNN_tracktwoMVA { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_tightRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_verylooseRNN_tracktwo { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwo/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau25_verylooseRNN_tracktwoMVA { - dir EFTau { - dir RNN { - dir InputScalar1p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir InputScalar3p { - hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_centFrac_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_dRmax_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_mEflowApprox_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_massTrkSys_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir Output { - hist hEFRNNJetScore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFRNNJetScoreSigTrans { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau/RNN/Output - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau25_verylooseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau35_medium1_tracktwo_xe70_L1XE45 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - dir tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40 { - dir EFTau { - dir BDT { - dir 1p_nonCorrected { - hist hEFChPiEMEOverCaloEME1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApprox1PNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hEFChPiEMEOverCaloEMEMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFmassTrkSysMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFptRatioEflowApproxMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist hEFEMFraction { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUM { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFNUMvsmu { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - dir BDT { - dir 1p_nonCorrected { - hist hCentFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hIpSigLeadTrkRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hSumPtTrkFracRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTopoInvMassRatio1P { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir mp_nonCorrected { - hist hCentFracRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hChPiEMEOverCaloEMERatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hDRmaxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEMPOverTrkSysPRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtOverPtLeadTrkRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hInnerTrkAvgDistRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hMassTrkSysRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPtRatioEflowApproxRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hTrFlightPathSigRatioMP { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1EtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt2 { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsEta { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtVsPhi { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hEFEtRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEtaRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhiRatio { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - dir RecoEfficiency { - hist TProfRecoHLTEtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt1pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPt3pEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTHighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTMuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTNVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoHLTPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1EtaEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1HighPtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1MuEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NTrackEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1NVtxEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PhiEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt1PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1Pt3PEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist TProfRecoL1PtEfficiency { - algorithm = TAU_HistKolmogorovTest_MaxDist_loose - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - } - dir Shifter { - dir OtherPlots { - hist hHLTCounts_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1Counts_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1Emulation_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { - hist TProfRecoL1_dREfficiency_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/OtherPlots/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir tau25_medium1_tracktwo { - dir EFTau { - hist hEFEMFraction_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtaVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionTau { - hist hEFEt_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEta_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hFTFnWideTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPhi_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir PreselectionVsOffline { - hist hPreselvsOffnTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hPreselvsOffnWideTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/PreselectionVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwo/TurnOnCurves - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - dir tau25_medium1_tracktwoEF { - dir EFTau { - hist hEFEMFraction_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysP1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEMPOverTrkSysPMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtRaw_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsEta_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEt_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEtaVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFEta_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFIsoFrac_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFPhi_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFSumPtTrkFrac1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFrac1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFcentFracMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFdRmaxMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrk1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFetOverPtLeadTrkMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDist1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFinnerTrkAvgDistMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFipSigLeadTrk1PNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFnWideTrack_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFtrFlightPathSigMPNCorr_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScore1p_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTrans1p_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoreSigTransmp_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hScoremp_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir EFVsOffline { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hEFvsOffnWideTrks_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFVsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1RoI { - hist hL1EtaVsPhi_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEMIso_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIEta_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadCore_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIHadIsol_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIPhi_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClusEMIso_shifter { - algorithm = HLT_Histogram_Not_Empty&GatherData - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoITauClus_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIeT_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - hist hL1RoIisol_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir L1VsOffline { - hist hL1EtRatio_shifter { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1VsOffline - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - dir TurnOnCurves { - hist all_in_dir { - algorithm = TAU_HistKolmogorovTest_MaxDist - description = https://twiki.cern.ch/twiki/bin/view/Atlas/HltTrackingDataQualityMonitoring#Tier0 - output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/TurnOnCurves - display = StatBox - reference = CentrallyManagedReferences_Trigger - } - } - } - } - } + dir TauMon { + dir Expert { + dir Emulation { + hist hL1Emulation { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/Emulation + display = StatBox + } + } + dir HLTefficiency { + dir EffRatios_FTKvsNonFTK { + hist TProfRecoHLTLSTEta1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTEta1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTEta3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTEta3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMu1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMu1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMu3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMu3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_CompFTKNoPrecvsNonFTK_medium0 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_CompFTKNoPrecvsNonFTK_medium1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency/EffRatios_FTKvsNonFTK + display = StatBox + } + } + hist TProfRecoHLT160PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT160PtEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Eta1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Eta1PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Eta3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Eta3PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25EtaEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Mu1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Mu1PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Mu3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Mu3PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25MuEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25NTrackEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25NVtxEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25PhiEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Pt1PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25Pt3PEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLT25PtEfficiency_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTEtaEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTMuEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTNTrackEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt1PEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPt3PEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_0prong_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_0prong_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_0prong_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_FTKNoPrec_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_FTK_1 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoHLTLSTPtEfficiency_FTK_2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoL1_J25Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoL1_J25Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist TProfRecoL1_J25PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoHLT25EtaVsPhiEfficiency { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoHLT25EtaVsPhiEfficiency_2 { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoHLT25EtaVsPhiNum { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoHLT25EtaVsPhiNum_2 { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoTau25EtaVsPhiDenom { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + hist hRecoTau25EtaVsPhiDenom_2 { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/HLTefficiency + display = StatBox + } + } + dir RealZtautauEff { + dir tau25_medium1_tracktwoEF { + hist TProfRealZttHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwoEF + display = StatBox + } + hist TProfRealZttHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwoEF + display = StatBox + } + hist TProfRealZttL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwoEF + display = StatBox + } + hist TProfRealZttL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_medium1_tracktwoEF + display = StatBox + } + } + dir tau25_mediumRNN_tracktwoMVA { + hist TProfRealZttHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_mediumRNN_tracktwoMVA + display = StatBox + } + hist TProfRealZttHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_mediumRNN_tracktwoMVA + display = StatBox + } + hist TProfRealZttL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_mediumRNN_tracktwoMVA + display = StatBox + } + hist TProfRealZttL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/RealZtautauEff/tau25_mediumRNN_tracktwoMVA + display = StatBox + } + } + } + dir TopoDiTau { + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF + display = StatBox + } + } + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + } + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo + display = StatBox + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + } + dir tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoDiTau/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + } + } + dir TopoElTau { + dir e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo + display = StatBox + } + } + dir e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoElTau/e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25 + display = StatBox + } + } + } + dir TopoMuTau { + dir mu14_ivarloose_tau25_medium1_tracktwo { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo + display = StatBox + } + } + dir mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 { + hist TProfRecoL1_dREfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 + display = StatBox + } + hist hHLTdR { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/TopoMuTau/mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25 + display = StatBox + } + } + } + dir dijetFakeTausEff { + dir tau160_idperf_tracktwo_L1TAU100 { + hist TProfDijetFakeTausHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTNTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1NTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_idperf_tracktwo_L1TAU100 + display = StatBox + } + } + dir tau160_medium1_tracktwo_L1TAU100 { + hist TProfDijetFakeTausHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTNTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1NTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + hist TProfDijetFakeTausL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau160_medium1_tracktwo_L1TAU100 + display = StatBox + } + } + dir tau80_medium1_tracktwo_L1TAU60 { + hist TProfDijetFakeTausHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausHLTNTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausL1NTracksEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + hist TProfDijetFakeTausL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/dijetFakeTausEff/tau80_medium1_tracktwo_L1TAU60 + display = StatBox + } + } + } + dir tau0_perf_ptonly_L1TAU100 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau0_perf_ptonly_L1TAU12 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau0_perf_ptonly_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau160_idperf_tracktwo_L1TAU100 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_idperf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau160_medium1_tracktwo_L1TAU100 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_medium1_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau160_perf_tracktwo_L1TAU100 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau160_perf_tracktwo_L1TAU100/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_idperf_tracktwo { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_idperf_tracktwoEF { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_idperf_tracktwoEFmvaTES { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_idperf_tracktwoMVA { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + dir RNN { + dir InputScalar1p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + } + dir InputScalar3p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_massTrkSys_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + } + dir InputTrack { + hist hEFRNNInput_Track_pt_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_d0_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_z0sinThetaTJVA_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nIBLHitsAndExp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nPixelHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nSCTHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + } + dir InputCluster { + hist hEFRNNInput_Cluster_et_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_R_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_CENTER_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + } + dir Output { + hist hEFRNNJetScore_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_idperf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_looseRNN_tracktwoMVA { + dir EFTau { + dir RNN { + dir InputScalar1p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + } + dir InputScalar3p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_massTrkSys_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + } + dir InputTrack { + hist hEFRNNInput_Track_pt_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_d0_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_z0sinThetaTJVA_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nIBLHitsAndExp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nPixelHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nSCTHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + } + dir InputCluster { + hist hEFRNNInput_Cluster_et_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_R_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_CENTER_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + } + dir Output { + hist hEFRNNJetScore_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFTau + display = StatBox + } + } + dir EFVsOffline { + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_looseRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_medium1NoPt_tracktwoEFmvaTES { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1NoPt_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_medium1_tracktwo { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCmu { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hCentFracVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hCentFracVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOvCaloEMEVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOvCaloEMEVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassVsmu1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassVspt1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hCentFracVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hCentFracVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOvCaloEMEVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOvCaloEMEVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigVsmuMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigVsptMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_medium1_tracktwoEF { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_medium1_tracktwoEFmvaTES { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_medium1_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_mediumRNN_tracktwoMVA { + dir EFTau { + dir RNN { + dir InputScalar1p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + } + dir InputScalar3p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_massTrkSys_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + } + dir InputTrack { + hist hEFRNNInput_Track_pt_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_d0_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_z0sinThetaTJVA_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nIBLHitsAndExp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nPixelHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nSCTHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + } + dir InputCluster { + hist hEFRNNInput_Cluster_et_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_R_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_CENTER_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + } + dir Output { + hist hEFRNNJetScore_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + } + dir EFVsOffline { + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_mediumRNN_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_perf_tracktwo { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwo/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwo/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_perf_tracktwoEF { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEF/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_perf_tracktwoEFmvaTES { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoEFmvaTES/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau25_perf_tracktwoMVA { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + dir RNN { + dir InputScalar1p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_absipSigLeadTrk_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar1p + display = StatBox + } + } + dir InputScalar3p { + hist hEFRNNInput_Scalar_EMPOverTrkSysP_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_SumPtTrkFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_centFrac_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_dRmax_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_etOverPtLeadTrk_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_mEflowApprox_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_massTrkSys_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptDetectorAxis_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_ptRatioEflowApprox_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + hist hEFRNNInput_Scalar_trFlightPathSig_log_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputScalar3p + display = StatBox + } + } + dir InputTrack { + hist hEFRNNInput_Track_pt_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_d0_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_z0sinThetaTJVA_abs_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nIBLHitsAndExp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nPixelHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + hist hEFRNNInput_Track_nSCTHitsPlusDeadSensors { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputTrack + display = StatBox + } + } + dir InputCluster { + hist hEFRNNInput_Cluster_et_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_pt_jetseed_log { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_dPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_R_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_SECOND_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + hist hEFRNNInput_Cluster_CENTER_LAMBDA_log10 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/InputCluster + display = StatBox + } + } + dir Output { + hist hEFRNNJetScore_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScore_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_0P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + hist hEFRNNJetScoreSigTrans_3P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau/RNN/Output + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau25_perf_tracktwoMVA/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau/BDT/1p_nonCorrected + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir mp_nonCorrected { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau/BDT/mp_nonCorrected + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir mp_nonCorrected { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI + display = StatBox + } + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/L1VsOffline + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir PreselectionTau { + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM/TurnOnCurves/RecoEfficiency + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + } + } + dir tau35_medium1_tracktwo_xe70_L1XE45 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau35_medium1_tracktwo_xe70_L1XE45/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + dir tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40 { + dir EFTau { + dir BDT { + dir 1p_nonCorrected { + hist hEFChPiEMEOverCaloEME1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFcentFrac1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApprox1PNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hEFChPiEMEOverCaloEMEMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFcentFracMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFdRmaxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFmassTrkSysMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFptRatioEflowApproxMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFEMFraction { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEtRaw { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFIsoFrac { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFNUM { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFNUMvsmu { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hEFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hScore1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hScoreSigTrans1p { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hScoreSigTransmp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + hist hScoremp { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFTau + display = StatBox + } + } + dir EFVsOffline { + dir BDT { + dir 1p_nonCorrected { + hist hCentFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hDRmaxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hIpSigLeadTrkRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hSumPtTrkFracRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + hist hTopoInvMassRatio1P { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/1p_nonCorrected + display = StatBox + } + } + dir mp_nonCorrected { + hist hCentFracRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hChPiEMEOverCaloEMERatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hDRmaxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEMPOverTrkSysPRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hEtOverPtLeadTrkRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hInnerTrkAvgDistRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hMassTrkSysRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hPtRatioEflowApproxRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + hist hTrFlightPathSigRatioMP { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline/BDT/mp_nonCorrected + display = StatBox + } + } + } + hist hEFvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1EtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1EtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIEMIso { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIHadCore { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIHadIsol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoITauClus { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIeT { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + hist hL1RoIisol { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/L1VsOffline + display = StatBox + } + } + dir PreselectionTau { + hist hEFEt { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hEFEt2 { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hEFEtaVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hEtVsEta { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hEtVsPhi { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hEta { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hFTFnTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hFTFnWideTrack { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + hist hPhi { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionTau + display = StatBox + } + } + dir PreselectionVsOffline { + hist hEFEtRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline + display = StatBox + } + hist hEtaRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline + display = StatBox + } + hist hPhiRatio { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline + display = StatBox + } + hist hPreselvsOffnWideTrks { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/PreselectionVsOffline + display = StatBox + } + } + dir TurnOnCurves { + dir RecoEfficiency { + hist TProfRecoHLTEtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTEtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt1pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPt3pEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTHighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTMuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTLBEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTNVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoHLTPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1EtaEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1HighPtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1MuEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NTrackEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1NVtxEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PhiEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt1PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1Pt3PEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + hist TProfRecoL1PtEfficiency_Unbiased { + algorithm = TAU_HistKolmogorovTest_MaxDist_loose + output = HLT/TauMon/Expert/tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40/TurnOnCurves/RecoEfficiency + display = StatBox + } + } + } + } + } + dir Shifter { + dir OtherPlots { + hist hHLTCounts_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots + display = StatBox + } + hist hL1Counts_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots + display = StatBox + } + hist hL1Emulation_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots + display = StatBox + } + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF + display = StatBox + } + } + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + } + dir tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25 + display = StatBox + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo + display = StatBox + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25 + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25 + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + dir tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + } + dir tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I { + hist TProfRecoL1_dREfficiency_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/OtherPlots/tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12I + display = StatBox + } + } + } + dir tau25_mediumRNN_tracktwoMVA { + dir EFTau { + hist hEFEMFraction_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtRaw_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsEta_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEt_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEtaVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFEta_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFIsoFrac_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFPhi_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFcentFrac1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFcentFracMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFdRmaxMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnTrack_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFnWideTrack_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hScore1p_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTrans1p_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hScoreSigTransmp_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + hist hScoremp_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFTau + display = StatBox + } + } + dir EFVsOffline { + hist hEFvsOffnTrks_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtaVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEMIso_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIEta_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadCore_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIHadIsol_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIPhi_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoITauClus_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIeT_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + hist hL1RoIisol_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_mediumRNN_tracktwoMVA/TurnOnCurves + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + } + dir tau25_medium1_tracktwoEF { + dir EFTau { + hist hEFEMFraction_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEMPOverTrkSysP1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEMPOverTrkSysPMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtRaw_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsEta_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEt_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEtaVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFEta_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFIsoFrac_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFPhi_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFSumPtTrkFrac1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFcentFrac1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFcentFracMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFdRmaxMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFetOverPtLeadTrk1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFetOverPtLeadTrkMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFinnerTrkAvgDist1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFinnerTrkAvgDistMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFipSigLeadTrk1PNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFnTrack_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFnWideTrack_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hEFtrFlightPathSigMPNCorr_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScore1p_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTrans1p_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoreSigTransmp_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + hist hScoremp_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFTau + display = StatBox + } + } + dir EFVsOffline { + hist hEFvsOffnTrks_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFVsOffline + display = StatBox + } + hist hEFvsOffnWideTrks_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/EFVsOffline + display = StatBox + } + } + dir L1RoI { + hist hL1EtaVsPhi_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEMIso_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIEta_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadCore_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIHadIsol_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIPhi_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClusEMIso_shifter { + algorithm = HLT_Histogram_Not_Empty&GatherData + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoITauClus_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIeT_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + hist hL1RoIisol_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1RoI + display = StatBox + } + } + dir L1VsOffline { + hist hL1EtRatio_shifter { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/L1VsOffline + display = StatBox + } + } + dir TurnOnCurves { + hist all_in_dir { + algorithm = TAU_HistKolmogorovTest_MaxDist + output = HLT/TauMon/Shifter/tau25_medium1_tracktwoEF/TurnOnCurves + display = StatBox + reference = HLT_TauTrigger_MainReference + } + } + } + } + } } ############## @@ -24732,13 +16994,15 @@ dir HLT { algorithm HLT_TAU_Histogram_Not_Empty&GatherData { libname = libdqm_algorithms.so name = HLT_TAU_Histogram_Not_Empty&GatherData - reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger +# reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger + reference = stream=physics_Main:HLT_TauTrigger_MainReference;HLT_TauTrigger_ExpressReference } compositeAlgorithm HLT_TAU_Histogram_Not_Empty&GatherData { subalgs = GatherData,Histogram_Not_Empty libnames = libdqm_algorithms.so - reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger +# reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger + reference = stream=physics_Main:HLT_TauTrigger_MainReference;HLT_TauTrigger_ExpressReference } algorithm TAU_HistKolmogorovTest_MaxDist { @@ -24746,7 +17010,8 @@ algorithm TAU_HistKolmogorovTest_MaxDist { name = KolmogorovTest_MaxDist thresholds = TAU_HistKolmogorovTest_MaxDist_Threshold MinStat = -1 - reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger +# reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger + reference = stream=physics_Main:HLT_TauTrigger_MainReference;HLT_TauTrigger_ExpressReference } algorithm TAU_HistKolmogorovTest_MaxDist_loose { @@ -24754,7 +17019,8 @@ algorithm TAU_HistKolmogorovTest_MaxDist_loose { name = KolmogorovTest_MaxDist thresholds = TAU_HistKolmogorovTest_MaxDist_Threshold_loose MinStat = -1 - reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger +# reference = stream=physics_Main:CentrallyManagedReferences_TriggerMain;CentrallyManagedReferences_Trigger + reference = stream=physics_Main:HLT_TauTrigger_MainReference;HLT_TauTrigger_ExpressReference } ############### @@ -24774,3 +17040,21 @@ thresholds TAU_HistKolmogorovTest_MaxDist_Threshold_loose { error = 28.0 } } + +############################################### +# Local references for last days of 2018 pp run +############################################### + +reference HLT_TauTrigger_ExpressReference { + location = /eos/atlas/atlascerngroupdisk/data-dqm/references/Collisions/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/Collisions/ + file = data18_13TeV.00362661.express_express.merge.HIST.f993_h325._0001.1 + path = run_362661 + name = same_name +} + +reference HLT_TauTrigger_MainReference { + location = /eos/atlas/atlascerngroupdisk/data-dqm/references/Collisions/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/Collisions/ + file = data18_13TeV.00362661.physics_Main.merge.HIST.f993_h325._0001.1 + path = run_362661 + name = same_name +} diff --git a/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_minutes10.config b/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_minutes10.config index 54048e37b855..ddcc15da8084 100644 --- a/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_minutes10.config @@ -11,6 +11,8 @@ output top_level { output Quality_Control { } output Diagnostics { + output JetInformation { + } output TrackInformation { output TracksWithFailedCuts { } @@ -36,11 +38,75 @@ dir JetTagging { reference = CentrallyManagedReferences + hist track_selector_all_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Quality_Control + } hist track_selector_eff_LS { - algorithm = JetTag_GatherData + algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Quality_Control } + hist jet_2D_kinematic_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_quality_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_60_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_70_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_77_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_85_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist tag_mv_w_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Diagnostics + } + hist tag_mv_w_pT10_20_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT20_50_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT50_100_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT100_200_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT200_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } hist tracks_pTMin_2D_LS { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation @@ -62,10 +128,6 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts } - ###hist tracks_etaMax_2D_LS { - ### algorithm = JetTag_BinsDiffFromStripMedian - ### output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - ###} hist tracks_nHitBLayer_2D_LS { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts diff --git a/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_run.config b/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_run.config index c8b889e36358..29034db3832b 100644 --- a/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/JetTagging/collisions_run.config @@ -177,49 +177,41 @@ dir JetTagging { output = JetTagging/Quality_Control } hist tag_MV_w_phi_sum85OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_sum77OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_sum70OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_sumAll { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_frac85OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_frac77OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_frac70OP { - ###display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control } hist tag_MV_w_phi_frac50OP { #switch to 60OP? - ### display = LogY algorithm = KolTest weight = 0.8 output = JetTagging/Quality_Control @@ -239,11 +231,6 @@ dir JetTagging { ####### NEW: 2018 DQ ############### - hist jet_MV_top { - algorithm = KolTest - display = LogY - output = JetTagging/Quality_Control - } hist n_smt_jet { algorithm = KolTest display = LogY @@ -266,7 +253,7 @@ dir JetTagging { weight = 0.8 output = JetTagging/Quality_Control } - hist tag_MV_w_mu50_70 { + hist tag_MV_w_mu50_100 { algorithm = KolTest display = LogY weight = 0.8 @@ -294,16 +281,6 @@ dir JetTagging { algorithm = KolTest output = JetTagging/Diagnostics } - hist global_xPrimVtx { - algorithm = KolTest_Koord - display = LogY - output = JetTagging/Diagnostics - } - hist global_yPrimVtx { - algorithm = KolTest_Koord - display = LogY - output = JetTagging/Diagnostics - } hist global_zPrimVtx { algorithm = KolTest_Koord output = JetTagging/Diagnostics @@ -317,22 +294,6 @@ dir JetTagging { algorithm = KolTest output = JetTagging/Diagnostics } - ### hist tag_IP2D_n { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_IP2D_b { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_IP2D_u { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_IP2D_c { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } hist tag_IP2D_llr { display = LogY algorithm = KolTest @@ -342,35 +303,11 @@ dir JetTagging { algorithm = KolTest output = JetTagging/Diagnostics } - ### hist tag_IP3D_b { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_IP3D_u { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_IP3D_c { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } hist tag_IP3D_llr { display = LogY algorithm = KolTest output = JetTagging/Diagnostics } - ### hist tag_SV1_b { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_SV1_u { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } - ### hist tag_SV1_c { - ### algorithm = KolTest - ### output = JetTagging/Diagnostics - ### } hist tag_SV1_llr { display = LogY algorithm = KolTest @@ -415,6 +352,11 @@ dir JetTagging { algorithm = KolTest output = JetTagging/Diagnostics } + hist jet_MV_top { + algorithm = KolTest + display = LogY + output = JetTagging/Diagnostics + } hist n_mu { algorithm = KolTest output = JetTagging/Diagnostics @@ -462,15 +404,15 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } - hist mv_tag_80_rate_2D { + hist mv_tag_77_rate_2D { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } - hist jet_2D_jvt { + hist mv_tag_85_rate_2D { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } - hist jet_2D_kinematic { + hist jet_2D_all { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } @@ -478,7 +420,17 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } - hist jet_2D_all { + hist jet_2D_kinematic { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + ####### NEW: 2018 DQ ############### + hist jet_2D_mjvt { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + ####### NEW: 2018 DQ ############### + hist jet_2D_overlap { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } @@ -490,6 +442,15 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/JetInformation } + ####### NEW: 2018 DQ ############### + hist jet_2D_tbad { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_tsmt { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } ################################################################## ### Diagnostics/TrackInformation @@ -532,10 +493,6 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts } - ###hist tracks_etaMax_2D { - ### algorithm = JetTag_BinsDiffFromStripMedian - ### output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - ###} hist tracks_nHitBLayer_2D { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts diff --git a/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_minutes10.config b/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_minutes10.config index d6b36a4c0fbc..ab6283ec0fd0 100644 --- a/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_minutes10.config +++ b/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_minutes10.config @@ -1,5 +1,5 @@ # ********************************************************************** -# $Id: heavyions_minutes10.config 516887 2012-09-09 22:34:18Z vogel $ +# $Id: heavyions_minutes10.config 2018-10-24 16:46:00 alaperto $ # ********************************************************************** ############## @@ -11,6 +11,8 @@ output top_level { output Quality_Control { } output Diagnostics { + output JetInformation { + } output TrackInformation { output TracksWithFailedCuts { } @@ -36,11 +38,75 @@ dir JetTagging { reference = CentrallyManagedReferences + hist track_selector_all_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Quality_Control + } hist track_selector_eff_LS { - algorithm = JetTag_GatherData + algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Quality_Control } + hist jet_2D_kinematic_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_quality_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_60_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_70_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_77_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_85_rate_2D_LS { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist tag_mv_w_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Diagnostics + } + hist tag_mv_w_pT10_20_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT20_50_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT50_100_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT100_200_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_mv_w_pT200_LS { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } hist tracks_pTMin_2D_LS { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation @@ -62,10 +128,6 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts } - hist tracks_etaMax_2D_LS { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } hist tracks_nHitBLayer_2D_LS { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts @@ -107,7 +169,16 @@ dir JetTagging { algorithm = JetTag_BinsDiffFromStripMedian output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts } - + hist jet_tracks_d0_LS { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics/TrackInformation + } + hist jet_tracks_z0_LS { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics/TrackInformation + } } @@ -127,7 +198,7 @@ algorithm KolmogorovTest_MaxDistPlusNorm { name = KolmogorovTest_MaxDistPlusNorm thresholds = KVT_Maxdist #reference = LocallyManagedReferences -reference = CentrallyManagedReferences +reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } #algorithm GatherData { @@ -178,7 +249,7 @@ libname = libdqm_algorithms.so algorithm KolTest { name = KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty #reference = LocallyManagedReferences - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist } @@ -191,7 +262,7 @@ libname = libdqm_algorithms.so algorithm KolTest_Koord { name = KolmogorovTest_MaxDistPlusNorm&GatherData #reference = LocallyManagedReferences - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist_Koord } @@ -212,7 +283,7 @@ compositeAlgorithm Simple_gaus_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&His algorithm KolTestPlusGaus { name = Simple_gaus_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty #reference = LocallyManagedReferences - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist Simple_gaus_Fit|thresholds = GausFitThres } @@ -231,7 +302,7 @@ compositeAlgorithm Simple_pol1_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&His algorithm KolTestPlusLinear { name = Simple_pol1_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty #reference = LocallyManagedReferences - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist Simple_pol1_Fit|thresholds = LinFitThres } diff --git a/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_run.config index e171a7ef675d..605707b1a313 100644 --- a/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/JetTagging/heavyions_run.config @@ -1,622 +1,538 @@ # ********************************************************************** -# $Id: heavyions_run.config 516887 2012-09-09 22:34:18Z vogel $ +# $Id: heavyions_run.config 2018-10-24 16:46:00 alaperto $ # ********************************************************************** ####################### # Histogram Assessments ####################### +dir JetTagging { + reference = CentrallyManagedReferences -dir JetTagging { + ################################################################## + ### Quality_Control + ################################################################## + hist DQ_Cutflow { + algorithm = KolTest + display = LogY + output = JetTagging/Quality_Control + } + hist Jet_Cutflow { + algorithm = KolTest + display = LogY + output = JetTagging/Quality_Control + } + hist jet_tracks_n { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_pt { + display = LogY + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_eta { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_phi { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_hits_SCT { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_hits_Pixel { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist jet_tracks_hits_BLayer { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist track_selector_eff { + algorithm = JetTag_GatherData + output = JetTagging/Quality_Control + } + hist track_selector_suspect { + algorithm = JetTag_GatherData + output = JetTagging/Quality_Control + } + hist track_selector_all { + algorithm = JetTag_GatherData + output = JetTagging/Quality_Control + } + hist global_BLayerHits { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist global_PixelHits { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist global_SiHits { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist global_nPrimVtx { + algorithm = KolTest + output = JetTagging/Quality_Control + } + hist tag_SV1IP3D_w { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_pT10_20 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_pT20_50 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_pT50_100 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_pT100_200 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_pT200 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_eta0_05 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_eta05_10 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_eta10_15 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_eta15_20 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_eta20_25 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi0_07 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi07_14 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi14_21 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi21_28 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi28 { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_sum85OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_sum77OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_sum70OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_sumAll { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_frac85OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_frac77OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_frac70OP { + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_phi_frac50OP { #switch to 60OP? + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_SV1IP3D_w_sj { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_sj { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Quality_Control + } + + ####### NEW: 2018 DQ ############### - reference = CentrallyManagedReferences - - hist jet_tracks_hits_SCT { - algorithm = KolTest - output = JetTagging/Quality_Control - } - hist jet_tracks_hits_Pixel { - algorithm = KolTest - output = JetTagging/Quality_Control - } - - - hist taggability { - algorithm = JetTag_GatherData - output = JetTagging/Quality_Control - } - - - #hist jet_electrons_n { - # algorithm = KolTest - # output = JetTagging/Diagnostics - #} - hist jet_muons_n { - algorithm = KolTest - display = LogY - output = JetTagging/Diagnostics - } - hist tag_SV0_w { - algorithm = KolTest - weight = 0.8 - display = LogY - output = JetTagging/Diagnostics - } - - hist track_selector_eff { - algorithm = JetTag_GatherData - output = JetTagging/Quality_Control - } - - hist ip3d_tag_neg_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist ip3d_tag_pos_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist mv1_tag_neg_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist mv1_tag_pos_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - - hist sv1_tag_neg_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist sv1_tag_pos_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist sv2_tag_neg_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist sv2_tag_pos_rate_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist jet_2D_kinematic { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist jet_2D_good { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - hist tracks_pTMin_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation - } - - hist tracks_d0Max_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_z0Max_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_sigd0Max_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_sigz0Max_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_etaMax_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_nHitBLayer_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_deadBLayer_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_nHitPix_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - - hist tracks_nHitSct_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_nHitSi_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_nHitTrt_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_nHitTrtHighE_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_fitChi2_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_fitProb_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - hist tracks_fitChi2OnNdfMax_2D { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts - } - - - - - hist jet_2D_all { - algorithm = JetTag_BinsDiffFromStripMedian - output = JetTagging/Diagnostics/JetInformation - } - - - hist tracks_all_2D { - algorithm = JetTag_GatherData - output = JetTagging/Diagnostics/TrackInformation - } - - - - - hist NTrackParticle { - algorithm = KolTest - display = LogY - output = JetTagging/Diagnostics - } - - hist global_xPrimVtx { - algorithm = KolTest_Koord - display = LogY - output = JetTagging/Diagnostics - } - hist global_yPrimVtx { - algorithm = KolTest_Koord - display = LogY - output = JetTagging/Diagnostics - } - hist global_zPrimVtx { - algorithm = KolTest_Koord - output = JetTagging/Diagnostics - - } - hist global_BLayerHits { - algorithm = KolTest - output = JetTagging/Quality_Control - } - hist jet_tracks_hits_BLayer { - algorithm = KolTest - output = JetTagging/Quality_Control - } - - hist global_TRTHits { - algorithm = KolTest - display = LogY - output = JetTagging/Diagnostics - } - hist global_PixelHits { - algorithm = KolTest - output = JetTagging/Quality_Control - } - hist global_SiHits { - algorithm = KolTest - output = JetTagging/Quality_Control - } - hist global_SCTHits { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist jet_n { - algorithm = KolTest - output = JetTagging/Diagnostics - } - - hist jet_muons_pt { - display = LogY - algorithm = KolTest - output = JetTagging/Diagnostics/JetInformation - } - hist jet_nTag { - algorithm = KolTest - output = JetTagging/Diagnostics/JetInformation - } - hist jet_phi { - algorithm = KolTest - output = JetTagging/Diagnostics/JetInformation - } - hist jet_et { - display = LogY - algorithm = KolTest - output = JetTagging/Diagnostics/JetInformation - } - hist jet_eta { - algorithm = KolTest - output = JetTagging/Diagnostics/JetInformation - } - hist tag_IP2D_b { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist tag_IP3D_b { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist tag_IP2D_n { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist tag_IP3D_n { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist tag_IP2D_u { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist tag_IP3D_u { - algorithm = KolTest - output = JetTagging/Diagnostics - } - - hist tag_IP2D_w { - display = LogY - algorithm = KolTest - weight = 0.5 - output = JetTagging/Diagnostics - } - - hist tag_IP3D_w { - display = LogY - algorithm = KolTest - weight = 0.5 - output = JetTagging/Quality_Control - } -# hist tag_LHSIG_w { -# display = LogY -# algorithm = JetTag_GatherData -# output = JetTagging/Diagnostics -# weight = 0 -# set_weight = 0 -# } - hist tag_SV1_w { - algorithm = KolTest - weight = 0.5 - display = LogY - output = JetTagging/Diagnostics - } - hist tag_SV2_w { - algorithm = KolTest - weight = 0.5 - display = LogY - output = JetTagging/Diagnostics - } - hist ip3d_tag_def_rate_2D { - algorithm = JetTag_GatherData - output = JetTagging/Quality_Control - } - - hist tag_COMB_w { - algorithm = KolTest - display = LogY - weight = 0.8 - output = JetTagging/Quality_Control - } - hist tag_MV1_w { - display = LogY - algorithm = KolTest - weight = 0.8 - output = JetTagging/Quality_Control - } - - #hist tag_SVBU_w { - # algorithm = JetTag_GatherData - # output = JetTagging/Diagnostics - #} - - hist DQ_Cutflow { - algorithm = KolTest - display = LogY - output = JetTagging/Quality_Control - } - - hist Jet_Cutflow { - algorithm = KolTest - display = LogY - output = JetTagging/Quality_Control - } - hist trigPassed { - display = LogY - algorithm = KolTest - output = JetTagging/Diagnostics - } - - hist global_nPrimVtx { - algorithm = KolTest - output = JetTagging/Quality_Control - } - - hist jet_tracks_n { - algorithm = KolTest - output = JetTagging/Quality_Control - } - - hist priVtx_trks { - algorithm = KolTest - output = JetTagging/Diagnostics - } - hist d0Sig_EtaRange_0_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_0_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_0_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_1_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_1_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_1_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_2_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_2_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_2_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_3_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_3_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_3_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_4_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_4_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0Sig_EtaRange_4_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_0_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_0_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_0_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_1_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_1_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_1_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_2_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_2_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_2_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_3_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_3_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_3_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_4_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_4_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0Sig_EtaRange_4_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_0_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_0_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_0_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_1_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_1_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_1_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_2_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_2_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_2_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_3_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_3_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_3_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_4_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_4_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist d0_EtaRange_4_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_0_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_0_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_0_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_1_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_1_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_1_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_2_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_2_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_2_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_3_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_3_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_3_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_4_PtRange_0 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_4_PtRange_1 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - hist z0_EtaRange_4_PtRange_2 { - algorithm = JetTag_GatherDataPlusOverUnder - output = JetTagging/Diagnostics/ImpactParameters - } - - #hist vertexProb { - # algorithm = KolTestPlusLinear - # display = AxisRange(0,1000,"X") - # output = JetTagging/Diagnostics - #} + hist n_smt_jet { + algorithm = KolTest + display = LogY + output = JetTagging/Quality_Control + } + hist smt_jet_MV_w { + algorithm = KolTest + display = LogY + output = JetTagging/Quality_Control + } + hist tag_MV_w_mu0_30 { + algorithm = KolTest + display = LogY + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_mu30_50 { + algorithm = KolTest + display = LogY + weight = 0.8 + output = JetTagging/Quality_Control + } + hist tag_MV_w_mu50_100 { + algorithm = KolTest + display = LogY + weight = 0.8 + output = JetTagging/Quality_Control + } + + ################################################################## + ### Diagnostics + ################################################################## + hist trigPassed { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_n { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist NTrackParticle { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist priVtx_trks { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist global_zPrimVtx { + algorithm = KolTest_Koord + output = JetTagging/Diagnostics + } + hist global_TRTHits { + algorithm = KolTest + display = LogY + output = JetTagging/Diagnostics + } + hist global_SCTHits { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_IP2D_llr { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_IP3D_n { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_IP3D_llr { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_SV1_llr { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_SV0_sig3d { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_JetFitter_llr { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_JFCNN_llr { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist n_iso_el { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist n_iso_mu { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_top_eff { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_pt_top { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_pt_top_tagged { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_pt_top_eff { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist jet_MV_top { + algorithm = KolTest + display = LogY + output = JetTagging/Diagnostics + } + hist n_mu { + algorithm = KolTest + output = JetTagging/Diagnostics + } + hist tag_MV_w { + display = LogY + algorithm = KolTest + weight = 0.8 + output = JetTagging/Diagnostics + } + ################################################################## + ### Diagnostics/ImpactParameters + ################################################################## + ################################################################## + ### Diagnostics/JetInformation + ################################################################## + hist jet_phi { + algorithm = KolTest + output = JetTagging/Diagnostics/JetInformation + } + hist jet_et { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics/JetInformation + } + hist jet_eta { + algorithm = KolTest + output = JetTagging/Diagnostics/JetInformation + } + hist sv1ip3d_tag_neg_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist sv1ip3d_tag_pos_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_60_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_70_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_77_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist mv_tag_85_rate_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_all { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_good { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_kinematic { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + ####### NEW: 2018 DQ ############### + hist jet_2D_mjvt { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + ####### NEW: 2018 DQ ############### + hist jet_2D_overlap { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_quality { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_suspect { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + ####### NEW: 2018 DQ ############### + hist jet_2D_tbad { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + hist jet_2D_tsmt { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/JetInformation + } + + ################################################################## + ### Diagnostics/TrackInformation + ################################################################## + hist tracks_all_2D { + algorithm = JetTag_GatherData + output = JetTagging/Diagnostics/TrackInformation + } + hist tracks_pTMin_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation + } + hist jet_tracks_d0 { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics/TrackInformation + } + hist jet_tracks_z0 { + display = LogY + algorithm = KolTest + output = JetTagging/Diagnostics/TrackInformation + } + + ################################################################## + ### Diagnostics/TrackInformation/TracksWithFailedCuts + ################################################################## + hist tracks_d0Max_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_z0Max_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_sigd0Max_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_sigz0Max_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitBLayer_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_deadBLayer_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitPix_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitSct_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitSi_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitTrt_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_nHitTrtHighE_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_fitChi2_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_fitProb_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } + hist tracks_fitChi2OnNdfMax_2D { + algorithm = JetTag_BinsDiffFromStripMedian + output = JetTagging/Diagnostics/TrackInformation/TracksWithFailedCuts + } } ########################### @@ -627,7 +543,7 @@ algorithm KolmogorovTest_MaxDistPlusNorm { libname = libdqm_algorithms.so name = KolmogorovTest_MaxDistPlusNorm thresholds = KVT_Maxdist -reference = CentrallyManagedReferences +reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences } #algorithm GatherData { @@ -635,9 +551,6 @@ reference = CentrallyManagedReferences # name = GatherData #} - - - #algorithm BinsFilledOutRange { # libname = libdqm_algorithms.so # name = BinsFilledOutRange @@ -659,14 +572,10 @@ algorithm Simple_gaus_Fit { } - - - #### ## Composited algorithms to extend Kolgomorov tests #### - #### ##Simple KolTest just to check histograms #### @@ -677,11 +586,10 @@ libname = libdqm_algorithms.so algorithm KolTest { name = KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist } - compositeAlgorithm KolmogorovTest_MaxDistPlusNorm&GatherData { subalgs = KolmogorovTest_MaxDistPlusNorm,GatherData,Histogram_Not_Empty libname = libdqm_algorithms.so @@ -689,16 +597,10 @@ libname = libdqm_algorithms.so algorithm KolTest_Koord { name = KolmogorovTest_MaxDistPlusNorm&GatherData - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist_Koord } - -#### - - - - #### ##KolTest with added gaus fit. For primary vertex shapes #### @@ -709,12 +611,10 @@ compositeAlgorithm Simple_gaus_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&His algorithm KolTestPlusGaus { name = Simple_gaus_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist Simple_gaus_Fit|thresholds = GausFitThres } -#### - #### ##KolTest with a check how much bins out of a given range will be filled. @@ -727,12 +627,10 @@ compositeAlgorithm Simple_pol1_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&His algorithm KolTestPlusLinear { name = Simple_pol1_Fit&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty - reference = CentrallyManagedReferences + reference = stream=physics_Main:CentrallyManagedReferences_Main;CentrallyManagedReferences KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist Simple_pol1_Fit|thresholds = LinFitThres } -#### - #compositeAlgorithm BinsFilledOutRange&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty { # subalgs = KolmogorovTest_MaxDistPlusNorm,GatherData,Histogram_Not_Empty,BinsFilledOutRange @@ -742,29 +640,23 @@ algorithm KolTestPlusLinear { #algorithm KolTestPlusBinsOutOfRange { # libname = libdqm_algorithms.so # name = BinsFilledOutRange&KolmogorovTest_MaxDistPlusNorm&GatherData&Histogram_Not_Empty - # KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist +# KolmogorovTest_MaxDistPlusNorm|thresholds = KVT_Maxdist # BinsFilledOutRange|xmin = 0 # BinsFilledOutRange|xmax = 1000 # BinsFilledOutRange|thresholds = OutOfRangeThres #} - - ##Gather data and non empty test #compositeAlgorithm Histogram_Not_Empty&GatherData { #subalgs = Histogram_Not_Empty,GatherData #libname = libdqm_algorithms.so #name = KolmogorovTest_MaxDistPlusNorm&GatherData - #} algorithm JetTag_GatherData { name = Histogram_Not_Empty&GatherData } - - - ##Gather data and non empty test with over-/underflow information compositeAlgorithm No_UnderFlows&No_OverFlows&Histogram_Not_Empty&GatherData { subalgs = No_UnderFlows,No_OverFlows,Histogram_Not_Empty,GatherData @@ -781,8 +673,6 @@ algorithm JetTag_BinsDiffFromStripMedian { thresholds = JetTag_BinsDiffFromStripMedian_threshold } - - ###################### thresholds JetTag_BinsDiffFromStripMedian_threshold { @@ -792,7 +682,6 @@ thresholds JetTag_BinsDiffFromStripMedian_threshold { } } - thresholds th_CSC_KSTest_JetTag { limits P { warning = 0.4 @@ -836,10 +725,9 @@ error = 2 } } - - ############## - # Output - ############## + ############## + # Output + ############## output top_level { algorithm = WorstCaseSummary @@ -857,7 +745,6 @@ error = 2 # weight = 0 #} - } output Diagnostics { set_weight = 0.0 @@ -873,16 +760,10 @@ error = 2 set_weight = 0 weight = 0 } -} - output ImpactParameters { - set_weight = 0 - weight = 0 - } - - } - + } + } - } - } + } +} diff --git a/DataQuality/DataQualityConfigurations/config/MuonCombined/collisions_run.config b/DataQuality/DataQualityConfigurations/config/MuonCombined/collisions_run.config index 855a525730b1..178210c63b09 100644 --- a/DataQuality/DataQualityConfigurations/config/MuonCombined/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/MuonCombined/collisions_run.config @@ -603,8 +603,6 @@ dir MuonPhysics { display = Ref2DSignif,TCanvas(490,900) } hist Muons_CBMuons_Origin_eta_phi { - output = MuonTracking/Shifter/Muons - display = Ref2DSignif,TCanvas(490,900) description = All Muons, Eta and Phi distributions } # -------------------------------------------- @@ -730,6 +728,38 @@ dir MuonPhysics { display = AxisRange(0.0,6.0,"Z") } } #dir CBMuons + + dir MuonStandAlone { + hist Muons_MuonStandAlone_Origin_eta_phi { + output = MuonTracking/Shifter/Muons + #display = Ref2DSignif,TCanvas(490,900) + description = StandAlone, Eta and Phi distributions + } + } #dir MuonStandAlone + + dir CaloTagged { + hist Muons_CaloTagged_Origin_eta_phi { + output = MuonTracking/Shifter/Muons + #display = Ref2DSignif,TCanvas(490,900) + description = CaloTagged, Eta and Phi distributions + } + } #dir CaloTagged + + dir SegmentTagged { + hist Muons_SegmentTagged_Origin_eta_phi { + output = MuonTracking/Shifter/Muons + #display = Ref2DSignif,TCanvas(490,900) + description = SegmentTagged, Eta and Phi distributions + } + } #dir SegmentTagged + + dir SiliconAssociatedForward { + hist Muons_SiliconAssociatedForward_Origin_eta_phi { + output = MuonTracking/Shifter/Muons + #display = Ref2DSignif,TCanvas(490,900) + description = SiliconAssociatedForward, Eta and Phi distributions + } + } #dir SiliconAssociatedForward dir NonCBMuons { output = MuonTracking/Expert/NonCBMuons diff --git a/DataQuality/DataQualityConfigurations/config/common/collisions_run.config b/DataQuality/DataQualityConfigurations/config/common/collisions_run.config index 0e787006d6f3..77dd696f3923 100644 --- a/DataQuality/DataQualityConfigurations/config/common/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/common/collisions_run.config @@ -8,33 +8,33 @@ reference CentrallyManagedReferences { location = /eos/atlas/atlascerngroupdisk/data-dqm/references/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/ - file = data17_13TeV.00341534.express_express.merge.HIST.f903_h277._0001.1 - path = run_341534 - info = Run 341534, express_express + file = data18_13TeV.00358031.express_express.merge.HIST.f961_h322._0001.1 + path = run_358031 + info = Run 358031, express_express name = same_name } reference CentrallyManagedReferences_Main { location = /eos/atlas/atlascerngroupdisk/data-dqm/references/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/ - file = data17_13TeV.00341534.physics_Main.merge.HIST.f903_h277._0001.1 - path = run_341534 - info = Run 341534, physics_Main + file = data18_13TeV.00358031.physics_Main.merge.HIST.f961_h322._0001.1 + path = run_358031 + info = Run 358031, physics_Main name = same_name } reference CentrallyManagedReferences_Trigger { location = /eos/atlas/atlascerngroupdisk/data-dqm/references/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/ - file = data17_13TeV.00341534.express_express.merge.HIST.f903_h277._0001.1 - path = run_341534 - info = Run 341534, express_express + file = data18_13TeV.00356177.express_express.merge.HIST.f956_h317._0001.1 + path = run_356177 + info = Run 356177, express_express name = same_name } reference CentrallyManagedReferences_TriggerMain { location = /eos/atlas/atlascerngroupdisk/data-dqm/references/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/ - file = data17_13TeV.00341534.physics_Main.merge.HIST.f903_h277._0001.1 - path = run_341534 - info = Run 341534, physics_Main + file = data18_13TeV.00356177.physics_Main.merge.HIST.f956_h319._0001.1 + path = run_356177 + info = Run 356177, physics_Main name = same_name } diff --git a/DataQuality/DataQualityConfigurations/scripts/UploadDQAMITag.py b/DataQuality/DataQualityConfigurations/scripts/UploadDQAMITag.py index 33f5d97f996c..2c877ef5bb55 100755 --- a/DataQuality/DataQualityConfigurations/scripts/UploadDQAMITag.py +++ b/DataQuality/DataQualityConfigurations/scripts/UploadDQAMITag.py @@ -314,4 +314,4 @@ if __name__ == '__main__': elif args[0].lower() == 'release': update_dict_for_release(cfgdict, args[1]) - #upload_new_config(amiclient, nextTag, cfgdict) + upload_new_config(amiclient, nextTag, cfgdict) -- GitLab From 8b6c89c064477724df3a717b7b63858d708e89c8 Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 20:07:19 +0100 Subject: [PATCH 155/192] Sweep DQUtils to master --- DataQuality/DQUtils/python/grl.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/DataQuality/DQUtils/python/grl.py b/DataQuality/DQUtils/python/grl.py index d34718dc1d17..d770b632e6e2 100644 --- a/DataQuality/DQUtils/python/grl.py +++ b/DataQuality/DQUtils/python/grl.py @@ -8,7 +8,7 @@ import xml.etree.cElementTree as cElementTree from .db import fetch_iovs from .events import process_iovs -from .sugar import define_iov_type, IOVSet, RunLumi +from .sugar import define_iov_type, IOVSet, RunLumi, RunLumiType @define_iov_type def GRL_IOV(): @@ -82,6 +82,15 @@ def make_grl(iovset, name="unknown", version="unknown"): result.append("</LumiRangeCollection>") return "\n".join(result) +def grl_contains_run_lb(grl, runlb): + # takes IOVSet of GRL_IOV, says whether runlb is in it + # runlb can be RunLumi type or tuple pair + if isinstance(runlb, RunLumiType): + runlb_ = runlb + else: + runlb_ = RunLumi(*runlb) + return any(_.contains_point(runlb_) for _ in grl) + # Deprecated alias def grl_iovs_from_xml(*args, **kwargs): from warnings import warn -- GitLab From 54fecdd38d8d94ebfd3ec8c2266d1e2a51426c1b Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 20:14:11 +0100 Subject: [PATCH 156/192] Sweep DCSCalculator2 to master --- DataQuality/DCSCalculator2/CMakeLists.txt | 7 +++++++ .../DCSCalculator2/python/subdetectors/global_system.py | 1 + DataQuality/DCSCalculator2/python/subdetectors/idbs.py | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/DataQuality/DCSCalculator2/CMakeLists.txt b/DataQuality/DCSCalculator2/CMakeLists.txt index 2601ce281b7d..6863638946d8 100644 --- a/DataQuality/DCSCalculator2/CMakeLists.txt +++ b/DataQuality/DCSCalculator2/CMakeLists.txt @@ -5,6 +5,13 @@ # Declare the package name: atlas_subdir( DCSCalculator2 ) +# Declare the package's dependencies: +atlas_depends_on_subdirs( PRIVATE + Database/CoolRunQuery + TileCalorimeter/TileCalib/TileCalibBlobObjs + DataQuality/DQDefects + DataQuality/DQUtils ) + # Install files from the package: atlas_install_python_modules( python/*.py python/subdetectors ) atlas_install_scripts( share/*.py ) diff --git a/DataQuality/DCSCalculator2/python/subdetectors/global_system.py b/DataQuality/DCSCalculator2/python/subdetectors/global_system.py index 01f8f1948e6a..d63ec4023b96 100644 --- a/DataQuality/DCSCalculator2/python/subdetectors/global_system.py +++ b/DataQuality/DCSCalculator2/python/subdetectors/global_system.py @@ -48,6 +48,7 @@ class TDAQ_Busy(DCSC_Defect_Global_Variable): counter=0 for since, until, (state,) in events: + if state.Run == 0: continue #print state if state is not None: deadfrac = 1-state.LiveFraction diff --git a/DataQuality/DCSCalculator2/python/subdetectors/idbs.py b/DataQuality/DCSCalculator2/python/subdetectors/idbs.py index 19d5defbbe4f..40365666b2a0 100644 --- a/DataQuality/DCSCalculator2/python/subdetectors/idbs.py +++ b/DataQuality/DCSCalculator2/python/subdetectors/idbs.py @@ -10,7 +10,7 @@ class IDBS_Beampos(DCSC_Global_Variable): input_db = "COOLOFL_INDET/CONDBR2" timewise_folder = False - fetch_args = dict(tag="IndetBeampos-ES1-UPD2") + fetch_args = dict(tag="IndetBeampos_cosmic_loose-RUN2") STATUSMAP = { 59 : GREEN, -- GitLab From d0eb8de3232fc91c42ef7093109eab786deaec6a Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 27 Jan 2019 22:16:13 +0100 Subject: [PATCH 157/192] Sweep DataQualityInterfaces to master --- .../DataQualityInterfaces/src/HanConfig.cxx | 16 ++++++++++---- .../src/HanConfigAssessor.cxx | 5 ++++- .../src/HanInputRootFile.cxx | 3 ++- .../DataQualityInterfaces/src/HanOutput.cxx | 21 ++++++++++++++++--- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx index 9c3410d64324..0cc8236f258b 100644 --- a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx +++ b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx @@ -25,6 +25,7 @@ #include <TBox.h> #include <TLine.h> #include <TROOT.h> +#include <TEfficiency.h> #include "dqm_core/LibraryManager.h" #include "dqm_core/Parameter.h" @@ -336,9 +337,9 @@ Visit( const MiniConfigTreeNode* node ) const TObject* obj; std::string name = node->GetAttribute("name"); std::string fileName = node->GetAttribute("file"); - fileName = SplitReference(node->GetAttribute("location"), fileName); - std::string refInfo = node->GetAttribute("info"); if( fileName != "" && name != "" && name != "same_name" ) { + fileName = SplitReference(node->GetAttribute("location"), fileName); + std::string refInfo = node->GetAttribute("info"); std::auto_ptr<TFile> infile( TFile::Open(fileName.c_str()) ); TKey* key = getObjKey( infile.get(), name ); if( key == 0 ) { @@ -906,7 +907,8 @@ Visit( const MiniConfigTreeNode* node ) const TObject* tmpobj = key->ReadObj(); TH1* tmph = dynamic_cast<TH1*>(tmpobj); TGraph* tmpg = dynamic_cast<TGraph*>(tmpobj); - if( tmph == 0 && tmpg == 0 ) + TEfficiency* tmpe = dynamic_cast<TEfficiency*>(tmpobj); + if( tmph == 0 && tmpg == 0 && tmpe == 0 ) continue; objName = objPath; @@ -1237,7 +1239,13 @@ ChangeOutputDir( TFile* file, std::string path, DirMap_t& directories ) std::string dirName; std::string::size_type k = subPath.find_last_of('/'); dirName = (k != std::string::npos) ? std::string( subPath, k+1, std::string::npos ) : subPath; - TDirectory* dir = parDir->mkdir( dirName.c_str() ); + TDirectory* dir; + if (!parDir->FindKey(dirName.c_str())) { + dir = parDir->mkdir( dirName.c_str() ); + } + else{ + std::cout << "Failed to make directory " << dirName.c_str() << std::endl; + } DirMap_t::value_type dirVal( subPath, dir ); directories.insert( dirVal ); return dir; diff --git a/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx b/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx index e3d6616fe405..437466ae898e 100644 --- a/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx +++ b/DataQuality/DataQualityInterfaces/src/HanConfigAssessor.cxx @@ -421,7 +421,10 @@ GetList( TDirectory* basedir, std::map<std::string,TSeqCollection*>& mp ) TKey* key = getObjKey( basedir, GetHistPath() ); if( key != 0 ) { const char* className = key->GetClassName(); - if( (strncmp(className, "TH", 2) == 0) || (strncmp(className, "TGraph", 6) == 0) || (strncmp(className, "TProfile", 8) == 0) ) { + if( (strncmp(className, "TH", 2) == 0) + || (strncmp(className, "TGraph", 6) == 0) + || (strncmp(className, "TProfile", 8) == 0) + || (strncmp(className, "TEfficiency", 11) == 0) ) { // TNamed* transobj = dynamic_cast<TNamed*>(key->ReadObj()); // if (transobj != NULL) { std::string::size_type rslash = nameString.rfind("/"); diff --git a/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx b/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx index 45080efc680b..165d3ec36921 100644 --- a/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx +++ b/DataQuality/DataQualityInterfaces/src/HanInputRootFile.cxx @@ -7,6 +7,7 @@ #include "TH1.h" #include "TGraph.h" #include "TDirectoryFile.h" +#include "TEfficiency.h" #include <iostream> #include <cstring> @@ -108,7 +109,7 @@ addListener( const boost::regex& regex, dqm_core::InputListener* listener ) if (boost::regex_match(*str, regex)) { // is this actually a histogram/graph? TObject* temp = m_basedir->Get(str->c_str()); - if (dynamic_cast<TH1*>(temp) || dynamic_cast<TGraph*>(temp)) { + if (dynamic_cast<TH1*>(temp) || dynamic_cast<TGraph*>(temp) || dynamic_cast<TEfficiency*>(temp) ) { std::cout << "Regular expression " << regex << " matches " << *str << std::endl; addListener(*str, listener); } diff --git a/DataQuality/DataQualityInterfaces/src/HanOutput.cxx b/DataQuality/DataQualityInterfaces/src/HanOutput.cxx index 72334bb5d74b..f33c716c3c1f 100644 --- a/DataQuality/DataQualityInterfaces/src/HanOutput.cxx +++ b/DataQuality/DataQualityInterfaces/src/HanOutput.cxx @@ -26,6 +26,7 @@ #include <TROOT.h> #include <TH1.h> #include <TGraph.h> +#include <TEfficiency.h> #include "dqm_core/exceptions.h" #include "dqm_core/OutputListener.h" @@ -58,6 +59,9 @@ bool setNameGeneral(TObject* obj, const std::string& name) { } else if (TGraph* g=dynamic_cast<TGraph*>(obj)) { g->SetName(name.c_str()); return true; + } else if (TEfficiency* e=dynamic_cast<TEfficiency*>(obj)) { + e->SetName(name.c_str()); + return true; } else { TClass* kl = obj->IsA(); TMethod* klm = kl->GetMethod("SetName", "\"Reference\""); @@ -263,7 +267,10 @@ flushResults() TKey* key = getObjKey(m_input, storename); if( key != 0 ) { const char* className = key->GetClassName(); - if( (strncmp(className, "TH", 2) == 0) || (strncmp(className, "TGraph", 6) == 0) || (strncmp(className, "TProfile", 8) == 0) ) { + if( (strncmp(className, "TH", 2) == 0) + || (strncmp(className, "TGraph", 6) == 0) + || (strncmp(className, "TProfile", 8) == 0) + || (strncmp(className, "TEfficiency", 11) == 0) ) { TNamed* transobj = dynamic_cast<TNamed*>(key->ReadObj()); if (transobj != NULL) { HanHistogramLink* hhl = new HanHistogramLink(m_input, storename); @@ -373,13 +380,21 @@ static void WriteListToDirectory(TDirectory *dir, TSeqCollection *list, TFile* f str = tmp; tmp = strtok(0, "/"); } - TDirectory* daughter = dir->mkdir(str); + TDirectory* daughter; + if (!dir->FindKey(str)) { + daughter = dir->mkdir(str); + } + else{ + std::cout << "Failed to make " << str << " from " << tmpList->GetName() << std::endl; + continue; + } WriteListToDirectory(daughter, tmpList, file, level-1); if (level > 0) { file->Write(); delete daughter; } } else if ((strncmp(obj->ClassName(), "TH", 2) == 0) || (strncmp(obj->ClassName(), "TGraph", 6) == 0) - || (strncmp(obj->ClassName(), "TProfile", 8) ==0)) { + || (strncmp(obj->ClassName(), "TProfile", 8) ==0) + || (strncmp(obj->ClassName(), "TEfficiency", 11) == 0) ) { dir->GetMotherDir()->WriteTObject(obj); } else { // anything else put it in current directory -- GitLab From 6019d0205f8359bdfd4b017938c318aa1f7c49b5 Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Mon, 28 Jan 2019 09:11:09 +0000 Subject: [PATCH 158/192] Allow new DQ monitoring algorithms to be run in the Run 2 jobOption framework --- .../ExampleMonitorAlgorithm.h | 2 +- .../python/AthMonitorCfgHelper.py | 154 +++++++++++++++++- Control/AthenaMonitoring/python/__init__.py | 4 +- .../ExampleMonitorAlgorithm_jobOptions.py | 38 +++++ .../src/ExampleMonitorAlgorithm.cxx | 4 +- 5 files changed, 193 insertions(+), 9 deletions(-) create mode 100644 Control/AthenaMonitoring/share/ExampleMonitorAlgorithm_jobOptions.py diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h index c08f685c9828..5b1b8aac4ac4 100644 --- a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h +++ b/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h @@ -19,4 +19,4 @@ public: private: Gaudi::Property<bool> m_doRandom {this,"RandomHist",false}; }; -#endif \ No newline at end of file +#endif diff --git a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py index 9c8cccce5ca6..900e7de07ebb 100644 --- a/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py +++ b/Control/AthenaMonitoring/python/AthMonitorCfgHelper.py @@ -2,8 +2,27 @@ # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # +'''@file AthMonitorCfgHelper.py +@author C. D. Burton +@author P. Onyisi +@date 2019-01-25 +@brief Helper classes for Run 3 monitoring algorithm configuration +''' + class AthMonitorCfgHelper(object): + ''' + This class is for the Run 3-style configuration framework. It is intended to be instantiated once + per group of related monitoring algorithms. + ''' def __init__(self, inputFlags, monName): + ''' + Create the configuration helper. Needs the global flags and the name of the set of + monitoring algorithms. + + Arguments: + inputFlags -- the global configuration flag object + monName -- the name you want to assign the family of algorithms + ''' from AthenaCommon.AlgSequence import AthSequencer from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator self.inputFlags = inputFlags @@ -11,10 +30,28 @@ class AthMonitorCfgHelper(object): self.monSeq = AthSequencer('AthMonSeq_' + monName) self.resobj = ComponentAccumulator() - def addAlgorithm(self,algClassOrObj, *args, **kwargs): + def addAlgorithm(self, algClassOrObj, name = None, *args, **kwargs): + ''' + Instantiate/add a monitoring algorithm + + Arguments: + algClassOrObj -- the Configurable class object of the algorithm to create, or an instance + of the algorithm Configurable. The former is recommended. In the former case, + the name argument is required. + name -- the name of the algorithm to create. Required when passing a Configurable class object + as algClassOrObj. No effect if a Configurable instance is passed. + *args, **kwargs -- additional arguments will be forwarded to the Configurable constructor if + a Configurable class object is passed. No effect if a Configurable instance + is passed. + + Returns: + algObj -- an algorithm Configurable object + ''' from AthenaCommon.Configurable import Configurable if issubclass(algClassOrObj, Configurable): - algObj = algClassOrObj(*args, **kwargs) + if name is None: + raise TypeError('addAlgorithm with a class argument requires a name for the algorithm') + algObj = algClassOrObj(name, *args, **kwargs) else: algObj = algClassOrObj @@ -26,9 +63,23 @@ class AthMonitorCfgHelper(object): return algObj def addGroup(self, alg, name, topPath=''): + ''' + Add a "group" (technically, a GenericMonitoringTool instance) to an algorithm. The name given + here can be used to retrieve the group from within the algorithm when calling the fill() + function. (Note this is *not* the same thing as the Monitored::Group class.) + + Arguments: + alg -- algorithm Configurable object (e.g. one returned from addAlgorithm) + name -- name of the group + topPath -- directory name in the output ROOT file under which histograms will be produced + + Returns: + tool -- a GenericMonitoringTool Configurable object. This can be used to define histograms + associated with that group (using defineHistogram). + ''' from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool tool = GenericMonitoringTool(name) - acc, histsvc = GetDQTHistSvc(self.inputFlags) + acc, histsvc = getDQTHistSvc(self.inputFlags) self.resobj.merge(acc) tool.THistSvc = histsvc tool.HistPath = self.inputFlags.DQ.FileKey + ('/%s' % topPath if topPath else '') @@ -36,10 +87,105 @@ class AthMonitorCfgHelper(object): return tool def result(self): + ''' + This function should be called to finalize the creation of the set of monitoring algorithms. + + Returns: + (resobj, monSeq) -- a tuple with a ComponentAccumulator and an AthSequencer + ''' self.resobj.addSequence(self.monSeq) return self.resobj,self.monSeq -def GetDQTHistSvc(inputFlags): +class AthMonitorCfgHelperOld(object): + ''' + This is the version of the AthMonitorCfgHelper for the old-style jobOptions framework + ''' + def __init__(self, dqflags, monName): + ''' + Create the configuration helper. Needs the global flags and the name of the set of + monitoring algorithms. + + Arguments: + dqflags -- the DQMonFlags object + monName -- the name you want to assign the family of algorithms + ''' + from AthenaCommon.AlgSequence import AthSequencer + self.dqflags = dqflags + self.monName = monName + self.monSeq = AthSequencer('AthMonSeq_' + monName) + + def addAlgorithm(self,algClassOrObj, *args, **kwargs): + ''' + Instantiate/add a monitoring algorithm + + Arguments: + algClassOrObj -- the Configurable class object of the algorithm to create, or an instance + of the algorithm Configurable. The former is recommended. In the former case, + the name argument is required. + name -- the name of the algorithm to create. Required when passing a Configurable class object + as algClassOrObj. No effect if a Configurable instance is passed. + *args, **kwargs -- additional arguments will be forwarded to the Configurable constructor if + a Configurable class object is passed. No effect if a Configurable instance + is passed. + + Returns: + algObj -- an algorithm Configurable object + ''' + from AthenaCommon.Configurable import Configurable + if issubclass(algClassOrObj, Configurable): + algObj = algClassOrObj(*args, **kwargs) + else: + algObj = algClassOrObj + + # configure these properties; users really should have no reason to override them + algObj.Environment = self.dqflags.monManEnvironment() + algObj.DataType = self.dqflags.monManDataType() + + self.monSeq += algObj + return algObj + + def addGroup(self, alg, name, topPath=''): + ''' + Add a "group" (technically, a GenericMonitoringTool instance) to an algorithm. The name given + here can be used to retrieve the group from within the algorithm when calling the fill() + function. (Note this is *not* the same thing as the Monitored::Group class.) + + Arguments: + alg -- algorithm Configurable object (e.g. one returned from addAlgorithm) + name -- name of the group + topPath -- directory name in the output ROOT file under which histograms will be produced + + Returns: + tool -- a GenericMonitoringTool Configurable object. This can be used to define histograms + associated with that group (using defineHistogram). + ''' + from AthenaMonitoring.GenericMonitoringTool import GenericMonitoringTool + tool = GenericMonitoringTool(name) + from AthenaCommon.AppMgr import ServiceMgr as svcMgr + if not hasattr(svcMgr, 'THistSvc'): + from GaudiSvc.GaudiSvcConf import THistSvc + svcMgr += THistSvc() + tool.THistSvc = svcMgr.THistSvc + tool.HistPath = self.dqflags.monManFileKey() + ('/%s' % topPath if topPath else '') + alg.GMTools += [tool] + return tool + + def result(self): + ''' + This function should be called to finalize the creation of the set of monitoring algorithms. + + Returns: + monSeq -- an AthSequencer + ''' + return self.monSeq + +def getDQTHistSvc(inputFlags): + ''' + This function creates a THistSvc - used for the new-style job configuration + + Returns: + (result, histsvc) -- a tuple of (ComponentAccumulator, THistSvc Configurable object) + ''' from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from GaudiSvc.GaudiSvcConf import THistSvc diff --git a/Control/AthenaMonitoring/python/__init__.py b/Control/AthenaMonitoring/python/__init__.py index d95762383ed5..93e6266cb2b2 100644 --- a/Control/AthenaMonitoring/python/__init__.py +++ b/Control/AthenaMonitoring/python/__init__.py @@ -2,5 +2,5 @@ # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration # -from AthMonitorCfgHelper import AthMonitorCfgHelper -from AtlasReadyFilterTool import GetAtlasReadyFilterTool \ No newline at end of file +from AthMonitorCfgHelper import AthMonitorCfgHelper, AthMonitorCfgHelperOld +from AtlasReadyFilterTool import GetAtlasReadyFilterTool diff --git a/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm_jobOptions.py b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm_jobOptions.py new file mode 100644 index 000000000000..1a519e832258 --- /dev/null +++ b/Control/AthenaMonitoring/share/ExampleMonitorAlgorithm_jobOptions.py @@ -0,0 +1,38 @@ +# +# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# + +'''@file ExampleMonitorAlgorithm_jobOptions.py +@author C. D. Burton +@author P. Onyisi +@date 2018-01-11 +@brief Example python configuration for the Run III AthenaMonitoring package (old jobOptions) +''' + +# The following class will make a sequence, configure algorithms, and link +# them to GenericMonitoringTools +from AthenaMonitoring import AthMonitorCfgHelperOld +helper = AthMonitorCfgHelperOld(DQMonFlags, "ExampleMonitor") + +### STEP 2 ### +# Adding an algorithm to the helper. Here, we will use the example +# algorithm in the AthenaMonitoring package. Just pass the type to the +# helper. Then, the helper will instantiate an instance and set up the +# base class configuration following the inputFlags. The returned object +# is the algorithm. +from AthenaMonitoring.AthenaMonitoringConf import ExampleMonitorAlgorithm +exampleMonAlg = helper.AddAlgorithm(ExampleMonitorAlgorithm, "ExampleMonAlg") + +myGroup = helper.AddGroup( exampleMonAlg, + "ExampleMonitor", + "OneRing/" + ) + +myGroup.defineHistogram("lumiPerBCID;lumiPerBCID", title="Luminosity;L/BCID;Events", + path='ToRuleThemAll',xbins=10,xmin=0.0,xmax=10.0) +myGroup.defineHistogram("lb;lb", title="Luminosity Block;lb;Events", + path='ToFindThem',xbins=1000,xmin=-0.5,xmax=999.5) +myGroup.defineHistogram("random;random", title="LB;x;Events", + path='ToBringThemAll',xbins=30,xmin=0,xmax=1) + +topSequence += helper.result() diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index 2494e52059bc..ed0bfd7abca7 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -31,8 +31,8 @@ StatusCode ExampleMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co lb = GetEventInfo(ctx)->lumiBlock(); run = GetEventInfo(ctx)->runNumber(); if (m_doRandom) { - TRandom r; - random = r.Rndm(); + TRandom r(ctx.eventID().event_number()); + random = r.Rndm(); } // Fill. First argument is the tool name, all others are the variables to be saved. -- GitLab From d45c7b8919e3004ab1d520f848d8903c50dfd6db Mon Sep 17 00:00:00 2001 From: Miha Muskinja <miha.muskinja@cern.ch> Date: Mon, 28 Jan 2019 09:19:02 +0000 Subject: [PATCH 159/192] Do not set default values in initialize in GeantFollowerHelper.cxx because they are set to default already at BeginEvent. --- .../TrkG4UserActions/src/GeantFollowerHelper.cxx | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx index a97d7902d9a3..54592da4fc3e 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerHelper.cxx @@ -90,18 +90,6 @@ StatusCode Trk::GeantFollowerHelper::initialize() m_validationTree->Branch("TrkStepLocX", m_treeData->m_trk_lx, "trkstepLX[g4steps]/F"); m_validationTree->Branch("TrkStepLocY", m_treeData->m_trk_ly, "trkstepLY[g4steps]/F"); - // initialize - m_treeData->m_t_x = 0.; - m_treeData->m_t_y = 0.; - m_treeData->m_t_z = 0.; - m_treeData->m_t_theta = 0.; - m_treeData->m_t_eta = 0.; - m_treeData->m_t_phi = 0.; - m_treeData->m_t_p = 0.; - m_treeData->m_t_charge = 0.; - m_treeData->m_t_pdg = 0; - m_treeData->m_g4_steps = 0; - // now register the Tree ITHistSvc* tHistSvc = 0; if (service("THistSvc",tHistSvc).isFailure()){ -- GitLab From 9c2b0c2a26b3a9cc601efe312dc24e0d1459912f Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Mon, 28 Jan 2019 10:19:50 +0100 Subject: [PATCH 160/192] Added a copyright message to each of the touched files in AsgTools. This is a long story, but the copyright messages were not added to the files of AsgTools when this package got included in branch 21.2 back in the day. So we should just add these one-by-one as we touch these files. --- Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h | 4 ++++ .../AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc | 9 +++++++++ .../AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h | 4 ++++ Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h | 4 ++++ .../AthToolSupport/AsgTools/AsgTools/MessagePrinter.h | 4 ++++ .../AsgTools/AsgTools/MessagePrinterErrorCollect.h | 4 ++++ .../AsgTools/AsgTools/MessagePrinterMock.h | 4 ++++ Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc | 4 +++- .../AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc | 4 +++- Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h | 4 +++- Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h | 4 ++++ Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx | 3 +++ Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx | 3 +++ .../AsgTools/Root/MessagePrinterErrorCollect.cxx | 3 +++ Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx | 4 +++- Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx | 4 +++- Control/AthToolSupport/AsgTools/Root/ToolStore.cxx | 4 +++- Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx | 3 +++ Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx | 3 +++ Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx | 3 +++ .../AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx | 3 +++ 21 files changed, 76 insertions(+), 6 deletions(-) diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h index eb2f2d7964b4..01f1ee11b473 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__ANA_TOOL_HANDLE_H #define ASG_TOOLS__ANA_TOOL_HANDLE_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc index 78fa035d6cae..6478617a39ec 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/AnaToolHandle.icc @@ -1,3 +1,10 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// +#ifndef ASGTOOLS_ANATOOLHANDLE_ICC +#define ASGTOOLS_ANATOOLHANDLE_ICC + #include <AsgTools/MessageCheck.h> #include <assert.h> #include <cstdlib> @@ -1345,3 +1352,5 @@ namespace asg m_allowEmpty = val_allowEmpty; } } + +#endif // ASGTOOLS_ANATOOLHANDLE_ICC diff --git a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h index 571b8f5532ae..d98e80b9e6c0 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/IMessagePrinter.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__I_MESSAGE_PRINTER_H #define ASG_TOOLS__I_MESSAGE_PRINTER_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h index 28930215163a..1bbc172acb58 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessageCheck.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__MESSAGE_CHECK_H #define ASG_TOOLS__MESSAGE_CHECK_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h index 55772a8198dd..c493b4a018f0 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinter.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__MESSAGE_PRINTER_H #define ASG_TOOLS__MESSAGE_PRINTER_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h index da907f91333d..94ab56ff211c 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterErrorCollect.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__MESSAGE_PRINTER_ERROR_COLLECT_H #define ASG_TOOLS__MESSAGE_PRINTER_ERROR_COLLECT_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h index 7f349d803bda..ccde2361c525 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/MessagePrinterMock.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__MESSAGE_PRINTER_MOCK_H #define ASG_TOOLS__MESSAGE_PRINTER_MOCK_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc index 74b12c3026ae..a58e14b52dd6 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEvent.icc @@ -1,5 +1,7 @@ // Dear emacs, this is -*- c++ -*- -// $Id: SgTEvent.icc 687011 2015-08-03 09:25:07Z krasznaa $ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASGTOOLS_SGTEVENT_ICC #define ASGTOOLS_SGTEVENT_ICC diff --git a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc index af80d9c9fe4c..4e2267549210 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/SgTEventMeta.icc @@ -1,5 +1,7 @@ // Dear emacs, this is -*- c++ -*- -// $Id: SgTEventMeta.icc 687011 2015-08-03 09:25:07Z krasznaa $ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASGTOOLS_SGTEVENTMETA_ICC #define ASGTOOLS_SGTEVENTMETA_ICC diff --git a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h index d35444ae2877..e8cabc345a87 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/ToolStore.h @@ -1,5 +1,7 @@ // Dear emacs, this is -*- c++ -*- -// $Id: ToolStore.h 802972 2017-04-15 18:13:17Z krumnack $ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASGTOOLS_TOOLSTORE_H #define ASGTOOLS_TOOLSTORE_H diff --git a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h index 89755ac0f7a3..c635bf01a8aa 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h +++ b/Control/AthToolSupport/AsgTools/AsgTools/UnitTest.h @@ -1,3 +1,7 @@ +// Dear emacs, this is -*- c++ -*- +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// #ifndef ASG_TOOLS__UNIT_TEST_H #define ASG_TOOLS__UNIT_TEST_H diff --git a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx index c90d7db649ce..de859d56b380 100644 --- a/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx +++ b/Control/AthToolSupport/AsgTools/Root/AnaToolHandle.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx index cab1e1ef544d..e68c52ad6716 100644 --- a/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx +++ b/Control/AthToolSupport/AsgTools/Root/MessageCheck.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx index de5af5e600cd..936c36843365 100644 --- a/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx +++ b/Control/AthToolSupport/AsgTools/Root/MessagePrinterErrorCollect.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx index dd3d5456dabf..59313943f31b 100644 --- a/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx +++ b/Control/AthToolSupport/AsgTools/Root/SgTEvent.cxx @@ -1,4 +1,6 @@ - +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // System include(s): #include <iostream> diff --git a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx index 3db8b6576a85..78ca53bccbb0 100644 --- a/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx +++ b/Control/AthToolSupport/AsgTools/Root/SgTEventMeta.cxx @@ -1,4 +1,6 @@ - +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // xAOD include(s): #ifdef XAOD_STANDALONE diff --git a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx index 4ab37b606823..a351eee15ee9 100644 --- a/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx +++ b/Control/AthToolSupport/AsgTools/Root/ToolStore.cxx @@ -1,4 +1,6 @@ -// $Id: ToolStore.cxx 802972 2017-04-15 18:13:17Z krumnack $ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // System include(s): #include <map> diff --git a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx index 990ea5b5d762..563631f0c5b8 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_AsgTool.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx index 17866d5b2134..cf7e9466ee02 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_MessageCheck.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx index 56d9b269e8da..6bfedb771259 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_TProperty.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. diff --git a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx index ff92d2cc24ed..fde3a3215128 100644 --- a/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx +++ b/Control/AthToolSupport/AsgTools/test/gt_UnitTest_test.cxx @@ -1,3 +1,6 @@ +// +// Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +// // // Author: Nils Krumnack // Distributed under the Boost Software License, Version 1.0. -- GitLab From 85ee17a92028a56cf00d8eeb244d2ffd8dbe7cb9 Mon Sep 17 00:00:00 2001 From: Miha Muskinja <miha.muskinja@cern.ch> Date: Mon, 28 Jan 2019 09:20:53 +0000 Subject: [PATCH 161/192] Do not set default values in initialize in GeantFollowerMSHelper.cxx because they are already set in BeginEvent. --- .../src/GeantFollowerMSHelper.cxx | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx index b40b928634e7..a41d6cd10877 100644 --- a/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx +++ b/Tracking/TrkG4Components/TrkG4UserActions/src/GeantFollowerMSHelper.cxx @@ -161,39 +161,6 @@ StatusCode Trk::GeantFollowerMSHelper::initialize() m_validationTree->Branch("TrkStepScatSigTheta", m_treeData->m_trk_ssigTheta, "trkscatSigTheta[trkscats]/F"); m_validationTree->Branch("TrkStepScatSigPhi", m_treeData->m_trk_ssigPhi, "trkscatSigPhi[trkscats]/F"); - // initialize - // - m_treeData->m_t_x = 0.; - m_treeData->m_t_y = 0.; - m_treeData->m_t_z = 0.; - m_treeData->m_t_theta = 0.; - m_treeData->m_t_eta = 0.; - m_treeData->m_t_phi = 0.; - m_treeData->m_t_p = 0.; - m_treeData->m_t_charge = 0.; - m_treeData->m_t_pdg = 0; - m_treeData->m_g4_steps = -1; - - m_treeData->m_m_x = 0.; - m_treeData->m_m_y = 0.; - m_treeData->m_m_z = 0.; - m_treeData->m_m_theta = 0.; - m_treeData->m_m_eta = 0.; - m_treeData->m_m_phi = 0.; - m_treeData->m_m_p = 0.; - - m_treeData->m_b_x = 0.; - m_treeData->m_b_y = 0.; - m_treeData->m_b_z = 0.; - m_treeData->m_b_theta = 0.; - m_treeData->m_b_eta = 0.; - m_treeData->m_b_phi = 0.; - m_treeData->m_b_p = 0.; - m_treeData->m_b_X0 = 0.; - m_treeData->m_b_Eloss = 0.; - - m_treeData->m_trk_scats = 0; - m_crossedMuonEntry = false; m_exitLayer = false; // now register the Tree -- GitLab From 761975a95775bd67588ed5cd7de3f317cf9dd569 Mon Sep 17 00:00:00 2001 From: Miha Muskinja <miha.muskinja@cern.ch> Date: Mon, 28 Jan 2019 09:24:44 +0000 Subject: [PATCH 162/192] Fixed year in copy right header. --- Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h b/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h index 6730902cf789..33939dca5563 100644 --- a/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h +++ b/Simulation/G4Utilities/G4UserActions/src/G4LooperThresholdSet.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef G4UserActions_LooperThresholdSet_H -- GitLab From e5989d34fc634d1836f67ad8369b99f9a402a301 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Fri, 11 Jan 2019 15:15:34 +0100 Subject: [PATCH 163/192] Migrate TRT_Digitization code to use IAtRNGSvc Additionally create all `CLHEP::HepRandomEngine` instances in `TRTDigitizationTool` and propagate them to the other classes in the package. This design isn't the nicest, but it makes it clear what is going on. Potentially the number of `CLHEP::HepRandomEngine` instances can be reduced in the future. Also drop random number service configuration from `CfgGetter` methods in `TRT_DigitizationConfig.py`. Increment `overlay-d1498-22.0` reference file to v2 in `RunTier0TestsTools.py`. --- .../python/TRT_DigitizationConfig.py | 18 ---- .../TRT_Digitization/src/TRTDigCondBase.cxx | 4 +- .../TRT_Digitization/src/TRTDigCondBase.h | 5 +- .../src/TRTDigCondFakeMap.cxx | 11 +-- .../TRT_Digitization/src/TRTDigCondFakeMap.h | 12 +-- .../src/TRTDigitizationTool.cxx | 98 +++++++++++-------- .../src/TRTDigitizationTool.h | 22 +++-- .../src/TRTElectronicsNoise.cxx | 29 +++--- .../src/TRTElectronicsNoise.h | 15 ++- .../src/TRTElectronicsProcessing.cxx | 12 +-- .../src/TRTElectronicsProcessing.h | 5 +- .../TRT_Digitization/src/TRTNoise.cxx | 48 +++++---- .../TRT_Digitization/src/TRTNoise.h | 19 +++- .../src/TRTProcessingOfStraw.cxx | 46 ++++----- .../src/TRTProcessingOfStraw.h | 17 ++-- Tools/PROCTools/python/RunTier0TestsTools.py | 2 +- 16 files changed, 193 insertions(+), 170 deletions(-) diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py index d03a56cd9263..7ce6272e8944 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py +++ b/InnerDetector/InDetDigitization/TRT_Digitization/python/TRT_DigitizationConfig.py @@ -49,24 +49,6 @@ def BasicTRTDigitizationTool(name, **kwargs): kwargs.setdefault("Override_jitterTimeOffset", 0.) kwargs.setdefault("Override_timeCorrection", 0) - #choose random number service - kwargs.setdefault("RndmSvc", digitizationFlags.rndmSvc() ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_DigitizationTool"): - digitizationFlags.rndmSeedList.addSeed( "TRT_DigitizationTool", 123456, 345123 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_ElectronicsNoise"): - digitizationFlags.rndmSeedList.addSeed( "TRT_ElectronicsNoise", 123, 345 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_Noise"): - digitizationFlags.rndmSeedList.addSeed( "TRT_Noise", 1234, 3456 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_ThresholdFluctuations"): - digitizationFlags.rndmSeedList.addSeed( "TRT_ThresholdFluctuations", 12345, 34567 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_ProcessStraw"): - digitizationFlags.rndmSeedList.addSeed( "TRT_ProcessStraw", 123456, 345678 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_PAI"): - digitizationFlags.rndmSeedList.addSeed( "TRT_PAI", 12345678, 34567890 ) - if not digitizationFlags.rndmSeedList.checkForExistingSeed("TRT_FakeConditions"): - digitizationFlags.rndmSeedList.addSeed( "TRT_FakeConditions", 123456789, 345678901 ) - #This last one should, however, never be changed (unless you want a different layout of noisy channels etc.): - if digitizationFlags.doXingByXingPileUp(): kwargs.setdefault("FirstXing", TRT_FirstXing()) kwargs.setdefault("LastXing", TRT_LastXing()) diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.cxx index 8d999c867eb2..51450fbb17d7 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.cxx @@ -61,7 +61,7 @@ float TRTDigCondBase::strawAverageNoiseLevel() const { } //________________________________________________________________________________ -void TRTDigCondBase::initialize() { +void TRTDigCondBase::initialize(CLHEP::HepRandomEngine* rndmEngine) { ATH_MSG_INFO ( "TRTDigCondBase::initialize()" ); @@ -109,7 +109,7 @@ void TRTDigCondBase::initialize() { //Get info about the straw conditions, then create and fill the strawstate double noiselevel, relative_noiseamplitude; - setStrawStateInfo( strawId, strawLength, noiselevel, relative_noiseamplitude ); + setStrawStateInfo( strawId, strawLength, noiselevel, relative_noiseamplitude, rndmEngine ); StrawState strawstate; strawstate.noiselevel = noiselevel; // same for all gas types strawstate.lowthreshold = ( !(hitid & 0x00200000) ) ? m_settings->lowThresholdBar(strawGasType) : m_settings->lowThresholdEC(strawGasType); diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.h index 29f0d1cede3d..d746613151d2 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondBase.h @@ -42,7 +42,7 @@ public: /** * @note Must be called exactly once before the class is used for anything. */ - void initialize(); + void initialize(CLHEP::HepRandomEngine* rndmEngine); /** Get average noise level in straw */ float strawAverageNoiseLevel() const; //[first time slow, else fast] @@ -138,7 +138,8 @@ public: virtual void setStrawStateInfo(Identifier& TRT_Identifier, const double& strawlength, double& noiselevel, - double& relative_noiseamplitude ) = 0; + double& relative_noiseamplitude, + CLHEP::HepRandomEngine *rndmEngine) = 0; protected: const TRTDigSettings* m_settings; diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.cxx index c2b87336b0b6..d6b974e34509 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.cxx @@ -8,7 +8,7 @@ // For the Athena-based random numbers. #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGaussZiggurat.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "CLHEP/Random/RandomEngine.h" // Units #include "CLHEP/Units/SystemOfUnits.h" @@ -22,7 +22,6 @@ //________________________________________________________________________________ TRTDigCondFakeMap::TRTDigCondFakeMap( const TRTDigSettings* digset, const InDetDD::TRT_DetectorManager* detmgr, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, const TRT_ID* trt_id, int UseGasMix, ServiceHandle<ITRT_StrawStatusSummarySvc> sumSvc @@ -30,7 +29,6 @@ TRTDigCondFakeMap::TRTDigCondFakeMap( const TRTDigSettings* digset, : TRTDigCondBase(digset, detmgr, trt_id, UseGasMix, sumSvc) { m_average_noiselevel = m_settings->averageNoiseLevel(); - m_pHRengine = atRndmGenSvc->GetEngine("TRT_FakeConditions"); } @@ -38,13 +36,14 @@ TRTDigCondFakeMap::TRTDigCondFakeMap( const TRTDigSettings* digset, void TRTDigCondFakeMap::setStrawStateInfo(Identifier& TRT_Identifier, const double& strawlength, double& noiselevel, - double& relative_noiseamplitude ) { + double& relative_noiseamplitude, + CLHEP::HepRandomEngine* rndmEngine) { noiselevel = m_average_noiselevel; // Not used here, but returned to caller // 5% relative fluctuation is hard-coded here - double relnoiseamp = CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 1.00, 0.05 ); - while (relnoiseamp < 0.10) { relnoiseamp = CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 1.00, 0.05 ); } + double relnoiseamp = CLHEP::RandGaussZiggurat::shoot(rndmEngine, 1.00, 0.05 ); + while (relnoiseamp < 0.10) { relnoiseamp = CLHEP::RandGaussZiggurat::shoot(rndmEngine, 1.00, 0.05 ); } // Anatoli says we need to scale the noise amplitude of Kr,Ar according to LT_(Kr,Ar)/LT_Xe int strawGasType = StrawGasType(TRT_Identifier); diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.h index 0d19bb7764a9..8495a5dc26fb 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigCondFakeMap.h @@ -7,8 +7,6 @@ #include "TRTDigCondBase.h" #include "CLHEP/Random/RandomEngine.h" -#include "GaudiKernel/ServiceHandle.h" -class IAtRndmGenSvc; /** * "Fake" straw map until "real" map is known. @@ -19,7 +17,6 @@ public: /** Constructor */ TRTDigCondFakeMap( const TRTDigSettings*, const InDetDD::TRT_DetectorManager*, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, const TRT_ID* trt_id, int UseGasMix, ServiceHandle<ITRT_StrawStatusSummarySvc> sumSvc @@ -28,14 +25,13 @@ public: protected: void setStrawStateInfo(Identifier& TRT_Identifier, - const double& strawlength, - double& noiselevel, - double& relative_noiseamplitude ); + const double& strawlength, + double& noiselevel, + double& relative_noiseamplitude, + CLHEP::HepRandomEngine *rndmEngine); private: - CLHEP::HepRandomEngine* m_pHRengine; - float m_average_noiselevel; /**< Average noise level */ }; diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.cxx index 98ddbd57957d..333f274f7f91 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -39,10 +39,6 @@ #include "InDetRawData/TRT_LoLumRawData.h" #include "InDetRawData/TRT_RDO_Collection.h" -// Other includes -#include "PileUpTools/PileUpMergeSvc.h" -#include "AthenaKernel/IAtRndmGenSvc.h" - // particle table #include "HepPDT/ParticleDataTable.hh" #include "GaudiKernel/IPartPropSvc.h" @@ -63,6 +59,9 @@ static constexpr unsigned int crazyParticleBarcode(std::numeric_limits<int32_t>::max()); //Barcodes at the HepMC level are int +// Random Number Generation +#include "AthenaKernel/RNGWrapper.h" +#include "CLHEP/Random/RandomEngine.h" #include "CLHEP/Random/RandGaussZiggurat.h" //#include "driftCircle.h" // local copy for debugging and development @@ -81,7 +80,6 @@ TRTDigitizationTool::TRTDigitizationTool(const std::string& type, m_pProcessingOfStraw(NULL), m_pDigConditions(NULL), m_pNoise(NULL), - m_atRndmGenSvc ("AtDSFMTGenSvc", name), m_TRTStrawNeighbourSvc("TRT_StrawNeighbourSvc",name), m_manager(NULL), m_trt_id(NULL), @@ -115,7 +113,6 @@ TRTDigitizationTool::TRTDigitizationTool(const std::string& type, declareProperty("PrintDigSettings", m_printUsedDigSettings = true, "Print ditigization settings" ); m_settings = new TRTDigSettings(); m_settings->addPropertiesForOverrideableParameters(static_cast<AlgTool*>(this)); - declareProperty("RndmSvc", m_atRndmGenSvc, "Random Number Service used in TRT digitization" ); declareProperty("TRT_StrawNeighbourSvc", m_TRTStrawNeighbourSvc); declareProperty("InDetTRTStrawStatusSummarySvc", m_sumSvc); declareProperty("UseGasMix", m_UseGasMix); @@ -198,12 +195,7 @@ StatusCode TRTDigitizationTool::initialize() ATH_CHECK(m_outputSDOCollName.initialize()); // Get Random Service - if (!m_atRndmGenSvc.retrieve().isSuccess()) { - ATH_MSG_FATAL ( "Could not initialize Random Number Service." ); - return StatusCode::FAILURE; - } - - m_pHRengine = m_atRndmGenSvc->GetEngine("TRT_DigitizationTool"); // For cosmic event phase + ATH_CHECK(m_rndmSvc.retrieve()); // Get the Particle Properties Service IPartPropSvc* p_PartPropSvc = 0; @@ -321,7 +313,10 @@ StatusCode TRTDigitizationTool::processBunchXing(int bunchXing, } //_____________________________________________________________________________ -StatusCode TRTDigitizationTool::lateInitialize() { +StatusCode TRTDigitizationTool::lateInitialize(CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine, + CLHEP::HepRandomEngine* fakeCondRndmEngine) { m_first_event=false; @@ -342,20 +337,19 @@ StatusCode TRTDigitizationTool::lateInitialize() { TRTElectronicsNoise *electronicsNoise(NULL); if ( m_settings->noiseInUnhitStraws() || m_settings->noiseInSimhits() ) { - electronicsNoise = new TRTElectronicsNoise(m_settings, m_atRndmGenSvc); + electronicsNoise = new TRTElectronicsNoise(m_settings, elecNoiseRndmEngine); } // ElectronicsProcessing is needed for the regular straw processing, // but also for the noise (it assumes ownership of electronicsnoise ) - m_pElectronicsProcessing = new TRTElectronicsProcessing( m_settings, m_atRndmGenSvc, electronicsNoise ); + m_pElectronicsProcessing = new TRTElectronicsProcessing( m_settings, electronicsNoise ); m_pDigConditions = new TRTDigCondFakeMap(m_settings, m_manager, - m_atRndmGenSvc, m_trt_id, m_UseGasMix, m_sumSvc); - m_pDigConditions->initialize(); + m_pDigConditions->initialize(fakeCondRndmEngine); if ( m_settings->noiseInUnhitStraws() || m_settings->noiseInSimhits() ) { @@ -366,7 +360,9 @@ StatusCode TRTDigitizationTool::lateInitialize() { // straw noise-frequencies: m_pNoise = new TRTNoise( m_settings, m_manager, - m_atRndmGenSvc, + noiseRndmEngine, + elecNoiseRndmEngine, + elecProcRndmEngine, m_pDigConditions, m_pElectronicsProcessing, electronicsNoise, @@ -391,7 +387,6 @@ StatusCode TRTDigitizationTool::lateInitialize() { m_manager, TRTpaiToolXe, pTRTsimdrifttimetool, - m_atRndmGenSvc, m_pElectronicsProcessing, m_pNoise, m_pDigConditions, @@ -406,7 +401,11 @@ StatusCode TRTDigitizationTool::lateInitialize() { } //_____________________________________________________________________________ -StatusCode TRTDigitizationTool::processStraws(std::set<int>& sim_hitids, std::set<Identifier>& simhitsIdentifiers) { +StatusCode TRTDigitizationTool::processStraws(std::set<int>& sim_hitids, std::set<Identifier>& simhitsIdentifiers, + CLHEP::HepRandomEngine *rndmEngine, + CLHEP::HepRandomEngine *strawRndmEngine, + CLHEP::HepRandomEngine *elecProcRndmEngine, + CLHEP::HepRandomEngine *elecNoiseRndmEngine) { // Create a map for the SDO SG::WriteHandle<InDetSimDataCollection> simDataMap(m_outputSDOCollName); @@ -423,7 +422,7 @@ StatusCode TRTDigitizationTool::processStraws(std::set<int>& sim_hitids, std::se m_cosmicEventPhase = 0.0; if (m_settings->doCosmicTimingPit()) { - m_cosmicEventPhase = getCosmicEventPhase(); + m_cosmicEventPhase = getCosmicEventPhase(rndmEngine); }; // Create a vector of deposits @@ -508,7 +507,10 @@ StatusCode TRTDigitizationTool::processStraws(std::set<int>& sim_hitids, std::se m_cosmicEventPhase, //m_ComTime, StrawGasType(idStraw), emulateArFlag, - emulateKrFlag); + emulateKrFlag, + strawRndmEngine, + elecProcRndmEngine, + elecNoiseRndmEngine); // Print out the digits etc (for debugging) //int mstrw = digit_straw.GetStrawID(); @@ -531,8 +533,16 @@ StatusCode TRTDigitizationTool::processStraws(std::set<int>& sim_hitids, std::se //_____________________________________________________________________________ StatusCode TRTDigitizationTool::processAllSubEvents() { + // Set the RNGs to use for this event. + CLHEP::HepRandomEngine *rndmEngine = getRandomEngine(""); + CLHEP::HepRandomEngine *fakeCondRndmEngine = getRandomEngine("TRT_FakeConditions"); + CLHEP::HepRandomEngine *elecNoiseRndmEngine = getRandomEngine("TRT_ElectronicsNoise"); + CLHEP::HepRandomEngine *noiseRndmEngine = getRandomEngine("TRT_Noise"); + CLHEP::HepRandomEngine *strawRndmEngine = getRandomEngine("TRT_ProcessStraw"); + CLHEP::HepRandomEngine *elecProcRndmEngine = getRandomEngine("TRT_ThresholdFluctuations"); + if (m_first_event) { - if(this->lateInitialize().isFailure()) { + if(this->lateInitialize(noiseRndmEngine,elecNoiseRndmEngine,elecProcRndmEngine,fakeCondRndmEngine).isFailure()) { ATH_MSG_FATAL ( "lateInitialize method failed!" ); return StatusCode::FAILURE; } @@ -593,10 +603,7 @@ StatusCode TRTDigitizationTool::processAllSubEvents() { m_thpctrt = &thpctrt; // Process the Hits straw by straw: get the iterator pairs for given straw - if(this->processStraws(sim_hitids, simhitsIdentifiers).isFailure()) { - ATH_MSG_FATAL ( "processStraws method failed!" ); - return StatusCode::FAILURE; - } + ATH_CHECK(this->processStraws(sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine)); // no more hits @@ -604,9 +611,9 @@ StatusCode TRTDigitizationTool::processAllSubEvents() { if (m_settings->noiseInUnhitStraws()) { const int numberOfDigitsBeforeNoise(m_vDigits.size()); - m_pNoise->appendPureNoiseToProperDigits(m_vDigits, sim_hitids); + m_pNoise->appendPureNoiseToProperDigits(m_vDigits, sim_hitids, noiseRndmEngine); if (m_settings->doCrosstalk()) { - m_pNoise->appendCrossTalkNoiseToProperDigits(m_vDigits, simhitsIdentifiers,m_TRTStrawNeighbourSvc); + m_pNoise->appendCrossTalkNoiseToProperDigits(m_vDigits, simhitsIdentifiers,m_TRTStrawNeighbourSvc, noiseRndmEngine); } ATH_MSG_DEBUG ( " Number of digits " << m_vDigits.size() << " (" << m_vDigits.size()-numberOfDigitsBeforeNoise << " of those are pure noise)" ); @@ -631,6 +638,14 @@ StatusCode TRTDigitizationTool::processAllSubEvents() { return StatusCode::SUCCESS; } +CLHEP::HepRandomEngine* TRTDigitizationTool::getRandomEngine(const std::string& streamName) const +{ + ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, streamName); + std::string rngName = name()+streamName; + rngWrapper->setSeed( rngName, Gaudi::Hive::currentContext() ); + return *rngWrapper; +} + //_____________________________________________________________________________ StatusCode TRTDigitizationTool::mergeEvent() { std::vector<std::pair<unsigned int, int> >::iterator ii(m_seen.begin()); @@ -640,8 +655,16 @@ StatusCode TRTDigitizationTool::mergeEvent() { ++ii; } + // Set the RNGs to use for this event. + CLHEP::HepRandomEngine *rndmEngine = getRandomEngine(""); + CLHEP::HepRandomEngine *fakeCondRndmEngine = getRandomEngine("TRT_FakeConditions"); + CLHEP::HepRandomEngine *elecNoiseRndmEngine = getRandomEngine("TRT_ElectronicsNoise"); + CLHEP::HepRandomEngine *noiseRndmEngine = getRandomEngine("TRT_Noise"); + CLHEP::HepRandomEngine *strawRndmEngine = getRandomEngine("TRT_ProcessStraw"); + CLHEP::HepRandomEngine *elecProcRndmEngine = getRandomEngine("TRT_ThresholdFluctuations"); + if (m_first_event) { - if(this->lateInitialize().isFailure()) { + if(this->lateInitialize(noiseRndmEngine,elecNoiseRndmEngine,elecProcRndmEngine,fakeCondRndmEngine).isFailure()) { ATH_MSG_FATAL ( "lateInitialize method failed!" ); return StatusCode::FAILURE; } @@ -667,10 +690,7 @@ StatusCode TRTDigitizationTool::mergeEvent() { // Process the Hits straw by straw: // get the iterator pairs for given straw - if(this->processStraws(sim_hitids, simhitsIdentifiers).isFailure()) { - ATH_MSG_FATAL ( "processStraws method failed!" ); - return StatusCode::FAILURE; - } + ATH_CHECK(this->processStraws(sim_hitids, simhitsIdentifiers, rndmEngine, strawRndmEngine, elecProcRndmEngine, elecNoiseRndmEngine)); delete m_thpctrt; std::list<TRTUncompressedHitCollection*>::iterator trtHitColl(m_trtHitCollList.begin()); @@ -687,9 +707,9 @@ StatusCode TRTDigitizationTool::mergeEvent() { if (m_settings->noiseInUnhitStraws()) { const unsigned int numberOfDigitsBeforeNoise(m_vDigits.size()); - m_pNoise->appendPureNoiseToProperDigits(m_vDigits, sim_hitids); + m_pNoise->appendPureNoiseToProperDigits(m_vDigits, sim_hitids, noiseRndmEngine); if (m_settings->doCrosstalk()) { - m_pNoise->appendCrossTalkNoiseToProperDigits(m_vDigits, simhitsIdentifiers,m_TRTStrawNeighbourSvc); + m_pNoise->appendCrossTalkNoiseToProperDigits(m_vDigits, simhitsIdentifiers,m_TRTStrawNeighbourSvc, noiseRndmEngine); } ATH_MSG_DEBUG ( " Number of digits " << m_vDigits.size() << " (" << m_vDigits.size()-numberOfDigitsBeforeNoise << " of those are pure noise)" ); @@ -978,9 +998,9 @@ unsigned int TRTDigitizationTool::getRegion(int hitID) { } -double TRTDigitizationTool::getCosmicEventPhase() { +double TRTDigitizationTool::getCosmicEventPhase(CLHEP::HepRandomEngine *rndmEngine) { // 13th February 2015: replace ComTime with a hack (fixme) based on an // event phase distribution from Alex (alejandro.alonso@cern.ch) that // is modelled as a Guassian of mean 5.48 ns and sigma 8.91 ns. - return CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 5.48, 8.91); + return CLHEP::RandGaussZiggurat::shoot(rndmEngine, 5.48, 8.91); } diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.h index 9297d7656014..9d82a2936f2e 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTDigitizationTool.h @@ -12,6 +12,8 @@ #include "xAODEventInfo/EventInfo.h" /*SubEvent*/ #include "PileUpTools/PileUpToolBase.h" +#include "AthenaKernel/IAthRNGSvc.h" +#include "PileUpTools/PileUpMergeSvc.h" #include "TRTDigit.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" @@ -25,10 +27,8 @@ #include <set> #include <utility> /* pair */ -class PileUpMergeSvc; class ITRT_PAITool; class ITRT_SimDriftTimeTool; -class IAtRndmGenSvc; class TRT_ID; class TRTProcessingOfStraw; class TRTElectronicsProcessing; @@ -94,8 +94,7 @@ public: StatusCode finalize(); private: - - CLHEP::HepRandomEngine * m_pHRengine; + CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName) const; Identifier getIdentifier( int hitID, IdentifierHash& hashId, @@ -105,15 +104,22 @@ private: StatusCode update( IOVSVC_CALLBACK_ARGS ); // Update of database entries. StatusCode ConditionsDependingInitialization(); - StatusCode lateInitialize(); - StatusCode processStraws(std::set<int>& sim_hitids, std::set<Identifier>& simhitsIdentifiers); + StatusCode lateInitialize(CLHEP::HepRandomEngine *noiseRndmEngine, + CLHEP::HepRandomEngine *elecNoiseRndmEngine, + CLHEP::HepRandomEngine *elecProcRndmEngine, + CLHEP::HepRandomEngine *fakeCondRndmEngine); + StatusCode processStraws(std::set<int>& sim_hitids, std::set<Identifier>& simhitsIdentifiers, + CLHEP::HepRandomEngine *rndmEngine, + CLHEP::HepRandomEngine *strawRndmEngine, + CLHEP::HepRandomEngine *elecProcRndmEngine, + CLHEP::HepRandomEngine *elecNoiseRndmEngine); StatusCode createAndStoreRDOs(); // The straw's gas mix: 1=Xe, 2=Kr, 3=Ar int StrawGasType(Identifier& TRT_Identifier) const; unsigned int getRegion(int hitID); - double getCosmicEventPhase(); + double getCosmicEventPhase(CLHEP::HepRandomEngine *rndmEngine); std::vector<std::pair<unsigned int, int> > m_seen; std::vector<TRTDigit> m_vDigits; /**< Vector of all digits */ @@ -136,7 +142,7 @@ private: TRTNoise* m_pNoise; //unsigned int m_timer_eventcount; - ServiceHandle <IAtRndmGenSvc> m_atRndmGenSvc; /**< Random number service */ + ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", ""}; //!< Random number service ServiceHandle<ITRT_StrawNeighbourSvc> m_TRTStrawNeighbourSvc; const InDetDD::TRT_DetectorManager* m_manager; diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.cxx index f46502834fed..4864549b4149 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.cxx @@ -9,7 +9,7 @@ // For the Athena-based random numbers. #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGaussZiggurat.h" -#include "AthenaKernel/IAtRndmGenSvc.h" +#include "CLHEP/Random/RandomEngine.h" #include "TRTDigSettings.h" @@ -18,7 +18,7 @@ //_____________________________________________________________________________ TRTElectronicsNoise::TRTElectronicsNoise(const TRTDigSettings* digset, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc ) + CLHEP::HepRandomEngine *elecNoiseRndmEngine ) : m_settings(digset), m_msg("TRTElectronicsNoise") { @@ -27,10 +27,9 @@ TRTElectronicsNoise::TRTElectronicsNoise(const TRTDigSettings* digset, //Need to initialize the signal shaping first as it is used in tabulateNoiseSignalShape()! this->InitializeNoiseShaping(); - m_pHRengine = atRndmGenSvc->GetEngine("TRT_ElectronicsNoise"); m_fractionOfSlowNoise = m_settings->slowPeriodicNoisePulseFraction(); this->tabulateNoiseSignalShape(); - this->reinitElectronicsNoise(200); + this->reinitElectronicsNoise(200, elecNoiseRndmEngine); const double slowPeriod(m_settings->slowPeriodicNoisePulseDistance()); //Must be rounded to nearest multiple of binwidth... (fixme - from options) @@ -46,7 +45,7 @@ TRTElectronicsNoise::~TRTElectronicsNoise(){} //_____________________________________________________________________________ void TRTElectronicsNoise::getSamplesOfMaxLTOverNoiseAmp(std::vector<float>& maxLTOverNoiseAmp, - unsigned long nsamplings) { + unsigned long nsamplings, CLHEP::HepRandomEngine* rndmEngine) { // Note: The offset structure is not the same as in // addElectronicsNoise(), but that is OK, since it is not the exact @@ -55,7 +54,7 @@ void TRTElectronicsNoise::getSamplesOfMaxLTOverNoiseAmp(std::vector<float>& maxL maxLTOverNoiseAmp.resize(nsamplings); - reinitElectronicsNoise(500); + reinitElectronicsNoise(500, rndmEngine); unsigned int index = m_noiseSignalShape.size(); unsigned int nbinsinperiod = m_settings->numberOfBins(); unsigned int maxindex = m_cachedFastNoiseAfterSignalShaping.size() - nbinsinperiod; @@ -64,7 +63,7 @@ void TRTElectronicsNoise::getSamplesOfMaxLTOverNoiseAmp(std::vector<float>& maxL maxLTOverNoiseAmp[i] = getMax(index, index, nbinsinperiod ); index += nbinsinperiod; if ( index > maxindex ) { - reinitElectronicsNoise(500); + reinitElectronicsNoise(500, rndmEngine); index = m_noiseSignalShape.size(); } } @@ -93,7 +92,8 @@ double TRTElectronicsNoise::getMax(unsigned int firstbinslowsignal, } //_____________________________________________________________________________ -void TRTElectronicsNoise::reinitElectronicsNoise(const unsigned int& numberOfDigitLengths /*number of 75ns timeslices*/) +void TRTElectronicsNoise::reinitElectronicsNoise(const unsigned int& numberOfDigitLengths /*number of 75ns timeslices*/, + CLHEP::HepRandomEngine* rndmEngine) { //This method gives the actual physics shape! //Model parameters: @@ -130,7 +130,7 @@ void TRTElectronicsNoise::reinitElectronicsNoise(const unsigned int& numberOfDig while ( true ) { binindex = static_cast<unsigned int>(timeOfNextPulse*invbinwidth); if (binindex >= nbins) break; - m_tmpArray[binindex] += CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 0., 1.); + m_tmpArray[binindex] += CLHEP::RandGaussZiggurat::shoot(rndmEngine, 0., 1.); timeOfNextPulse += fastPeriod; }; @@ -155,7 +155,7 @@ void TRTElectronicsNoise::reinitElectronicsNoise(const unsigned int& numberOfDig while (true) { binindex = static_cast<unsigned int>(timeOfNextPulse*invbinwidth); if (binindex >= nbins) break; - m_tmpArray[binindex] += CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 0., 1.); + m_tmpArray[binindex] += CLHEP::RandGaussZiggurat::shoot(rndmEngine, 0., 1.); timeOfNextPulse += slowPeriod; }; @@ -202,7 +202,8 @@ void TRTElectronicsNoise::tabulateNoiseSignalShape() { //_____________________________________________________________________________ void TRTElectronicsNoise::addElectronicsNoise(std::vector<double>& signal, - const double& noiseamplitude) { + const double& noiseamplitude, + CLHEP::HepRandomEngine *rndmEngine) { // complain if uninitialized? (fixme) @@ -223,10 +224,10 @@ void TRTElectronicsNoise::addElectronicsNoise(std::vector<double>& signal, //Find array offset for fast signal: const unsigned int nsignalbins(signal.size()); - const unsigned int offset_fast(CLHEP::RandFlat::shootInt(m_pHRengine, m_cachedFastNoiseAfterSignalShaping.size()-nsignalbins)); + const unsigned int offset_fast(CLHEP::RandFlat::shootInt(rndmEngine, m_cachedFastNoiseAfterSignalShaping.size()-nsignalbins)); //Find array offset for slow periodic signal: - int offset_slowperiodic(CLHEP::RandFlat::shootInt(m_pHRengine, + int offset_slowperiodic(CLHEP::RandFlat::shootInt(rndmEngine, m_cachedSlowNoiseAfterSignalShaping.size() - nsignalbins-n_slowperiodic_shift - slowperiodic_constshift)); @@ -234,7 +235,7 @@ void TRTElectronicsNoise::addElectronicsNoise(std::vector<double>& signal, offset_slowperiodic -= ( offset_slowperiodic % m_nbins_periodic ); offset_slowperiodic -= slowperiodic_constshift; - const double rand(CLHEP::RandFlat::shoot(m_pHRengine, 0., 1.)); + const double rand(CLHEP::RandFlat::shoot(rndmEngine, 0., 1.)); for (unsigned int i(0); i < n_slowperiodic_shift; ++i) { if ( rand < slowperiodic_shift_prob_comul[i] ) { offset_slowperiodic -= i; diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.h index 9892b2fe58b6..2962909ed65c 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsNoise.h @@ -6,11 +6,9 @@ #define TRTELECTRONICSNOISE_H #include <vector> -#include "GaudiKernel/ServiceHandle.h" #include "AthenaKernel/MsgStreamMember.h" -class IAtRndmGenSvc; #include "CLHEP/Random/RandomEngine.h" class TRTDigSettings; @@ -25,7 +23,7 @@ public: * Constructor: Calls tabulateNoiseSignalShape() */ TRTElectronicsNoise( const TRTDigSettings*, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc ); + CLHEP::HepRandomEngine *rndmEngine ); /** Destructor */ ~TRTElectronicsNoise(); @@ -43,7 +41,8 @@ public: bool msgLevel (MSG::Level lvl) { return m_msg.get().level() <= lvl; } void getSamplesOfMaxLTOverNoiseAmp(std::vector<float>& maxLTOverNoiseAmp, - unsigned long nsamplings); + unsigned long nsamplings, + CLHEP::HepRandomEngine *rndmEngine); /** * Re-initialize electronics noise table. @@ -62,7 +61,8 @@ public: * noise for */ void reinitElectronicsNoise(const unsigned int& numberOfDigitLengths - /*number of 75ns timeslices*/ ); + /*number of 75ns timeslices*/, + CLHEP::HepRandomEngine *rndmEngine); /** Set electronics noise amplitude */ void setElectronicsNoiseAmplitude(const double&); @@ -76,14 +76,13 @@ public: * @param noiseamplitude: noise amplitude */ void addElectronicsNoise(std::vector<double>& signal, - const double& noiseamplitude /*= 1.0*/ ); + const double& noiseamplitude /*= 1.0*/, + CLHEP::HepRandomEngine *rndmEngine); private: const TRTDigSettings* m_settings; - CLHEP::HepRandomEngine * m_pHRengine; - /** * Tabulate noise signal shape. Extract signal shape from NoiseShape(time) * function and store in table. diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.cxx index 13ffce949798..70e8fee0b204 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.cxx @@ -7,9 +7,9 @@ #include "TRTElectronicsNoise.h" #include "TRTDigit.h" -#include "AthenaKernel/IAtRndmGenSvc.h" #include "CLHEP/Random/RandGaussZiggurat.h" #include "CLHEP/Random/RandFlat.h" +#include "CLHEP/Random/RandomEngine.h" #include "TRTDigSettings.h" @@ -18,14 +18,12 @@ //___________________________________________________________________________ TRTElectronicsProcessing::TRTElectronicsProcessing( const TRTDigSettings* digset, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, TRTElectronicsNoise * electronicsnoise ) : m_settings(digset), m_pElectronicsNoise(electronicsnoise), m_msg("TRTElectronicsProcessing") { if (msgLevel(MSG::VERBOSE)) msg(MSG::VERBOSE) <<"TRTElectronicsProcessing::Constructor begin" << endmsg; - m_pHRengine = atRndmGenSvc->GetEngine("TRT_ThresholdFluctuations"); Initialize(); if (msgLevel(MSG::VERBOSE)) msg(MSG::VERBOSE) <<"TRTElectronicsProcessing::Constructor done" << endmsg; } @@ -221,6 +219,8 @@ void TRTElectronicsProcessing::ProcessDeposits( const std::vector<TRTElectronics double lowthreshold, const double& noiseamplitude, int strawGasType, + CLHEP::HepRandomEngine* rndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, double highthreshold ) { //////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -245,11 +245,11 @@ void TRTElectronicsProcessing::ProcessDeposits( const std::vector<TRTElectronics const double low_threshold_fluctuation(m_settings->relativeLowThresholdFluctuation()); if ( low_threshold_fluctuation > 0 ) { - lowthreshold = lowthreshold*CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 1.0, low_threshold_fluctuation ); + lowthreshold = lowthreshold*CLHEP::RandGaussZiggurat::shoot(rndmEngine, 1.0, low_threshold_fluctuation ); } const double high_threshold_fluctuation(m_settings->relativeHighThresholdFluctuation()); if ( high_threshold_fluctuation > 0 ) { - highthreshold = highthreshold*CLHEP::RandGaussZiggurat::shoot(m_pHRengine, 1.0, high_threshold_fluctuation ); + highthreshold = highthreshold*CLHEP::RandGaussZiggurat::shoot(rndmEngine, 1.0, high_threshold_fluctuation ); } //Null out arrays: m_totalNumberOfBins=160(125ns) @@ -278,7 +278,7 @@ void TRTElectronicsProcessing::ProcessDeposits( const std::vector<TRTElectronics // Add noise; LT only // (though both LT and HT also get fluctuations elsewhere which gives similar effect to noise). if ( m_pElectronicsNoise && noiseamplitude>0 ) { - m_pElectronicsNoise->addElectronicsNoise(m_lowThresholdSignal,noiseamplitude); // LT signal only + m_pElectronicsNoise->addElectronicsNoise(m_lowThresholdSignal,noiseamplitude, elecNoiseRndmEngine); // LT signal only } // Discriminator response (in what fine time bins are the thresholds exceeded) diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.h index edea73cc39c2..d9cc5382db20 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTElectronicsProcessing.h @@ -9,7 +9,6 @@ class TRTDigit; class TRTElectronicsNoise; -class IAtRndmGenSvc; #include "CLHEP/Random/RandomEngine.h" #include "GaudiKernel/ServiceHandle.h" #include "AthenaKernel/MsgStreamMember.h" @@ -22,7 +21,6 @@ class TRTDigSettings; class TRTElectronicsProcessing { public: TRTElectronicsProcessing( const TRTDigSettings* digset, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, TRTElectronicsNoise * electronicsnoise ); ~TRTElectronicsProcessing(); @@ -69,6 +67,8 @@ public: double lowthreshold, const double& noiseamplitude, int strawGasType, + CLHEP::HepRandomEngine* rndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, double highthreshold = -1.0 ); @@ -129,7 +129,6 @@ private: const TRTDigSettings* m_settings; TRTElectronicsNoise * m_pElectronicsNoise; - CLHEP::HepRandomEngine * m_pHRengine; double m_timeInterval; /**< Time interval covered by digit [75 ns] */ diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.cxx index 2903ca5e000c..0d5c6d084de8 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.cxx @@ -33,7 +33,9 @@ struct TRTDigitSorter { //_____________________________________________________________________________ TRTNoise::TRTNoise( const TRTDigSettings* digset, const InDetDD::TRT_DetectorManager* detmgr, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, + CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine, TRTDigCondBase* digcond, TRTElectronicsProcessing * ep, TRTElectronicsNoise * electronicsnoise, @@ -54,9 +56,8 @@ TRTNoise::TRTNoise( const TRTDigSettings* digset, m_sumSvc(sumSvc) { if (msgLevel(MSG::VERBOSE)) { msg(MSG::VERBOSE) << "TRTNoise::Constructor begin" << endmsg; } - m_noise_randengine = atRndmGenSvc->GetEngine("TRT_Noise"); - InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool(); - if ( m_settings->noiseInSimhits() ) m_pElectronicsNoise->reinitElectronicsNoise( 1000 ); + InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool(noiseRndmEngine,elecNoiseRndmEngine,elecProcRndmEngine); + if ( m_settings->noiseInSimhits() ) m_pElectronicsNoise->reinitElectronicsNoise( 1000, elecNoiseRndmEngine ); if (msgLevel(MSG::VERBOSE)) { msg(MSG::VERBOSE) << "Constructor done" << endmsg; } } @@ -67,7 +68,9 @@ TRTNoise::~TRTNoise() { } //_____________________________________________________________________________ -void TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool() { +void TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool(CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine) { ///////////////////////////////////////////////////////////////////// //Strategy: // @@ -98,7 +101,7 @@ void TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool() { /////////////////////////////////////////////////////////////////// // According to Anatoli, the noise shaping function is not very different for Argon and Xenon(and Krypton). std::vector<float> maxLTOverNoiseAmp; - m_pElectronicsNoise->getSamplesOfMaxLTOverNoiseAmp(maxLTOverNoiseAmp,10000); + m_pElectronicsNoise->getSamplesOfMaxLTOverNoiseAmp(maxLTOverNoiseAmp,10000,elecNoiseRndmEngine); std::stable_sort( maxLTOverNoiseAmp.begin(), maxLTOverNoiseAmp.end() ); reverse( maxLTOverNoiseAmp.begin(), maxLTOverNoiseAmp.end() ); @@ -259,7 +262,7 @@ void TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool() { // Step 4 - Produce pool of pure noise digits // /////////////////////////////////////////////////////////////////// if ( m_settings->noiseInUnhitStraws() ) { - ProduceNoiseDigitPool( actual_LTs, actual_noiseamps, strawTypes ); + ProduceNoiseDigitPool( actual_LTs, actual_noiseamps, strawTypes, noiseRndmEngine, elecNoiseRndmEngine, elecProcRndmEngine ); } if (msgLevel(MSG::VERBOSE)) { msg(MSG::VERBOSE) << "TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool Done" << endmsg; @@ -270,7 +273,10 @@ void TRTNoise::InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool() { //_____________________________________________________________________________ void TRTNoise::ProduceNoiseDigitPool( const std::vector<float>& lowthresholds, const std::vector<float>& noiseamps, - const std::vector<int>& strawType ) { + const std::vector<int>& strawType, + CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine) { unsigned int nstraw = lowthresholds.size(); unsigned int istraw; @@ -291,14 +297,14 @@ void TRTNoise::ProduceNoiseDigitPool( const std::vector<float>& lowthresholds, // These are used as inputs to TRTElectronicsProcessing::ProcessDeposits // to create noise digits if ( ntries%400==0 ) { - m_pElectronicsNoise->reinitElectronicsNoise(200); + m_pElectronicsNoise->reinitElectronicsNoise(200, elecNoiseRndmEngine); } // Initialize stuff (is that necessary)? digit = TRTDigit(); deposits.clear(); // Choose straw to simulate - istraw = CLHEP::RandFlat::shootInt(m_noise_randengine, nstraw ); + istraw = CLHEP::RandFlat::shootInt(noiseRndmEngine, nstraw ); // Process deposits this straw. Since there are no deposits, only noise will contrinute m_pElectronicsProcessing->ProcessDeposits( deposits, @@ -306,7 +312,9 @@ void TRTNoise::ProduceNoiseDigitPool( const std::vector<float>& lowthresholds, digit, lowthresholds.at(istraw), noiseamps.at(istraw), - strawType.at(istraw) + strawType.at(istraw), + elecProcRndmEngine, + elecNoiseRndmEngine ); // If this process produced a digit, store in pool @@ -331,7 +339,8 @@ void TRTNoise::ProduceNoiseDigitPool( const std::vector<float>& lowthresholds, } //_____________________________________________________________________________ -void TRTNoise::appendPureNoiseToProperDigits( std::vector<TRTDigit>& digitVect, const std::set<int>& sim_hitids ) +void TRTNoise::appendPureNoiseToProperDigits( std::vector<TRTDigit>& digitVect, const std::set<int>& sim_hitids, + CLHEP::HepRandomEngine* noiseRndmEngine ) { const std::set<int>::const_iterator sim_hitids_end(sim_hitids.end()); @@ -340,11 +349,11 @@ void TRTNoise::appendPureNoiseToProperDigits( std::vector<TRTDigit>& digitVect, int hitid; float noiselevel; - while (m_pDigConditions->getNextNoisyStraw(m_noise_randengine,hitid,noiselevel) ) { + while (m_pDigConditions->getNextNoisyStraw(noiseRndmEngine,hitid,noiselevel) ) { //returned noiselevel not used for anything right now (fixme?). // If this strawID does not have a sim_hit, add a pure noise digit if ( sim_hitids.find(hitid) == sim_hitids_end ) { - const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(m_noise_randengine,m_digitPoolLength)]); + const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(noiseRndmEngine,m_digitPoolLength)]); digitVect.push_back(TRTDigit(hitid,ndigit)); } }; @@ -358,7 +367,8 @@ void TRTNoise::appendPureNoiseToProperDigits( std::vector<TRTDigit>& digitVect, void TRTNoise::appendCrossTalkNoiseToProperDigits(std::vector<TRTDigit>& digitVect, const std::set<Identifier>& simhitsIdentifiers, - ServiceHandle<ITRT_StrawNeighbourSvc> TRTStrawNeighbourSvc) { + ServiceHandle<ITRT_StrawNeighbourSvc> TRTStrawNeighbourSvc, + CLHEP::HepRandomEngine* noiseRndmEngine) { //id helper: TRTHitIdHelper* hitid_helper = TRTHitIdHelper::GetHelper(); @@ -388,8 +398,8 @@ void TRTNoise::appendCrossTalkNoiseToProperDigits(std::vector<TRTDigit>& digitVe for (unsigned int i=0;i<CrossTalkIds.size();++i) { if ( simhitsIdentifiers.find(CrossTalkIds[i]) == simhitsIdentifiers_end ) { - if (m_pDigConditions->crossTalkNoise(m_noise_randengine)==1 ) { - const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(m_noise_randengine, + if (m_pDigConditions->crossTalkNoise(noiseRndmEngine)==1 ) { + const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(noiseRndmEngine, m_digitPoolLength)]); int barrel_endcap, isneg; switch ( m_id_helper->barrel_ec(CrossTalkIds[i]) ) { @@ -414,9 +424,9 @@ void TRTNoise::appendCrossTalkNoiseToProperDigits(std::vector<TRTDigit>& digitVe for (unsigned int i=0;i<CrossTalkIdsOtherEnd.size();++i) { if ( simhitsIdentifiers.find(CrossTalkIdsOtherEnd[i]) == simhitsIdentifiers_end ) { - if (m_pDigConditions->crossTalkNoiseOtherEnd(m_noise_randengine)==1 ) { + if (m_pDigConditions->crossTalkNoiseOtherEnd(noiseRndmEngine)==1 ) { - const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(m_noise_randengine,m_digitPoolLength)]); + const int ndigit(m_digitPool[CLHEP::RandFlat::shootInt(noiseRndmEngine,m_digitPoolLength)]); int barrel_endcap, isneg; switch ( m_id_helper->barrel_ec(CrossTalkIdsOtherEnd[i]) ) { diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.h index 20d854e9640f..422a04b03c6c 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTNoise.h @@ -42,7 +42,9 @@ public: */ TRTNoise( const TRTDigSettings*, const InDetDD::TRT_DetectorManager*, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, + CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine, TRTDigCondBase* digcond, TRTElectronicsProcessing * ep, TRTElectronicsNoise * electronicsnoise, @@ -63,12 +65,14 @@ public: * noise digit to already hit straw. */ void appendPureNoiseToProperDigits( std::vector<TRTDigit>& digitVect, - const std::set<int>& sim_hitids) ; + const std::set<int>& sim_hitids, + CLHEP::HepRandomEngine* noiseRndmEngine) ; void appendCrossTalkNoiseToProperDigits(std::vector<TRTDigit>& digitVect, const std::set<Identifier>& simhitsIdentifiers, - ServiceHandle<ITRT_StrawNeighbourSvc> m_TRTStrawNeighbourSvc); + ServiceHandle<ITRT_StrawNeighbourSvc> m_TRTStrawNeighbourSvc, + CLHEP::HepRandomEngine* noiseRndmEngine); void sortDigits(std::vector<TRTDigit>& digitVect); @@ -109,7 +113,9 @@ public: * -# Call method @c ProduceNoiseDigitPool to produce pool of pure noise * digits */ - void InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool(); + void InitThresholdsAndNoiseAmplitudes_and_ProduceNoiseDigitPool(CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine); /** * Produce pool of pure noise digits (for simulation of noise in unhit @@ -125,7 +131,10 @@ public: */ void ProduceNoiseDigitPool( const std::vector<float>& lowthresholds, const std::vector<float>& noiseamps, - const std::vector<int>& strawType + const std::vector<int>& strawType, + CLHEP::HepRandomEngine* noiseRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine ); const TRT_ID* m_id_helper; diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.cxx b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.cxx index cb60224e2fd7..c8643caa920d 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.cxx +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.cxx @@ -34,7 +34,6 @@ //#include "HepPDT/ParticleDataTable.hh" // For the Athena-based random numbers. -#include "AthenaKernel/IAtRndmGenSvc.h" #include "CLHEP/Random/RandPoisson.h"//randpoissonq? (fixme) #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandBinomial.h" @@ -54,7 +53,6 @@ TRTProcessingOfStraw::TRTProcessingOfStraw(const TRTDigSettings* digset, const InDetDD::TRT_DetectorManager* detmgr, ITRT_PAITool* paitoolXe, ITRT_SimDriftTimeTool* simdrifttool, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, TRTElectronicsProcessing * ep, TRTNoise * noise, TRTDigCondBase* digcond, @@ -83,7 +81,7 @@ TRTProcessingOfStraw::TRTProcessingOfStraw(const TRTDigSettings* digset, { ATH_MSG_VERBOSE ( "TRTProcessingOfStraw::Constructor begin" ); - Initialize(atRndmGenSvc); + Initialize(); ATH_MSG_VERBOSE ( "Constructor done" ); } @@ -96,7 +94,7 @@ TRTProcessingOfStraw::~TRTProcessingOfStraw() } //________________________________________________________________________________ -void TRTProcessingOfStraw::Initialize(ServiceHandle <IAtRndmGenSvc> atRndmGenSvc) +void TRTProcessingOfStraw::Initialize() { m_useMagneticFieldMap = m_settings->useMagneticFieldMap(); @@ -145,9 +143,6 @@ void TRTProcessingOfStraw::Initialize(ServiceHandle <IAtRndmGenSvc> atRndmGenSvc m_maxCrossingTime = intervalBetweenCrossings * 3. + 1.*CLHEP::ns; m_shiftOfZeroPoint = static_cast<double>( m_settings->numberOfCrossingsBeforeMain() ) * intervalBetweenCrossings; - //Create our own engine with own seeds: - m_pHRengine = atRndmGenSvc->GetEngine("TRT_ProcessStraw"); - // Tabulate exp(-dist/m_attenuationLength) as a function of dist = time*m_signalPropagationSpeed [0.0 mm, 1500 mm) // otherwise we are doing an exp() for every cluster! > 99.9% of output digits are the same, saves 13% CPU time. m_expattenuation.reserve(150); @@ -228,7 +223,8 @@ void TRTProcessingOfStraw::addClustersFromStep ( const double& scaledKineticEner const double& timeOfHit, const double& prex, const double& prey, const double& prez, const double& postx, const double& posty, const double& postz, - std::vector<cluster>& clusterlist, int strawGasType) + std::vector<cluster>& clusterlist, int strawGasType, + CLHEP::HepRandomEngine* rndmEngine) { // Choose the appropriate ITRT_PAITool for this straw @@ -247,14 +243,14 @@ void TRTProcessingOfStraw::addClustersFromStep ( const double& scaledKineticEner const double meanFreePath(activePAITool->GetMeanFreePath( scaledKineticEnergy, particleCharge*particleCharge )); //How many clusters did we actually create: - const unsigned int numberOfClusters(CLHEP::RandPoisson::shoot(m_pHRengine,stepLength / meanFreePath)); + const unsigned int numberOfClusters(CLHEP::RandPoisson::shoot(rndmEngine,stepLength / meanFreePath)); //fixme: use RandPoissionQ? //Position each of those randomly along the step, and use PAI to get their energies: for (unsigned int iclus(0); iclus<numberOfClusters; ++iclus) { //How far along the step did the cluster get produced: - const double lambda(CLHEP::RandFlat::shoot(m_pHRengine)); + const double lambda(CLHEP::RandFlat::shoot(rndmEngine)); //Append cluster (the energy is given by the PAI model): double clusE(activePAITool->GetEnergyTransfer(scaledKineticEnergy)); @@ -276,7 +272,10 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, double cosmicEventPhase, // const ComTime* m_ComTime, int strawGasType, bool emulationArflag, - bool emulationKrflag) + bool emulationKrflag, + CLHEP::HepRandomEngine* rndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine) { ////////////////////////////////////////////////////////// @@ -386,7 +385,7 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, // scale down the TR efficiency if we are emulating if ( strawGasType == 0 && emulationArflag ) { m_trEfficiencyBarrel = m_trEfficiencyBarrel*ArEmulationScaling_BA; } if ( strawGasType == 0 && emulationKrflag ) { m_trEfficiencyBarrel = m_trEfficiencyBarrel*KrEmulationScaling_BA; } - if ( CLHEP::RandFlat::shoot(m_pHRengine) > m_trEfficiencyBarrel ) continue; // Skip this photon + if ( CLHEP::RandFlat::shoot(rndmEngine) > m_trEfficiencyBarrel ) continue; // Skip this photon } // close if barrel else { // Endcap - no eta dependence here. if (isECA) { @@ -394,14 +393,14 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, // scale down the TR efficiency if we are emulating if ( strawGasType == 0 && emulationArflag ) { m_trEfficiencyEndCapA = m_trEfficiencyEndCapA*ArEmulationScaling_ECA; } if ( strawGasType == 0 && emulationKrflag ) { m_trEfficiencyEndCapA = m_trEfficiencyEndCapA*KrEmulationScaling_ECA; } - if ( CLHEP::RandFlat::shoot(m_pHRengine) > m_trEfficiencyEndCapA ) continue; // Skip this photon + if ( CLHEP::RandFlat::shoot(rndmEngine) > m_trEfficiencyEndCapA ) continue; // Skip this photon } if (isECB) { m_trEfficiencyEndCapB = m_settings->trEfficiencyEndCapB(strawGasType); // scale down the TR efficiency if we are emulating if ( strawGasType == 0 && emulationArflag ) { m_trEfficiencyEndCapB = m_trEfficiencyEndCapB*ArEmulationScaling_ECB; } if ( strawGasType == 0 && emulationKrflag ) { m_trEfficiencyEndCapB = m_trEfficiencyEndCapB*KrEmulationScaling_ECB; } - if ( CLHEP::RandFlat::shoot(m_pHRengine) > m_trEfficiencyEndCapB ) continue; // Skip this photon + if ( CLHEP::RandFlat::shoot(rndmEngine) > m_trEfficiencyEndCapB ) continue; // Skip this photon } } // close else (end caps) } // energyDeposit < 30.0 @@ -500,7 +499,7 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, addClustersFromStep ( scaledKineticEnergy, particleCharge, timeOfHit, (*theHit)->GetPreStepX(),(*theHit)->GetPreStepY(),(*theHit)->GetPreStepZ(), (*theHit)->GetPostStepX(),(*theHit)->GetPostStepY(),(*theHit)->GetPostStepZ(), - m_clusterlist, strawGasType); + m_clusterlist, strawGasType, rndmEngine); } }//end of hit loop @@ -522,7 +521,7 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, m_depositList.clear(); // ClustersToDeposits( hitID, m_clusterlist, m_depositList, TRThitGlobalPos, m_ComTime, strawGasType ); - ClustersToDeposits( hitID, m_clusterlist, m_depositList, TRThitGlobalPos, cosmicEventPhase, strawGasType ); + ClustersToDeposits( hitID, m_clusterlist, m_depositList, TRThitGlobalPos, cosmicEventPhase, strawGasType, rndmEngine ); ////////////////////////////////////////////////////////// //======================================================// @@ -553,7 +552,7 @@ void TRTProcessingOfStraw::ProcessStraw ( hitCollConstIter i, } //Electronics processing: - m_pElectronicsProcessing->ProcessDeposits( m_depositList, hitID, outdigit, lowthreshold, noiseamplitude, strawGasType ); + m_pElectronicsProcessing->ProcessDeposits( m_depositList, hitID, outdigit, lowthreshold, noiseamplitude, strawGasType, elecProcRndmEngine, elecNoiseRndmEngine ); return; } @@ -563,7 +562,8 @@ void TRTProcessingOfStraw::ClustersToDeposits (const int& hitID, std::vector<TRTElectronicsProcessing::Deposit>& deposits, Amg::Vector3D TRThitGlobalPos, double cosmicEventPhase, // was const ComTime* m_ComTime, - int strawGasType) + int strawGasType, + CLHEP::HepRandomEngine* rndmEngine) { // @@ -679,18 +679,18 @@ void TRTProcessingOfStraw::ClustersToDeposits (const int& hitID, if (nprimaryelectrons<m_maxelectrons) // Use the detailed Binomial and Exponential treatment at this low energy. { - unsigned int nsurvivingprimaryelectrons = static_cast<unsigned int>(CLHEP::RandBinomial::shoot(m_pHRengine,nprimaryelectrons,m_smearingFactor) + 0.5); + unsigned int nsurvivingprimaryelectrons = static_cast<unsigned int>(CLHEP::RandBinomial::shoot(rndmEngine,nprimaryelectrons,m_smearingFactor) + 0.5); if (nsurvivingprimaryelectrons==0) continue; // no electrons survived; move on to the next cluster. const double meanElectronEnergy(m_ionisationPotential/m_smearingFactor); for (unsigned int ielec(0); ielec<nsurvivingprimaryelectrons; ++ielec) { - depositEnergy += CLHEP::RandExpZiggurat::shoot(m_pHRengine, meanElectronEnergy); + depositEnergy += CLHEP::RandExpZiggurat::shoot(rndmEngine, meanElectronEnergy); } } else // Use a Gaussian approximation { const double fluctSigma(sqrt(cluster_E*m_ionisationPotential*(2-m_smearingFactor)/m_smearingFactor)); do { - depositEnergy = CLHEP::RandGaussZiggurat::shoot(m_pHRengine, cluster_E, fluctSigma); + depositEnergy = CLHEP::RandGaussZiggurat::shoot(rndmEngine, cluster_E, fluctSigma); } while(depositEnergy<0.0); // very rare. } @@ -735,8 +735,8 @@ void TRTProcessingOfStraw::ClustersToDeposits (const int& hitID, if ( m_settings->doCosmicTimingPit() ) { // make (x,y) dependent? i.e: + f(x,y). - // clusterTime = clusterTime - m_time_y_eq_zero + m_settings->jitterTimeOffset()*( CLHEP::RandFlat::shoot(m_pHRengine) ); - clusterTime = clusterTime + cosmicEventPhase + m_settings->jitterTimeOffset()*( CLHEP::RandFlat::shoot(m_pHRengine) ); + // clusterTime = clusterTime - m_time_y_eq_zero + m_settings->jitterTimeOffset()*( CLHEP::RandFlat::shoot(rndmEngine) ); + clusterTime = clusterTime + cosmicEventPhase + m_settings->jitterTimeOffset()*( CLHEP::RandFlat::shoot(rndmEngine) ); // yes it is a '+' now. Ask Alex Alonso. } diff --git a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.h b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.h index ed5fee778210..ea4b06862f12 100644 --- a/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.h +++ b/InnerDetector/InDetDigitization/TRT_Digitization/src/TRTProcessingOfStraw.h @@ -33,7 +33,6 @@ class TRTNoise; class TRTDigCondBase; class TRTUncompressedHit; -class IAtRndmGenSvc; class ITRT_PAITool; class ITRT_SimDriftTimeTool; @@ -55,7 +54,6 @@ public: const InDetDD::TRT_DetectorManager*, ITRT_PAITool*, ITRT_SimDriftTimeTool*, - ServiceHandle <IAtRndmGenSvc> atRndmGenSvc, TRTElectronicsProcessing * ep, TRTNoise * noise, TRTDigCondBase* digcond, @@ -95,7 +93,10 @@ public: double m_cosmicEventPhase, //const ComTime* m_ComTime, int strawGasType, bool emulationArflag, - bool emulationKrflag ); + bool emulationKrflag, + CLHEP::HepRandomEngine* rndmEngine, + CLHEP::HepRandomEngine* elecProcRndmEngine, + CLHEP::HepRandomEngine* elecNoiseRndmEngine ); MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; } bool msgLvl (MSG::Level lvl) { return m_msg.get().level() <= lvl; } @@ -107,7 +108,7 @@ private: TRTProcessingOfStraw& operator= (const TRTProcessingOfStraw&); /** Initialize */ - void Initialize(ServiceHandle <IAtRndmGenSvc> atRndmGenSvc) ; + void Initialize(); const TRTDigSettings* m_settings; const InDetDD::TRT_DetectorManager* m_detmgr; @@ -196,7 +197,8 @@ private: const double& posty, const double& postz, std::vector<cluster>& clusterlist, - int strawGasType); + int strawGasType, + CLHEP::HepRandomEngine* rndmEngine); /** * Transform the ioniation clusters along the particle trajectory inside a * straw to energy deposits (i.e. potential fluctuations) reaching the @@ -218,14 +220,13 @@ private: std::vector<TRTElectronicsProcessing::Deposit>& deposits, Amg::Vector3D TRThitGlobalPos, double m_cosmicEventPhase, // const ComTime* m_ComTime - int strawGasType); + int strawGasType, + CLHEP::HepRandomEngine* rndmEngine); std::vector<double> m_drifttimes; // electron drift times std::vector<double> m_expattenuation; // tabulation of exp() unsigned int m_maxelectrons; // maximum number of them (minmum is 100 for the Gaussian approx to be ok); - CLHEP::HepRandomEngine * m_pHRengine; - bool m_alreadywarnedagainstpdg0; Amg::Vector3D getGlobalPosition( int hitID, const TimedHitPtr<TRTUncompressedHit> *theHit ); diff --git a/Tools/PROCTools/python/RunTier0TestsTools.py b/Tools/PROCTools/python/RunTier0TestsTools.py index 324fb145c7d1..225c24dd0b94 100644 --- a/Tools/PROCTools/python/RunTier0TestsTools.py +++ b/Tools/PROCTools/python/RunTier0TestsTools.py @@ -24,5 +24,5 @@ ciRefFileMap = { 's3126-22.0' : 'v1', # OverlayTier0Test_required-test 'overlay-d1498-21.0' : 'v1', - 'overlay-d1498-22.0' : 'v1', + 'overlay-d1498-22.0' : 'v2', } -- GitLab From 68917265258927b7701891722bd89b2f6f576afa Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Mon, 28 Jan 2019 11:14:26 +0000 Subject: [PATCH 164/192] Sweep DataQualityUtils and ZLumiScripts to master --- DataQuality/DataQualityUtils/CMakeLists.txt | 5 +- .../DataQualityUtils/HanOutputFile.h | 28 +- .../DataQualityUtils/MonitoringFile.h | 10 + .../python/DQPostProcessMod.py | 11 +- .../DataQualityUtils/python/TestCases.py | 3 + .../DataQualityUtils/python/doZLumi.py | 90 ++ .../DataQualityUtils/python/filemovemod.py | 18 +- .../DataQualityUtils/python/hancoolmod.py | 5 +- .../DataQualityUtils/python/handimod.py | 58 +- .../{scripts => python}/pathExtract.py | 24 - .../scripts/DQM_Tier0Wrapper_tf.py | 549 ++++++++++++ .../scripts/DQM_Tier0Wrapper_trf.py | 1 + .../scripts/checkCorrelInHIST.py | 2 +- .../DataQualityUtils/scripts/hotSpotInHIST.py | 6 +- .../DataQualityUtils/scripts/hotSpotInTAG.py | 4 +- .../scripts/physval_make_web_display.py | 12 +- .../DataQualityUtils/scripts/readTier0HIST.py | 2 +- .../scripts/readTier0LARNOISE.py | 6 +- .../DataQualityUtils/scripts/readTier0TAGs.py | 6 +- .../DataQualityUtils/src/HanOutputFile.cxx | 294 +++++-- .../DataQualityUtils/src/MonitoringFile.cxx | 92 +- .../src/MonitoringFile_HLTJetPostProcess.cxx | 2 + .../src/MonitoringFile_HLTMETPostProcess.cxx | 2 + ...onitoringFile_HLTMuonHistogramDivision.cxx | 116 +-- .../src/MonitoringFile_IDAlignPostProcess.cxx | 4 +- .../src/MonitoringFile_IDPerfPostProcess.cxx | 92 +- .../src/MonitoringFile_RPCPostProcess.cxx | 316 ++++--- .../src/MonitoringFile_SCTPostProcess.cxx | 794 ++++++++++++------ DataQuality/ZLumiScripts/CMakeLists.txt | 15 + .../scripts/dqt_zlumi_alleff_HIST.py | 229 +++++ .../scripts/dqt_zlumi_combine_lumi.py | 135 +++ .../scripts/dqt_zlumi_compute_lumi.py | 325 +++++++ .../scripts/dqt_zlumi_display_z_rate.py | 107 +++ 33 files changed, 2764 insertions(+), 599 deletions(-) create mode 100644 DataQuality/DataQualityUtils/python/doZLumi.py rename DataQuality/DataQualityUtils/{scripts => python}/pathExtract.py (81%) create mode 100755 DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_tf.py create mode 100644 DataQuality/ZLumiScripts/CMakeLists.txt create mode 100755 DataQuality/ZLumiScripts/scripts/dqt_zlumi_alleff_HIST.py create mode 100755 DataQuality/ZLumiScripts/scripts/dqt_zlumi_combine_lumi.py create mode 100755 DataQuality/ZLumiScripts/scripts/dqt_zlumi_compute_lumi.py create mode 100755 DataQuality/ZLumiScripts/scripts/dqt_zlumi_display_z_rate.py diff --git a/DataQuality/DataQualityUtils/CMakeLists.txt b/DataQuality/DataQualityUtils/CMakeLists.txt index 55f000783ba8..5c47606c9eaa 100644 --- a/DataQuality/DataQualityUtils/CMakeLists.txt +++ b/DataQuality/DataQualityUtils/CMakeLists.txt @@ -7,7 +7,8 @@ atlas_subdir( DataQualityUtils ) # Declare the package's dependencies: atlas_depends_on_subdirs( PRIVATE - DataQuality/DataQualityInterfaces ) + DataQuality/DataQualityInterfaces + DataQuality/ZLumiScripts ) # External dependencies: find_package( Boost COMPONENTS regex filesystem thread system ) @@ -80,7 +81,7 @@ atlas_add_executable( han-results-print # Install files from the package: atlas_install_python_modules( python/*.py ) -atlas_install_scripts( scripts/CreateDB.py scripts/CreateDB_Histo.py scripts/DQHistogramMerge.py scripts/DQHistogramPrintStatistics.py scripts/DQWebDisplay.py scripts/hancool_histo.py scripts/hancool.py scripts/handi.py scripts/historyDisplay.py scripts/DQFileMove.py scripts/CreateMDTConfig_algos.sh scripts/CreateMDTConfig_chambers.sh scripts/CreateMDTConfig_config.sh scripts/CreateMDTConfig_files.sh scripts/CreateMDTConfig_readme.sh scripts/DQM_Tier0Wrapper_trf.py scripts/DQHistogramMergeRegExp.py scripts/dq_make_web_display.py scripts/ScanHistFile.py scripts/physval_make_web_display.py ) +atlas_install_scripts( scripts/CreateDB.py scripts/CreateDB_Histo.py scripts/DQHistogramMerge.py scripts/DQHistogramPrintStatistics.py scripts/DQWebDisplay.py scripts/hancool_histo.py scripts/hancool.py scripts/handi.py scripts/historyDisplay.py scripts/DQFileMove.py scripts/CreateMDTConfig_algos.sh scripts/CreateMDTConfig_chambers.sh scripts/CreateMDTConfig_config.sh scripts/CreateMDTConfig_files.sh scripts/CreateMDTConfig_readme.sh scripts/DQM_Tier0Wrapper_trf.py scripts/DQM_Tier0Wrapper_tf.py scripts/DQHistogramMergeRegExp.py scripts/dq_make_web_display.py scripts/ScanHistFile.py scripts/physval_make_web_display.py ) # Aliases: atlas_add_alias( DQHistogramPrintStatistics "DQHistogramPrintStatistics.py" ) diff --git a/DataQuality/DataQualityUtils/DataQualityUtils/HanOutputFile.h b/DataQuality/DataQualityUtils/DataQualityUtils/HanOutputFile.h index 4de87c1dbca2..b952560ce644 100644 --- a/DataQuality/DataQualityUtils/DataQualityUtils/HanOutputFile.h +++ b/DataQuality/DataQualityUtils/DataQualityUtils/HanOutputFile.h @@ -19,6 +19,8 @@ class TH1; class TH2; class TStyle; class TGraph; +class TImage; +class TEfficiency; namespace dqutils { @@ -67,13 +69,26 @@ public: virtual void streamAllDQAssessments( std::ostream& o, bool streamAll ); virtual void streamHistoAssessments( std::ostream& o, bool streamAll ); virtual void streamAllHistograms( std::ostream& o, bool streamAll ); - virtual int saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB ); + + /** + * cnvsType: 1=pngOnly;2=jsonOnly;3=pngAndJson + */ + virtual int saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB,int cnvsType = 1); static bool containsDir(std::string dirname, std::string maindir); virtual bool saveHistogramToFile( std::string nameHis, std::string location, - TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName ); + TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName,int cnvsType = 1); + virtual std::pair<std::string,std::string> getHistogram( std::string nameHis, + TDirectory* groupDir, bool drawRefs, + std::string run_min_LB, std::string pathName,int cnvsType=1); + virtual std::string getHistogramPNG( std::string nameHis, + TDirectory* groupDir, bool drawRefs, + std::string run_min_LB, std::string pathName ); + virtual std::pair<std::string,std::string> getHistogramJSON( std::string nameHis, + TDirectory* groupDir, bool drawRefs, + std::string run_min_LB, std::string pathName ); virtual bool saveHistogramToFileSuperimposed( std::string nameHis, std::string location, - TDirectory* groupDir1, TDirectory* groupDir2, bool drawRefs,std::string run_min_LB, std::string pathName ); + TDirectory* groupDir1, TDirectory* groupDir2, bool drawRefs,std::string run_min_LB, std::string pathName,int cnvsType=1); virtual bool drawH2(TCanvas* canv,TH2* hist,std::string &drawopt,std::string &display); virtual bool drawH1(TCanvas* canv,TH1* hist,TH1* reference,std::string &drawopt,std::string &display,std::string &AlgoName); @@ -92,6 +107,7 @@ public: virtual void formatTH1( TCanvas* c, TH1* h ) const; virtual void formatTH2( TCanvas* c, TH2* h ) const; virtual void formatTGraph( TCanvas* c, TGraph* g ) const; + virtual void formatTEfficiency( TCanvas* c, TEfficiency* e ) const; virtual double getNEntries( std::string location, std::string histname ); virtual double getNEntries( const TObject* obj ); @@ -100,6 +116,12 @@ public: protected: virtual void clearData(); + virtual void convertToGraphics(int cnvsType, TCanvas* myC,std::string &json, TImage *img = 0, char ** x=0, int *y=0); + virtual void convertToGraphics(int cnvsType, TCanvas* myC,std::string namePNG,std::string nameJSON); + virtual bool saveFile(int cnvsType, std::string pngfName,std::string pngContent, std::string jsonfName, std::string jsonfContent); + + + virtual bool writeToFile(std::string fName, std::string content); TFile* m_file; diff --git a/DataQuality/DataQualityUtils/DataQualityUtils/MonitoringFile.h b/DataQuality/DataQualityUtils/DataQualityUtils/MonitoringFile.h index 4b9168657f9d..aaafe1f15ea4 100644 --- a/DataQuality/DataQualityUtils/DataQualityUtils/MonitoringFile.h +++ b/DataQuality/DataQualityUtils/DataQualityUtils/MonitoringFile.h @@ -41,6 +41,7 @@ class TKey; class TTree; class TString; class RooPlot; +class TEfficiency; namespace dqutils { @@ -391,8 +392,10 @@ namespace dqutils { virtual ~HistogramOperation() { } virtual bool execute(TH1* hist) = 0; virtual bool execute(TGraph* graph) = 0; + virtual bool execute(TEfficiency* efficiency) = 0; virtual bool executeMD(TH1* hist, const MetaData&) { return execute(hist); } virtual bool executeMD(TGraph* graph, const MetaData&) { return execute(graph); } + virtual bool executeMD(TEfficiency* efficiency, const MetaData&) {return execute(efficiency); } }; class CopyHistogram : public HistogramOperation { @@ -401,8 +404,11 @@ namespace dqutils { virtual ~CopyHistogram(); virtual bool execute(TH1* hist); virtual bool execute(TGraph* graph); + virtual bool execute(TEfficiency* eff); virtual bool executeMD(TH1* hist, const MetaData& md); virtual bool executeMD(TGraph* graph, const MetaData& md); + virtual bool executeMD(TEfficiency* eff, const MetaData& md); + protected: void copyString(char* to, const std::string& from); TDirectory* m_target; @@ -420,6 +426,7 @@ namespace dqutils { GatherStatistics(std::string dirName); virtual bool execute(TH1* hist); virtual bool execute(TGraph* graph); + virtual bool execute(TEfficiency* eff); std::string m_dirName; int m_nHist1D; @@ -428,6 +435,8 @@ namespace dqutils { int m_nGraphPoints; int m_nHist2D; int m_nHist2DBins; + int m_nEfficiency; + int m_nEfficiencyBins; }; class GatherNames : public HistogramOperation { @@ -435,6 +444,7 @@ namespace dqutils { GatherNames(); virtual bool execute(TH1* hist); virtual bool execute(TGraph* graph); + virtual bool execute( TEfficiency* eff ); std::vector<std::string> m_names; }; diff --git a/DataQuality/DataQualityUtils/python/DQPostProcessMod.py b/DataQuality/DataQualityUtils/python/DQPostProcessMod.py index 6185651f62f1..231e1bbac89c 100644 --- a/DataQuality/DataQualityUtils/python/DQPostProcessMod.py +++ b/DataQuality/DataQualityUtils/python/DQPostProcessMod.py @@ -83,7 +83,7 @@ def _ProtectPostProcessing( funcinfo, outFileName, isIncremental ): if isProduction: import smtplib server = smtplib.SMTP('localhost') - mail_cc = ['ponyisi@utexas.edu', 'yuriy.ilchenko@cern.ch'] + mail_cc = ['ponyisi@utexas.edu', 'rnarayan@utexas.edu'] msg = ['From: atlasdqm@cern.ch', 'To: %s' % ', '.join(mail_to), 'Cc: %s' % ', '.join(mail_cc), @@ -132,6 +132,11 @@ def DQPostProcess( outFileName, isIncremental=False ): createMDTConditionDBNoisy) createMDTConditionDBDead() createMDTConditionDBNoisy() + + def zlumi(fname, isIncremental): + if not isIncremental: + from DataQualityUtils.doZLumi import go + go(fname) funclist = [ (mf.fitMergedFile_IDPerfMonManager, @@ -181,7 +186,9 @@ def DQPostProcess( outFileName, isIncremental=False ): (mf.PixelPostProcess, ['daiki.yamaguchi@cern.ch']), (mf.MuonTrackPostProcess, - ['baojia.tong@cern.ch', 'alexander.tuna@cern.ch']) + ['baojia.tong@cern.ch', 'alexander.tuna@cern.ch']), + (zlumi, + ['ponyisi@utexas.edu', 'harish.potti@utexas.edu']), ] # first try all at once diff --git a/DataQuality/DataQualityUtils/python/TestCases.py b/DataQuality/DataQualityUtils/python/TestCases.py index e74754273b1e..427765fb7d1f 100644 --- a/DataQuality/DataQualityUtils/python/TestCases.py +++ b/DataQuality/DataQualityUtils/python/TestCases.py @@ -1,5 +1,8 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# None of this works, but keep it around in case someone wants to resurrect it later... +# - PO 20180419 + import unittest import sys, os, shutil diff --git a/DataQuality/DataQualityUtils/python/doZLumi.py b/DataQuality/DataQualityUtils/python/doZLumi.py new file mode 100644 index 000000000000..f3b2954e8de9 --- /dev/null +++ b/DataQuality/DataQualityUtils/python/doZLumi.py @@ -0,0 +1,90 @@ +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + +def getRun(fname): + import ROOT + fin = ROOT.TFile.Open(fname) + if not fin: return None + runname = None + for key in fin.GetListOfKeys(): + if key.GetName().startswith('run_'): + runname = key.GetName() + break + if runname: return int(runname[4:]) + else: return None + +def copyPlot(infname, outfname): + import ROOT + run = getRun(outfname) + if not run: return + fin = ROOT.TFile.Open(infname, 'READ') + if not fin: return + fout = ROOT.TFile.Open(outfname, 'UPDATE') + if not fout: return + for objname in ['z_lumi']: + obj = fin.Get(objname) + if obj: + d = fout.Get('run_%d/GLOBAL/DQTGlobalWZFinder' % run) + if d: + d.WriteTObject(obj) + fin.Close(); fout.Close() + +def makeGRL(run, defect, fname): + from ROOT import TString + import DQUtils, DQDefects + import os + + tag = 'HEAD' + runs = [run] + print 'Query run information...', + from DQUtils.db import fetch_iovs + dbinstance = 'CONDBR2' + eor = fetch_iovs('EOR', (min(runs) << 32) | 1, + (max(runs) << 32) | 0xFFFFFFFF, + with_channel=False, what=[], database='COOLONL_TDAQ/%s' % dbinstance) + eor = eor.trim_iovs + eor = DQUtils.IOVSet(iov for iov in eor if iov.since.run in runs) + print 'done' + print 'Query defects...', + ddb = DQDefects.DefectsDB('COOLOFL_GLOBAL/%s' % dbinstance, tag=tag) + ignores = set([_ for _ in ddb.defect_names if 'UNCHECKED' in _]) + try: + defectiovs = ddb.retrieve(since = min(runs) << 32 | 1, + until = max(runs) << 32 | 0xffffffff, + channels = [defect], + evaluate_full = False, + ignore=ignores) + except Exception, e: + print e + raise + print 'Doing exclusions...', + okiovs = eor.logical_and(eor, defectiovs.logical_not()) + print 'done' + + print 'Generating GRL...', + data = DQUtils.grl.make_grl(okiovs, '', '2.1') + with open(fname, 'w') as outf: + outf.write(data) + +def go(fname): + import subprocess, os, shutil + if 'DQ_STREAM' in os.environ: + if (os.environ.get('DQPRODUCTION', '0') == '1' + and os.environ['DQ_STREAM'] != 'physics_Main'): + return + if 'DISPLAY' in os.environ: del os.environ['DISPLAY'] + runno = getRun(fname) + print 'Seen run', runno + grlcmd = [] + if runno >= 325000: + makeGRL(runno, 'PHYS_StandardGRL_All_Good', 'grl.xml') + grlcmd = ['--grl', 'grl.xml'] + else: + print 'Run number', runno, 'not 2017 data' + + subprocess.call(['dqt_zlumi_compute_lumi.py', fname, '--out', 'zlumiraw.root', '--dblivetime', '--plotdir', ''] + grlcmd) + subprocess.call(['dqt_zlumi_alleff_HIST.py', fname, '--out', 'zlumieff.root', '--plotdir', '']) + subprocess.call(['dqt_zlumi_combine_lumi.py', 'zlumiraw.root', 'zlumieff.root', 'zlumi.root']) + subprocess.call(['dqt_zlumi_display_z_rate.py', 'zlumi.root', '--plotdir', '']) + copyPlot('zlumi.root', fname) + if os.path.isfile('zlumi.root_zrate.csv'): + shutil.move('zlumi.root_zrate.csv', 'zrate.csv') diff --git a/DataQuality/DataQualityUtils/python/filemovemod.py b/DataQuality/DataQualityUtils/python/filemovemod.py index 84f2797246ab..daf89dd585f1 100644 --- a/DataQuality/DataQualityUtils/python/filemovemod.py +++ b/DataQuality/DataQualityUtils/python/filemovemod.py @@ -1,14 +1,22 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration def move_files(prefix, config): - import os, shutil + import os, shutil, subprocess filemap = config.filemap if filemap == {}: return for src, dest in filemap.items(): + print src, dest if os.access(src, os.R_OK): - try: - shutil.copy2(src, os.path.join(dest, prefix + '_' + os.path.basename(src))) - except IOError, e: - print e + if dest.startswith('root://'): + try: + subprocess.check_call(['xrdcp', src, os.path.join(dest, prefix + '_' + os.path.basename(src))]) + except subprocess.CalledProcessError, e: + print e + else: + try: + shutil.copy2(src, os.path.join(dest, prefix + '_' + os.path.basename(src))) + except IOError, e: + print e + diff --git a/DataQuality/DataQualityUtils/python/hancoolmod.py b/DataQuality/DataQualityUtils/python/hancoolmod.py index ec729409dcea..d35e805170c0 100644 --- a/DataQuality/DataQualityUtils/python/hancoolmod.py +++ b/DataQuality/DataQualityUtils/python/hancoolmod.py @@ -355,7 +355,10 @@ def sct_conf_defects(d, i, runNumber): if not histogram: return None for bin in mapping: - if histogram.GetBinContent(bin) > 40: + threshold = 40 + if mapping[bin] == 'SCT_MOD_OUT_GT40': + threshold = 80 + if histogram.GetBinContent(bin) > threshold: rv.append(defect_val(mapping[bin], '%.1d modules affected' % histogram.GetBinContent(bin), False)) return rv diff --git a/DataQuality/DataQualityUtils/python/handimod.py b/DataQuality/DataQualityUtils/python/handimod.py index e12dada92626..d36927543cdb 100644 --- a/DataQuality/DataQualityUtils/python/handimod.py +++ b/DataQuality/DataQualityUtils/python/handimod.py @@ -23,14 +23,16 @@ from ROOT import dqutils ## LumiBlock length (in minutes) LBlength = 1.0 +jsonFileCull = set() -def handiWithComparisons( name, resultsFile, htmlDir, runlistLoc, compare, browserMenu, allDirsScriptDir ): +def handiWithComparisons( name, resultsFile, htmlDir, runlistLoc, compare, browserMenu,allDirsScriptDir,jsRoot=1 ): ## compare: True if you want a "compare" button on every 1histo page, False by default ## javaScriptLoc = url of the javascript for the "compare" button ## HjavaScriptLoc = url of the javascript for the "history" button ## runlistLoc = url where to find runlist.xml (runlist catalog) ## browserMenu = True if you want a browser menu instead of the ## allDirsScript = url of javascript to create browser menu + ## jsRoot = enable jsRoot ;1=png;2=json;3=png&json if ( htmlDir.rfind("/")!=(len(htmlDir)-1) ): # htmlDir needs "/" at the end htmlDir+="/" @@ -63,7 +65,7 @@ def handiWithComparisons( name, resultsFile, htmlDir, runlistLoc, compare, brows hi_limit = int(digit*30.0/LBlength) LB_range = ', LB '+str(low_limit)+' - ' + str(hi_limit) - nSaved = saveAllHistograms( resultsFile, htmlDir, True, (name+LB_range) ) + nSaved = saveAllHistograms( resultsFile, htmlDir, True, (name+LB_range), jsRoot) if nSaved == 0: print "There are no histograms in this file; writing a dummy index file" if( not os.access(htmlDir,os.F_OK) ): @@ -101,14 +103,18 @@ def handiWithComparisons( name, resultsFile, htmlDir, runlistLoc, compare, brows dirlist, namelist = makeAllDirsFile( htmlDir, name, s, number, resultsFile ) for x in range(0,len(dirlist)): - makeSubDirFile( htmlDir, name, s, number, namelist[x], dirlist[x], runlistLoc, compare, allDirsScriptDir ) - makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Red', runlistLoc, compare, allDirsScriptDir) - makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Yellow', runlistLoc, compare, allDirsScriptDir) - makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Green', runlistLoc, compare, allDirsScriptDir ) + makeSubDirFile( htmlDir, name, s, number, namelist[x], dirlist[x], runlistLoc, compare, allDirsScriptDir,jsRoot ) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Red', runlistLoc, compare, allDirsScriptDir,jsRoot ) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Yellow', runlistLoc, compare, allDirsScriptDir,jsRoot ) + makeColorFile( htmlDir, name, s, number, namelist[x], dirlist[x], 'Green', runlistLoc, compare, allDirsScriptDir,jsRoot ) makeCSSFile( htmlDir,"", namelist[x] ) makeCSSFile( htmlDir,"", "." ) + for path in jsonFileCull: + if os.path.isfile(path): + os.system("rm "+path) + def makeAllDirsXml( htmlDir, name, s, number, resultsFile ): g=open(htmlDir+'AllDirs.xml','w') @@ -287,7 +293,7 @@ def makeAllDirsBrowserFile( htmlDir, name, s, number, resultsFile,AllDirsScriptD g.close() return dirlist, namelist -def makeSubDirFile( htmlDir, name, s, number, subname, assessIndex, runlistLoc,compare, AllDirsScriptDir): +def makeSubDirFile( htmlDir, name, s, number, subname, assessIndex, runlistLoc,compare, AllDirsScriptDir,jsRoot ): if( subname == '.' ): h=open(htmlDir+'/'+subname+'/toplevel.html','w') @@ -335,7 +341,7 @@ def makeSubDirFile( htmlDir, name, s, number, subname, assessIndex, runlistLoc,c h.write('<td class="' + sp[1] + '" align="center"><a href="'+sp[0]+'.html" class="hintanchor" onmouseover="showhint(\'' +title+'\', this, event, \'400px\')"><img src="'+ sp[0] +'.png" height="200" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a><br/><div style="text-overflow:ellipsis;overflow:hidden;max-width:240px">'+sp[0]+'</div></td>\n') temp = s[y].rsplit(" title ") sp = temp[0].split() - makeOneHistFile( htmlDir, name, subname, sp, runlistLoc,compare ) + makeOneHistFile( htmlDir, name, subname, sp, runlistLoc,compare,jsRoot) y=y+1 if y< number: sp=s[y].rsplit() @@ -345,7 +351,7 @@ def makeSubDirFile( htmlDir, name, s, number, subname, assessIndex, runlistLoc,c h.close() -def makeColorFile( htmlDir, name, s, number, subname, assessIndex , color, runlistLoc,compare,AllDirsScriptDir): +def makeColorFile( htmlDir, name, s, number, subname, assessIndex , color, runlistLoc,compare,AllDirsScriptDir,jsRoot ): if( subname == '.' ): h=open(htmlDir+'/'+subname+'/'+color+'.html','w') @@ -392,7 +398,7 @@ def makeColorFile( htmlDir, name, s, number, subname, assessIndex , color, runli h.write('<td class="' + sp[1] + '"><a href="'+sp[0]+'.html" class="hintanchor" onmouseover="showhint(\'' +title+'\', this, event, \'400px\')"><img src="'+ sp[0] +'.png" height="200" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a></td>\n') temp = s[y].rsplit(" title ") sp = temp[0] - makeOneHistFile( htmlDir, name, subname, sp, runlistLoc,compare) + makeOneHistFile( htmlDir, name, subname, sp, runlistLoc,compare,jsRoot) y=y+1 if y< number: sp=s[y].rsplit() @@ -423,7 +429,7 @@ def writeLimitDiagram( k, limitName, lowColor, hiColor, loVal, hiVal ): k.write('</tr>\n</table>\n') -def makeOneHistFile( htmlDir, name, subname, sp, runlistLoc, compare ): +def makeOneHistFile( htmlDir, name, subname, sp, runlistLoc, compare,jsRoot ): import re runmatch = re.compile('^Run ([0-9]+), ([0-9]+)/(.+)$') subrunmatch = re.compile('^Run ([0-9]+), (.+)_(.*), ([0-9]+)/(.+)$') @@ -443,7 +449,9 @@ def makeOneHistFile( htmlDir, name, subname, sp, runlistLoc, compare ): k.write('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />\n') k.write('<title>'+name+ ' ' + subname+ ' ' + sp[0]+'</title>\n') k.write('<link rel="stylesheet" href="AutomChecks.css" type="text/css" />\n') -# k.write('<script type=\"text/javascript\" src=\"'+javaScriptLoc +'\"><!-- dont contract-->\n</script>\n') + k.write('<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>\n') + k.write('<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>') +## k.write('<script type=\"text/javascript\" src=\"'+javaScriptLoc +'\"><!-- dont contract-->\n</script>\n') k.write('</head>\n') k.write('<body>\n') k.write('<center>\n') @@ -571,10 +579,25 @@ def makeOneHistFile( htmlDir, name, subname, sp, runlistLoc, compare ): cc+=2 extra-=2 k.write('</table>\n</td>\n') + jsonPath = htmlDir+'/'+sp[21]+".json" if sp[0] else "" + jsonFileCull.add(jsonPath) + jsonFile = open(jsonPath,'r') if os.path.isfile(jsonPath) else "" if subname == '.': - k.write('<td><a href="toplevel.html"><img src="'+ sp[0] +'.png" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a></td>\n') + if(jsRoot and os.path.isfile(jsonPath)): + jsonFile.seek(0) + jsonStr = jsonFile.read() + jsonStr = jsonStr.replace('\n','') + k.write('<td><div id="root_plot_1" style="width: 600px; height: 400px"></div></td>\n<script>\n requirejs.config( { paths: { \'JSRootCore\' : \'https://root.cern.ch/js/dev//scripts/JSRootCore\', \'JSRootPainter\' : \'https://root.cern.ch/js/dev//scripts/JSRootPainter\', } });require([\'JSRootCore\', \'JSRootPainter\'], function(Core, Painter) {\n var obj = Core.parse(\''+jsonStr+'\');\nPainter.draw("root_plot_1", obj, ""); });</script>\n') + else: + k.write('<td><a href="toplevel.html"><img src="'+ sp[0] +'.png" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a></td>\n') else: - k.write('<td><a href="index.html"><img src="'+ sp[0] +'.png" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a></td>\n') + if(jsRoot and os.path.isfile(jsonPath)): + jsonFile.seek(0) + jsonStr = jsonFile.read() + jsonStr = jsonStr.replace('\n',''); + k.write('<td><div id="root_plot_2" style="width: 600px; height: 400px"></div></td>\n<script>\n requirejs.config( { paths: { \'JSRootCore\' : \'https://root.cern.ch/js/dev//scripts/JSRootCore\', \'JSRootPainter\' : \'https://root.cern.ch/js/dev//scripts/JSRootPainter\', } });require([\'JSRootCore\', \'JSRootPainter\'], function(Core, Painter) {\n var obj = Core.parse(\''+jsonStr+'\');\nPainter.draw("root_plot_2", obj, ""); });</script>\n') + else: + k.write('<td><a href="index.html"><img src="'+ sp[0] +'.png" alt="' + name + ' ' + subname+'/'+sp[0]+'.png" /></a></td>\n') k.write('</tr></table>\n') k.write('</center>\n') now = time.localtime() @@ -691,10 +714,9 @@ def stringAllDQAssessments( resultsFile ): return total -def saveAllHistograms( resultsFile, location, drawRefs, run_min_LB ): +def saveAllHistograms( resultsFile, location, drawRefs, run_min_LB ,jsRoot ): of = dqutils.HanOutputFile( resultsFile ) - nSaved = of.saveAllHistograms( location, drawRefs, run_min_LB ) + cnvType=1 if jsRoot==1 else 3 + nSaved = of.saveAllHistograms( location, drawRefs, run_min_LB ,cnvType) of.setFile('') return nSaved - - diff --git a/DataQuality/DataQualityUtils/scripts/pathExtract.py b/DataQuality/DataQualityUtils/python/pathExtract.py similarity index 81% rename from DataQuality/DataQualityUtils/scripts/pathExtract.py rename to DataQuality/DataQualityUtils/python/pathExtract.py index 55886ef82f9c..8c760155b068 100644 --- a/DataQuality/DataQualityUtils/scripts/pathExtract.py +++ b/DataQuality/DataQualityUtils/python/pathExtract.py @@ -24,30 +24,6 @@ def returnEosHistPath(run,stream,amiTag,tag="data16_13TeV"): return "FILE NOT FOUND" -# OBSOLETE - See below -# Return the path of the output of tier0 monitoring for the single LB (available only a couple of days after processing) -#def returnEosHistPathLB(run,lb,stream,amiTag,tag="data16_13TeV"): -# prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_','ZeroBias':'physics_'} -# path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/' -# P = sp.Popen(['/afs/cern.ch/project/eos/installation/0.3.84-aquamarine/bin/eos.select','ls',path],stdout=sp.PIPE,stderr=sp.PIPE) -# p = P.communicate() -# listOfFiles = p[0].split('\n') -# -# for iFile in listOfFiles: -# if ("recon.HIST.%s"%(amiTag) in iFile and "LOG" not in iFile): -# path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile -# P = sp.Popen(['/afs/cern.ch/project/eos/installation/0.3.84-aquamarine/bin/eos.select','ls',path],stdout=sp.PIPE,stderr=sp.PIPE) -# p = P.communicate() -# listOfFiles2 = p[0].split('\n') -# for iFile2 in listOfFiles2: -# print iFile2 -# ilb = int((iFile2.split("_lb")[1]).split("._SFO")[0]) -# if (lb == ilb): -# path = '/eos/atlas/atlastier0/tzero/prod/'+tag+'/'+prefix[stream]+stream+'/00'+str(run)+'/'+iFile+'/'+iFile2 -# return path -# -# return "FILE NOT FOUND" - # Return the path of the output of tier0 monitoring for a range of single LB (available only a couple of days after processing) def returnEosHistPathLB(run,lb0,lb1,stream,amiTag,tag="data16_13TeV"): prefix = {'express':'express_','Egamma':'physics_','CosmicCalo':'physics_','JetTauEtmiss':'physics_','Main':'physics_','ZeroBias':'physics_'} diff --git a/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_tf.py b/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_tf.py new file mode 100755 index 000000000000..fe089d5f5bf1 --- /dev/null +++ b/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_tf.py @@ -0,0 +1,549 @@ +#!/usr/bin/env python + +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + +######################################################################### +## +## Tier-0 combined transformation for DQM histogram merging +## and web display creation +## +## - to be run in two modes: +## 1. in regular (15min?) intervals, merges the new results with +## the statistics accumulated so far (cached on DQM AFS area) +## 2. at the end of a run, to obtain the final statistics/results +## (replaces all temporary histograms/results) +## +## - input parameter: file containing a json dictionary consisting of the key/value pairs +## 1) 'inputHistFiles': python list +## ['datasetname#filename1', 'datasetname#filename2', ...] (input HIST_TMP dataset + file names) +## or list of file dictionaries +## [{'lfn':'fname1', 'checksum':'cks1', 'dsn':'dsn1', 'size':sz1, 'guid':'guid1', 'events':nevts1, ...}, +## {'lfn':'fname2', 'checksum':'cks2', 'dsn':'dsn2', 'size':sz2, 'guid':'guid2', 'events':nevts2, ...}, ...] +## 2) 'outputHistFile': string 'datasetname#filename' +## (HIST output dataset name + file) +## optional parameters: +## 3) 'incrementalMode': string ('True'/'False', default: 'False') +## ('True': do incremental update of DQM webpages on top of existing statistics; +## 'False': create final DQM webpages, replace temporary ones) +## 4) 'postProcessing': string ('True'/'False', default: 'True') +## ('False': run histogram merging and DQ assessment only; +## 'True': run additional post-processing step (fitting, etc.)) +## 5) 'procNumber': int (number of processing pass, e.g. 1,2, ...) +## 6) 'runNumber': int +## 7) 'streamName': string (e.g., physics_IDCosmic, physics_Express, ...) +## 8) 'projectTag': string (e.g., data10_7TeV, TrigDisplay) +## 9) 'allowCOOLUpload': string ('True'/'False', default: 'True') +## ('True': allow upload of defects to database; +## 'False': do not upload defects to database) +## 10) 'doWebDisplay': string ('True'/'False', default: 'True') +## ('True': run the web display; +## 'False': do not run the web display) +## 11) 'filepaths': dictionary; keys are 'basename' (top level directory +## of han configurations; 'Collisions', 'Cosmics', and +## 'HeavyIons', which are themselves dicts with keys +## 'minutes10', 'minutes30', 'run' with values the han +## configuration file paths relative to basename +## 12) 'productionMode': string ('True'/'False', default: 'True') +## ('True': run as if on Tier-0. 'False': Assume testing.) +## +## (C) N. Boelaert, L. Goossens, A. Nairz, P. Onyisi, S. Schaetzel, M. Wilson +## (April 2008 - July 2010) +## Modified for dumping resource log in case of problems +## S. Kama (March 2011) +## Transformed into accepting argJSON as input +## and reporting new format of jobReport.json +## J. Guenther (February 2017) +######################################################################### + +import sys, string, commands, os.path, os, json, time, pprint, xmlrpclib, traceback +#sami +import hashlib + +######################################################################### + +# Utility function + +def getSubFileMap(fname, nevts=0) : + if os.path.isfile(fname) : + sz = os.path.getsize(fname) + map = { 'name': fname, + 'file_size' : sz, + 'nentries' : nevts, + } + else : + map = {} + return map + +def publish_success_to_mq(run, ptag, stream, incr, ami, procpass, hcfg, isprod): + import stomp, json, os, ssl + from DataQualityUtils import stompconfig + dest='/topic/atlas.dqm.progress' + conn=stomp.Connection([('atlas-mb.cern.ch', 61013)], **stompconfig.config()) + conn.start() + conn.connect(wait=True) + + body = { + 'run': run, + 'project_tag': ptag, + 'stream': stream, + 'ami': ami, + 'pass': procpass, + 'hcfg': hcfg, + } + headers = { + 'MsgClass':'DQ', + 'MsgType': (('' if isprod else 'Development') + + ('WebDisplayRunComplete' if not incr else 'WebDisplayIncremental')), + 'type':'textMessage', + 'persistent': 'true', + 'destination': dest, + } + conn.send(message=json.dumps(body), destination=dest,headers=headers,ack='auto') + conn.disconnect() + +######################################################################### + +def genmd5sum(filename): + md5summer=hashlib.md5() + if os.path.isfile(filename): + try: + infil=open(filename,'rb') + while True: + fs=infil.read(8192) + if not fs: + break + md5summer.update(fs) + finally: + infil.close() + print "md5 sum of the \"%s\" is %s"%(filename,md5summer.hexdigest()) + return + +def dq_combined_trf(jsonfile, outmap): + + print "\n##################################################################" + print "## STEP 1: creating file with list of root files ..." + print "##################################################################\n" + + nfiles=0 + + try: + # extract parameters from json file + print "Using json file ", jsonfile, " for input parameters" + f = open(jsonfile, 'r') + parmap = json.load(f) + f.close() + + print "\nFull Tier-0 run options:\n" + pprint.pprint(parmap) + + inputfilelist = parmap.get('inputHistFiles', []) + nfiles = len(inputfilelist) + histMergeCompressionLevel=parmap.get('histMergeCompressionLevel', 1) + histMergeDebugLevel=parmap.get('histMergeDebugLevel', 0) + except: + outmap['exitCode'] = 101 + outmap['exitAcronym'] = 'TRF_NOINPUT' + outmap['exitMsg'] = 'Trouble reading json input dict.' + traceback.print_exc() + return + + if not nfiles : # problem with job definition or reading json file + outmap['exitCode'] = 102 + outmap['exitAcronym'] = 'TRF_NOINPUT' + outmap['exitMsg'] = 'Empty input file list.' + return + + histtmpflist = [] + nevts = 0 + + try: + if isinstance(inputfilelist[0], unicode) : + histtmpdsname = (inputfilelist[0]).split('#')[0] + for val in inputfilelist : + histtmpflist.append(val.split('#')[1]) + + elif isinstance(inputfilelist[0], dict) : + histtmpdsname = inputfilelist[0]['dsn'] + for fdict in inputfilelist : + histtmpflist.append(fdict['lfn']) + nevt = fdict.get('events', 0) + if nevt is None: + nevt=0 + print "WARNING Can't get number of events from input json file" + nevts+=nevt + + f = open('hist_merge.list', 'w') + txtstr = "" + for hf in histtmpflist : + txtstr += "%s\n" % hf + f.write(txtstr) + f.close() + + cmd = "cat hist_merge.list" + (s,o) = commands.getstatusoutput(cmd) + print "\nContents of file hist_merge.list:\n" + print o + except: + outmap['exitCode'] = 103 + outmap['exitAcronym'] = 'TRF_INPUTINFO' + outmap['exitMsg'] = 'ERROR: crash in assembling input file list (STEP 1)' + traceback.print_exc() + return + + try: + print "\n##################################################################" + print "## STEP 2: determining job parameters..." + print "##################################################################\n" + + # output file + histdsname = (parmap['outputHistFile']).split('#')[0] + histfile = (parmap['outputHistFile']).split('#')[1] + amitag = histfile.split('.')[5] + + + # incremental mode on/off + incr = parmap.get('incrementalMode', 'False') + + # post-processing on/off + postproc = parmap.get('postProcessing', 'True') + + # database uploading on/off + allowCOOLUpload = parmap.get('allowCOOLUpload', 'True') + + # do web display + doWebDisplay = parmap.get('doWebDisplay', 'True') + + # production mode + productionMode = parmap.get('productionMode', 'True') + if productionMode != 'True' and incr == 'True': + print("Production mode is not True, turning off incremental mode") + incr = 'False' + + # get file paths, put into environment vars + filepaths = parmap.get('filepaths', None) + if filepaths and isinstance(filepaths, dict): + if 'basename' not in filepaths: + print("Improperly formed 'filepaths' (no 'basename')") + else: + for evtclass in ('Collisions', 'Cosmics', 'HeavyIons'): + if evtclass not in filepaths: + print("Improperly formed 'filepaths' (no '%s')" % evtclass) + else: + clinfo = filepaths[evtclass] + for timeclass in ('run', 'minutes10', 'minutes30'): + if timeclass not in clinfo: + print("Improperly formed 'filepaths[%s]' (no '%s')" % (evtclass, timeclass)) + else: + dqcenvvar = 'DQC_HCFG_%s_%s' % (evtclass.upper(), timeclass.upper()) + fpath = os.path.join(filepaths['basename'], clinfo[timeclass]) + print("Setting %s = %s" % (dqcenvvar, fpath)) + os.environ[dqcenvvar] = fpath + + # extract info from dataset name + # AMI project name + # override if tag has been specified in parmap + try : + dqproject = histdsname.split('.')[0] + except : + dqproject = 'data_test' + dqproject = parmap.get('projectTag', dqproject) + + # run number + if parmap.has_key('runNumber') : + runnr = parmap['runNumber'] + else : + try : + runnr = int(histdsname.split('.')[1]) + except : + runnr = 1234567890 + + # stream name + if parmap.has_key('streamName') : + stream = parmap['streamName'] + else : + try : + stream = histdsname.split('.')[2] + except : + stream = 'test_dummy' + + # processing pass number + MAX_XMLRPC_TRIES = 5 + if parmap.has_key('procNumber') : + procnumber = parmap['procNumber'] + else : + n_xmlrpc_tries = 1 + while n_xmlrpc_tries <= MAX_XMLRPC_TRIES : + procnumber = 99 + try : + xmlrpcserver = xmlrpclib.ServerProxy('http://atlasdqm.cern.ch:8888') + procnumber = xmlrpcserver.get_next_proc_pass(runnr, stream, 'tier0') + break + except : + print 'Web service connection failed, attempt', n_xmlrpc_tries, 'of', MAX_XMLRPC_TRIES + n_xmlrpc_tries += 1 + if n_xmlrpc_tries <= MAX_XMLRPC_TRIES: + time.sleep(20*2**n_xmlrpc_tries) + + print "Job parameters:\n" + print " Run number: ", runnr + print " Stream name: ", stream + print " Processing pass: ", procnumber + print " Incremental mode:", incr + print " Post-processing: ", postproc + print " COOL uploads: ", allowCOOLUpload + print " Production mode: ", productionMode + + except: + outmap['exitCode'] = 104 + outmap['exitAcronym'] = 'TRF_JOBPARS' + outmap['exitMsg'] = 'Error in determining job parameters (STEP 2).' + traceback.print_exc() + return + + try: + print "\n##################################################################" + print "## STEP 3: running histogram merging procedure ..." + print "##################################################################\n" + + # environment setting + os.environ['DQPRODUCTION'] = '1' if productionMode == 'True' else '0' + print "Setting env variable DQPRODUCTION to %s\n" % os.environ['DQPRODUCTION'] + os.environ['DQ_STREAM'] = stream + print "Setting env variable DQ_STREAM to %s\n" % os.environ['DQ_STREAM'] + os.environ['COOLUPLOADS'] = '1' if allowCOOLUpload == 'True' and productionMode == 'True' else '0' + print "Setting env variable COOLUPLOADS to %s\n" % os.environ['COOLUPLOADS'] + + if postproc == 'True' : + if incr == 'True': + cmd = "python -u `which DQHistogramMerge.py` hist_merge.list %s 1 1 %d %d " % (histfile,histMergeCompressionLevel,histMergeDebugLevel) + else: + cmd = "python -u `which DQHistogramMerge.py` hist_merge.list %s 1 0 %d %d" % (histfile,histMergeCompressionLevel,histMergeDebugLevel) + else : + cmd = "python -u `which DQHistogramMerge.py` hist_merge.list %s 0 0 %d %d" % (histfile,histMergeCompressionLevel,histMergeDebugLevel) + + print "Histogram merging command:\n" + print cmd + print "\n##################################################################\n" + + print "## ... logfile from DQHistogramMerge.py: " + print "--------------------------------------------------------------------------------" + tstart = time.time() + # execute command + retcode1 = os.system(cmd) + print "--------------------------------------------------------------------------------" + t1 = time.time() + dt1 = int(t1 - tstart) + + print "\n## DQHistogramMerge.py finished with retcode = %s" % retcode1 + print "## ... elapsed time: ", dt1, " sec" + + if retcode1 != 0 : + outmap['exitCode'] = retcode1 + outmap['exitAcronym'] = 'TRF_DQMHISTMERGE_EXE' + outmap['exitMsg'] = 'ERROR: DQHistogramMerge.py execution problem! (STEP 3).' + print "ERROR: DQHistogramMerge.py execution problem!" + retcode = retcode1 + txt = 'DQHistogramMerge.py execution problem' + try: + try: + infilelist=open('hist_merge.list','r') + for infname in infilelist: + genmd5sum(infname.rstrip(os.linesep)) + finally: + infilelist.close() + genmd5sum(histfile) + DQResFile="DQResourceUtilization.txt" + if os.path.exists(DQResFile): + print "dumping resource utilization log" + with open(DQResFile) as resfile: + for resline in resfile: + print resline, + except: + outmap['exitMsg'] = 'ERROR: DQHistogramMerge.py execution problem + problem dumping DQResourceUtilization! (STEP 3).' + traceback.print_exc() + print "ERROR: DQHistogramMerge.py execution problem + problem dumping DQResourceUtilization!" + return + + if postproc == 'True' and incr == 'False': + print "\n##################################################################" + print "## STEP 3b: copying postprocessing output to AFS ..." + print "##################################################################\n" + + cmd = "python -u `which DQFileMove.py` %s %s_%s_%s" % (dqproject, runnr, stream, procnumber) + + print "File move command:\n" + print cmd + print "\n##################################################################\n" + + print "## ... logfile from DQFileMove.py: " + print "--------------------------------------------------------------------------------" + # execute command + retcode1b = os.system(cmd) + print "--------------------------------------------------------------------------------" + t1b = time.time() + dt1b = int(t1b - t1) + t1 = t1b + + print "\n## DQFileMove.py finished with retcode = %s" % retcode1b + print "## ... elapsed time: ", dt1b, " sec" + except: + outmap['exitCode'] = 105 + outmap['exitAcronym'] = 'TRF_DQMHISTMERGE_EXE' + outmap['exitMsg'] = 'ERROR: Failure in histogram merging or copying postprocessing output to AFS (STEP 3/3b).' + traceback.print_exc() + return + + try: + retcode2 = 0 + dt2 = 0 + if doWebDisplay == 'True': + print "\n##################################################################" + print "## STEP 4: running web-display creation procedure ..." + print "##################################################################\n" + + cmd = "python -u `which DQWebDisplay.py` %s %s %s %s stream=%s" % (histfile, dqproject, procnumber, incr, stream) + + print "Web display creation command:\n" + print cmd + print "\n##################################################################\n" + + print "## ... logfile from DQWebDisplay.py: " + print "--------------------------------------------------------------------------------" + # execute command + retcode2 = os.system(cmd) + print 'DO NOT REPORT "Error in TH1: cannot merge histograms" ERRORS! THESE ARE IRRELEVANT!' + print "--------------------------------------------------------------------------------" + t2 = time.time() + dt2 = int(t2 - t1) + + print "\n## DQWebDisplay.py finished with retcode = %s" % retcode2 + print "## ... elapsed time: ", dt2, " sec" + if not (retcode2 >> 8) in (0, 5) : + print "ERROR: DQWebDisplay.py execution problem!" + outmap['exitCode'] = retcode2 + outmap['exitAcronym'] = 'TRF_DQMDISPLAY_EXE' + outmap['exitMsg'] = 'ERROR: DQWebDisplay.py execution problem! (STEP 4).' + try: + infilelist=open('hist_merge.list','r') + for infname in infilelist: + genmd5sum(infname.rstrip(os.linesep)) + finally: + infilelist.close() + genmd5sum(histfile) + return + if productionMode == 'True': + try: + print 'Publishing to message service' + publish_success_to_mq(runnr, dqproject, stream, incr=(incr=='True'), ami=amitag, procpass=procnumber, hcfg=filepaths, isprod=(productionMode=='True')) + except: + outmap['exitCode'] = 106 + outmap['exitAcronym'] = 'TRF_DQMDISPLAY_EXE' + outmap['exitMsg'] = 'ERROR: Failure in publishing info to messaging service (STEP 4).' + traceback.print_exc() + return + else: + print "\n##################################################################" + print "## WEB DISPLAY CREATION SKIPPED BY USER REQUEST" + print "##################################################################\n" + print 'Web display off, not publishing to message service' + except: + outmap['exitCode'] = 106 + outmap['exitAcronym'] = 'TRF_DQMDISPLAY_EXE' + outmap['exitMsg'] = 'ERROR: Failure in web-display creation procedure (STEP 4).' + print 'ERROR: Failure in web-display creation procedure (STEP 4).' + traceback.print_exc() + return + + print "\n##################################################################" + print "## STEP 5: finishing the job ..." + print "##################################################################\n" + + # get info for report json file + try: + outfiles = [getSubFileMap(histfile, nevts=nevts)] + # assemble job report map + outmap['files']['output'][0]['dataset'] = histdsname + outmap['files']['output'][0]['subFiles'] = outfiles + outmap['resource']['transform']['processedEvents'] = long(nevts) + return + except: + outmap['exitCode'] = 107 + outmap['exitAcronym'] = 'TRF_JOBREPORT' + outmap['exitMsg'] = 'ERROR: in job report creation (STEP 5)' + print "ERROR: in job report creation (STEP 5) !" + traceback.print_exc() + return + +def dq_trf_wrapper(jsonfile): + print "\n##################################################################" + print "## ATLAS Tier-0 Offline DQM Processing ##" + print "##################################################################\n" + + outmap = { 'exitAcronym' : 'OK', + 'exitCode' : 0, + 'exitMsg' : 'trf finished OK', + 'files' : { 'output' : [{ 'dataset' : '', + 'subFiles' : [ {}, + ]} + ] }, + 'resource' : { 'transform' : { 'processedEvents' : 0L } } + } + + # dq_combined_trf will update outmap + tstart = time.time() + dq_combined_trf(jsonfile, outmap) + outmap['resource']['transform']['wallTime'] = int(time.time() - tstart) + + # dump json report map + f = open('jobReport.json', 'w') + json.dump(outmap, f) + f.close() + + # summarize status + print "\n## ... job finished with retcode : %s" % outmap['exitCode'] + print "## ... error acronym: ", outmap['exitAcronym'] + print "## ... job status message: ", outmap['exitMsg'] + print "## ... elapsed time: ", outmap['resource']['transform']['wallTime'], "sec" + print "##" + print "##################################################################" + print "## End of job." + print "##################################################################\n" + + +######################################## +## main() +######################################## + +if __name__ == "__main__": + + if (len(sys.argv) != 2) and (not sys.argv[1].startswith('--argJSON=')) : + print "Input format wrong --- use " + print " --argJSON=<json-dictionary containing input info> " + print " with key/value pairs: " + print " 1) 'inputHistFiles': python list " + print " ['datasetname#filename1', 'datasetname#filename2',...] (input dataset + file names) " + print " or list of file dictionaries " + print " [{'lfn':'fname1', 'checksum':'cks1', 'dsn':'dsn1', 'size':sz1, 'guid':'guid1', 'events':nevts1, ...}, " + print " {'lfn':'fname2', 'checksum':'cks2', 'dsn':'dsn2', 'size':sz2, 'guid':'guid2', 'events':nevts2, ...}, ...] " + print " 2) 'outputHistFile': string 'datasetname#filename' " + print " (HIST output dataset name + file) " + print " optional parameters: " + print " 3) 'incrementalMode': string ('True'/'False') " + print " ('True': do incremental update of DQM webpages on top of existing statistics; " + print " 'False': create final DQM webpages, replace temporary ones) " + print " 4) 'postProcessing': string ('True'/'False', default: 'True') " + print " ('False': run histogram merging and DQ assessment only; " + print " 'True': run additional post-processing step (fitting, etc.)) " + print " 5) 'procNumber': int (number of processing pass, e.g. 1,2, ...) " + print " 6) 'runNumber': int " + print " 7) 'streamName': string (e.g., physics_IDCosmic, physics_Express, ...) " + print " 8) 'projectTag': string (e.g., data10_7TeV, TrigDisplay)" + print " 9) 'allowCOOLUpload': string ('True'/'False', default: 'True')" + print " ('True': allow upload of defects to database; " + print " 'False': do not upload defects to database)" + sys.exit(-1) + + else : + jsonfile = sys.argv[1][len('--argJSON='):] + dq_trf_wrapper(jsonfile) + diff --git a/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_trf.py b/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_trf.py index 810b1c553b10..173f2f5a4c16 100755 --- a/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_trf.py +++ b/DataQuality/DataQualityUtils/scripts/DQM_Tier0Wrapper_trf.py @@ -300,6 +300,7 @@ def dq_combined_trf(picklefile): # environment setting os.environ['DQPRODUCTION'] = '1' if productionMode == 'True' else '0' + os.environ['DQ_STREAM'] = stream print "Setting env variable DQPRODUCTION to %s\n" % os.environ['DQPRODUCTION'] os.environ['COOLUPLOADS'] = '1' if allowCOOLUpload == 'True' and productionMode == 'True' else '0' print "Setting env variable COOLUPLOADS to %s\n" % os.environ['COOLUPLOADS'] diff --git a/DataQuality/DataQualityUtils/scripts/checkCorrelInHIST.py b/DataQuality/DataQualityUtils/scripts/checkCorrelInHIST.py index 21c97ad3dd1a..4f56fa1f26ee 100644 --- a/DataQuality/DataQualityUtils/scripts/checkCorrelInHIST.py +++ b/DataQuality/DataQualityUtils/scripts/checkCorrelInHIST.py @@ -39,7 +39,7 @@ import string import argparse import xmlrpclib -import pathExtract +from DataQualityUtils import pathExtract from ROOT import TFile,TCanvas,TBox,TPaveText,TColor from ROOT import TH1,TH2,TH1I,TH1D,TH2D diff --git a/DataQuality/DataQualityUtils/scripts/hotSpotInHIST.py b/DataQuality/DataQualityUtils/scripts/hotSpotInHIST.py index 0c28384caadc..78ea304591cb 100644 --- a/DataQuality/DataQualityUtils/scripts/hotSpotInHIST.py +++ b/DataQuality/DataQualityUtils/scripts/hotSpotInHIST.py @@ -36,7 +36,7 @@ import os, sys import string import argparse,xmlrpclib -import pathExtract +from DataQualityUtils import pathExtract from ROOT import TFile,TCanvas,TBox,TColor,TLegend from ROOT import TH1,TH2,TH1I @@ -211,8 +211,8 @@ if (objectType == "EMTopoJets_eta"): # Tau if (objectType == "Tau"): histoPath = {"NoCut":"run_%d/Tau/tauPhiVsEta"%(runNumber), - "Et15GeV":"run_%d/Tau/tauPhiVsEta_et15"%(runNumber), - "Et15GeVBdtLoose":"run_%d/Tau/tauPhiVsEta_et15_BDTLoose"%(runNumber)} + "Et15GeV":"run_%d/Tau/tauPhiVsEtaEt15"%(runNumber), + "Et15GeVBdtLoose":"run_%d/Tau/tauPhiVsEtaEt15BDTLoose"%(runNumber)} histoLegend = {"NoCut":"Et > 4GeV", "Et15GeV":"Et > 10GeV", "Et15GeVBdtLoose":"Et > 15GeV-BDT loose"} diff --git a/DataQuality/DataQualityUtils/scripts/hotSpotInTAG.py b/DataQuality/DataQualityUtils/scripts/hotSpotInTAG.py index 48b677a87cfb..4c3860cbed85 100644 --- a/DataQuality/DataQualityUtils/scripts/hotSpotInTAG.py +++ b/DataQuality/DataQualityUtils/scripts/hotSpotInTAG.py @@ -23,7 +23,7 @@ import os, sys import string,math from math import fabs import argparse -import pathExtract +from DataQualityUtils import pathExtract import ROOT from ROOT import * @@ -130,7 +130,7 @@ if tagDirectory=="": # TAG files stored on EOS listOfFiles = pathExtract.returnEosTagPath(run,stream,amiTag,tag) if len(listOfFiles)>0: for files in listOfFiles: - tree.AddFile("root://eosatlas.cern.ch/%s"%(files)) + tree.AddFile("root://eosatlas/%s"%(files)) print "I chained the file %s"%(files) else: print "No file found on EOS.Exiting..." diff --git a/DataQuality/DataQualityUtils/scripts/physval_make_web_display.py b/DataQuality/DataQualityUtils/scripts/physval_make_web_display.py index ece67fc82208..f11fe0c7c2a1 100755 --- a/DataQuality/DataQualityUtils/scripts/physval_make_web_display.py +++ b/DataQuality/DataQualityUtils/scripts/physval_make_web_display.py @@ -35,7 +35,7 @@ def recurse(rdir, dqregion, ignorepath, refs=None, displaystring='Draw=PE', disp if ' ' in key.GetName(): print 'WARNING: cannot have spaces in histogram names for han config; not including %s %s' % (cl, key.GetName()) continue - if rcl.InheritsFrom('TH1'): + if rcl.InheritsFrom('TH1') or rcl.InheritsFrom('TGraph') or rcl.InheritsFrom('TEfficiency'): if '/' in key.GetName(): print 'WARNING: cannot have slashes in histogram names, encountered in directory %s, histogram %s' % (rdir.GetPath(), key.GetName()) continue @@ -74,6 +74,8 @@ def recurse(rdir, dqregion, ignorepath, refs=None, displaystring='Draw=PE', disp if options.ratio: drawstrs.append('RatioPad') #if options.ratio: drawstrs.append('Ref2DSignif') if options.ratio2D: drawstrs.append('Ref2DRatio') + if options.ratiorange is not None: + drawstrs.append('delta(%f)' % options.ratiorange) drawstrs.append('DataName=%s' % options.title) dqpar.addAnnotation('display', ','.join(drawstrs)) @@ -226,7 +228,8 @@ def super_process(fname, options): hanoutput, options.outdir, '', False, False, - 'https://atlasdqm.web.cern.ch/atlasdqm/js/') + 'https://atlasdqm.web.cern.ch/atlasdqm/js/', + 3 if options.jsRoot else 1) ## print '====> Copying to', hantargetdir ## hantargetfile = os.path.join(hantargetdir, 'out_han.root') ## if not os.access(hantargetdir, os.W_OK): @@ -291,7 +294,10 @@ if __name__=="__main__": help='Draw histograms with ratio plots') parser.add_option('--ratio2D', default=False, action='store_true', help='Draw 2D histograms with ratio plots') - + parser.add_option('--jsRoot',action='store_true', default=False, + help="make interactive jsRoot displays") + parser.add_option('--ratiorange', default=None, type=float, + help='set range for ratio plots (as delta to 1.0)') options, args = parser.parse_args() diff --git a/DataQuality/DataQualityUtils/scripts/readTier0HIST.py b/DataQuality/DataQualityUtils/scripts/readTier0HIST.py index a46ff408bf2d..c871a9b7dadb 100644 --- a/DataQuality/DataQualityUtils/scripts/readTier0HIST.py +++ b/DataQuality/DataQualityUtils/scripts/readTier0HIST.py @@ -18,7 +18,7 @@ import os, sys import argparse import xmlrpclib -import pathExtract +from DataQualityUtils import pathExtract from ROOT import TFile,TBrowser from ROOT import gStyle diff --git a/DataQuality/DataQualityUtils/scripts/readTier0LARNOISE.py b/DataQuality/DataQualityUtils/scripts/readTier0LARNOISE.py index 70428e4bc952..31dbeefa551b 100644 --- a/DataQuality/DataQualityUtils/scripts/readTier0LARNOISE.py +++ b/DataQuality/DataQualityUtils/scripts/readTier0LARNOISE.py @@ -14,10 +14,10 @@ import os, sys import argparse -import pathExtract +from DataQualityUtils import pathExtract import xmlrpclib -from ROOT import TFile,TBrowser +from ROOT import TFile,TBrowser,TChain from ROOT import gStyle gStyle.SetPalette(1) @@ -65,7 +65,7 @@ tree = TChain("CollectionTree") print listOfFiles for fileNames in listOfFiles: print "Adding %s"%(fileNames) - tree.AddFile("root://eosatlas.cern.ch/%s"%(fileNames)) + tree.AddFile("root://eosatlas/%s"%(fileNames)) entries = tree.GetEntries() if entries != 0: diff --git a/DataQuality/DataQualityUtils/scripts/readTier0TAGs.py b/DataQuality/DataQualityUtils/scripts/readTier0TAGs.py index 4e80211c19d7..bd31946cc4a4 100644 --- a/DataQuality/DataQualityUtils/scripts/readTier0TAGs.py +++ b/DataQuality/DataQualityUtils/scripts/readTier0TAGs.py @@ -14,14 +14,12 @@ import os, sys import argparse -import pathExtract +from DataQualityUtils import pathExtract import xmlrpclib from ROOT import TFile,TChain from ROOT import gStyle - -#gROOT.Reset() gStyle.SetPalette(1) gStyle.SetOptStat("em") @@ -67,7 +65,7 @@ tree = TChain("POOLCollectionTree") file = {} for fileNames in listOfFiles: print "Adding %s"%(fileNames) - tree.AddFile("root://eosatlas.cern.ch/%s"%(fileNames)) + tree.AddFile("root://eosatlas/%s"%(fileNames)) entries = tree.GetEntries() if entries != 0: diff --git a/DataQuality/DataQualityUtils/src/HanOutputFile.cxx b/DataQuality/DataQualityUtils/src/HanOutputFile.cxx index 270e7e2207ae..adb22229ecbe 100644 --- a/DataQuality/DataQualityUtils/src/HanOutputFile.cxx +++ b/DataQuality/DataQualityUtils/src/HanOutputFile.cxx @@ -10,6 +10,7 @@ #include "DataQualityInterfaces/HanUtils.h" #include <sstream> +#include <fstream> #include <cstdlib> #include <boost/algorithm/string/case_conv.hpp> #include <boost/lexical_cast.hpp> @@ -31,6 +32,10 @@ #include <TF1.h> #include <TMath.h> #include <THStack.h> +#include <TImage.h> +#include <TBufferJSON.h> +#include <TString.h> +#include <TEfficiency.h> #define BINLOEDGE(h,n) h->GetXaxis()->GetBinLowEdge(n) #define BINWIDTH(h,n) h->GetXaxis()->GetBinWidth(n) @@ -164,8 +169,7 @@ getAllAssessments( AssMap_t& dirmap, TDirectory* dir ) TKey* key; while( (key = dynamic_cast<TKey*>( next() )) != 0 ) { TObject* obj = key->ReadObj(); - //TH1* h = dynamic_cast<TH1*>( obj ); - if( dynamic_cast<TH1*>(obj) || dynamic_cast<TGraph*>(obj) ) { + if( dynamic_cast<TH1*>(obj) || dynamic_cast<TGraph*>(obj) || dynamic_cast<TEfficiency*>(obj) ) { const char * path(dir->GetPath() ); std::string assName( obj->GetName() ); AssMap_t::value_type AssmapVal(assName, path); @@ -260,6 +264,12 @@ getNEntries( std::string location, std::string histname ) Nentries = g->GetN(); delete g; } + TEfficiency* e(0); + gDirectory->GetObject( histname.c_str(),e ); + if ( e != 0 ) { + Nentries = e->GetCopyTotalHisto()->GetEntries(); + delete e; + } return Nentries; } @@ -272,6 +282,8 @@ getNEntries( const TObject* obj ) return h->GetEntries(); } else if (const TGraph* g = dynamic_cast<const TGraph*>(obj)) { return g->GetN(); + } else if (const TEfficiency* e = dynamic_cast<const TEfficiency*>(obj)) { + return e->GetCopyTotalHisto()->GetEntries(); } else { std::cerr << "HanOutputFile::getNEntries(): " << "provided object is not a histogram or graph\n"; @@ -787,7 +799,7 @@ streamAllHistograms( std::ostream& o, bool streamAll ) int HanOutputFile:: -saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB ) +saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB ,int cnvsType) { if( m_file == 0 ) { std::cerr << "HanOutputFile::saveAllHistograms(): " @@ -824,7 +836,7 @@ saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB ) completeDir += "/"; std::cout << "Saving " << completeDir << " " << hisName << "\n" << std::flush; bool isSaved = saveHistogramToFile(hisName,completeDir,idir->second,drawRefs,run_min_LB, - (hisPath + "/" + hisName)); + (hisPath + "/" + hisName),cnvsType); if( isSaved ) ++nSaved; } @@ -832,10 +844,46 @@ saveAllHistograms( std::string location, bool drawRefs, std::string run_min_LB ) return nSaved; } +void getImageBuffer(TImage* img, TCanvas* myC, char** x, int* y){ + img->FromPad(myC); + img->GetImageBuffer(x, y, TImage::kPng); +} -bool +bool HanOutputFile::saveHistogramToFile( std::string nameHis, std::string location, TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName,int cnvsType){ + std::pair<std::string,std::string> pngAndJson = getHistogram(nameHis,groupDir,drawRefs,run_min_LB,pathName,cnvsType); + //std::string tosave = getHistogramPNG(nameHis, groupDir, drawRefs, run_min_LB, pathName); + if (pngAndJson.first== "") { + return false; + } + std::string namePNG = nameHis; + std::string nameJSON = nameHis; + + namePNG +=".png"; + nameJSON +=".json"; + + std::string::size_type i = location.find_last_of( '/' ); + if( i != (location.size()-1) ) { + location+="/"; + } + namePNG = location + namePNG; + nameJSON = location + nameJSON; + + return saveFile(cnvsType, namePNG,pngAndJson.first,nameJSON,pngAndJson.second); +} + +std::string HanOutputFile:: -saveHistogramToFile( std::string nameHis, std::string location, TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName){ +getHistogramPNG( std::string nameHis, TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName){ + int cnvsType = 0; + return getHistogram(nameHis, groupDir,drawRefs,run_min_LB,pathName,cnvsType).first; +} + +std::pair<std::string,std::string> HanOutputFile:: getHistogramJSON( std::string nameHis, TDirectory* groupDir, bool drawRefs,std::string run_min_LB, std::string pathName){ + int cnvsType = 1; + return getHistogram(nameHis, groupDir,drawRefs,run_min_LB,pathName,cnvsType); +} + +std::pair<std::string,std::string> HanOutputFile:: getHistogram( std::string nameHis, TDirectory* groupDir, bool drawRefs, std::string run_min_LB, std::string pathName,int cnvsType){ dqi::DisableMustClean disabled; groupDir->cd(); @@ -860,6 +908,10 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou gStyle->SetStatW(0.2); gStyle->SetStatH(0.1); + char* x; + int y; + std::string json; + TImage* img = TImage::Create(); gROOT->SetBatch(); std::string pathname( groupDir->GetPath() ); @@ -935,7 +987,7 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou TKey* hkey = groupDir->FindKey( nameHis.c_str() ); if( hkey == 0 ) { std::cerr << "Did not find TKey for \"" << nameHis << "\", will not save this histogram.\n"; - return false; + return std::pair<std::string,std::string>{"",""}; } TLegend* legend(0); TObject* hobj = hkey->ReadObj(); @@ -947,14 +999,15 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou TH1* h = dynamic_cast<TH1*>( hobj ); TH2* h2 = dynamic_cast<TH2*>( h ); TGraph* g = dynamic_cast<TGraph*>( hobj ); + TEfficiency* e = dynamic_cast<TEfficiency*>( hobj ); std::string name=nameHis; - name+=".png"; + /* name+=".png"; std::string::size_type i = location.find_last_of( '/' ); if( i != (location.size()-1) ) { location+="/"; } - name=location + name; + name=location + name; */ std::string AlgoName=getStringName(pathname+"/"+nameHis+"_/Config/name"); int ww = 550; int wh = 490; @@ -967,7 +1020,6 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou } if( h!=0 ){ - TCanvas *myC = new TCanvas( nameHis.c_str(), "myC", ww, wh ); // if( h->GetMinimum() >= 0) { @@ -1002,26 +1054,26 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou std::size_t fpos1,fpos2,fpos; fpos=display.find("MinStat"); if (fpos!= std::string::npos){ - fpos1=display.find("(",fpos+1); - if (fpos1!=std::string::npos) { - fpos2 = display.find(")",fpos1+1); - if (fpos2!=std::string::npos) { - std::string s_minstat=display.substr(fpos1+1,fpos2-fpos1-1); - minstat=std::strtod(s_minstat.c_str(),NULL); - } + fpos1=display.find("(",fpos+1); + if (fpos1!=std::string::npos) { + fpos2 = display.find(")",fpos1+1); + if (fpos2!=std::string::npos) { + std::string s_minstat=display.substr(fpos1+1,fpos2-fpos1-1); + minstat=std::strtod(s_minstat.c_str(),NULL); + } - } + } } std::string fitopt(""); fpos=display.find("FitOption"); if (fpos!= std::string::npos){ - fpos1=display.find("(",fpos+1); - if (fpos1!=std::string::npos) { - fpos2 = display.find(")",fpos1+1); - if (fpos2!=std::string::npos) { - fitopt=display.substr(fpos1+1,fpos2-fpos1-1); - } - } + fpos1=display.find("(",fpos+1); + if (fpos1!=std::string::npos) { + fpos2 = display.find(")",fpos1+1); + if (fpos2!=std::string::npos) { + fitopt=display.substr(fpos1+1,fpos2-fpos1-1); + } + } } //plot double gaus std::size_t found1 = display.find("doublegaus"); @@ -1157,14 +1209,14 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou << "Inconsistent x-axis settings: min=" << h->GetXaxis()->GetXmin() << ", " << "max=" << h->GetXaxis()->GetXmax() << ", " << "Will not save this histogram.\n"; - return false; + return std::pair<std::string,std::string>{"",""}; } if( h->GetYaxis()->GetXmin() >= h->GetYaxis()->GetXmax() ) { std::cerr << "HanOutputFile::saveHistogramToFile(): " << "Inconsistent y-axis settings: min=" << h->GetYaxis()->GetXmin() << ", " << "max=" << h->GetYaxis()->GetXmax() << ", " << "Will not save this histogram.\n"; - return false; + return std::pair<std::string,std::string>{"",""}; } axisOption(display,h2); if (drawopt =="") { @@ -1201,8 +1253,8 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou tt.SetNDC(); tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - - myC->SaveAs( name.c_str() ); + + convertToGraphics(cnvsType,myC,json,img,&x,&y); } else if( h != 0 ){ formatTH1( myC, h ); @@ -1214,7 +1266,7 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou << "Inconsistent x-axis settings: min=" << h->GetXaxis()->GetXmin() << ", " << "max=" << h->GetXaxis()->GetXmax() << ", " << "Will not save this histogram.\n"; - return false; + return std::pair<std::string,std::string>{"",""}; } h->SetLineColor(kBlack); h->SetMarkerColor(1); @@ -1390,9 +1442,7 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou displayExtra(myC,display); myC->RedrawAxis(); - if (hRef) { - ratioplot(myC ,h,hRef,display); //RatioPad - } + ratioplot(myC ,h,hRef,display); //RatioPad myC->cd();//might be unnecessary polynomial(myC,display,h); //draw polynome for TH1 @@ -1404,7 +1454,9 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou tt.SetNDC(); tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - myC->SaveAs(name.c_str()); + + convertToGraphics(cnvsType,myC,json,img,&x,&y); + } delete myC; gStyle->Reset(); @@ -1435,20 +1487,49 @@ saveHistogramToFile( std::string nameHis, std::string location, TDirectory* grou tt.SetNDC(); tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - myC->SaveAs( name.c_str() ); + //myC->SaveAs( name.c_str() ); + + convertToGraphics(cnvsType,myC,json,img,&x,&y); + + delete myC; + gStyle->Reset(); + } + + /*************************************************************************************************************/ + if( e != 0 ) { + TCanvas *myC = new TCanvas( nameHis.c_str(), "myC", ww, wh ); + myC->cd(); + formatTEfficiency( myC, e ); + e->Draw((std::string("AP") + drawopt).c_str()); + displayExtra(myC,display); + TLatex t; + t.SetNDC(); + t.SetTextSize(0.03); + t.DrawLatex(0.02,0.04,run_min_LB.c_str()); + TLatex tt; + tt.SetNDC(); + tt.SetTextSize(0.03); + tt.DrawLatex(0.02,0.01,pathName.c_str()); + convertToGraphics(cnvsType,myC,json,img,&x,&y); delete myC; gStyle->Reset(); } + + std::string rv(x, y); + std::pair<std::string,std::string>rvPair{rv,json}; + + delete img; delete hobj; delete hRef; delete legend; - return true; + return rvPair; + } bool HanOutputFile::saveHistogramToFileSuperimposed( std::string nameHis, std::string location, TDirectory* groupDir1, TDirectory* groupDir2, - bool drawRefs,std::string run_min_LB, std::string pathName){ + bool drawRefs,std::string run_min_LB, std::string pathName,int cnvsType){ dqi::DisableMustClean disabled; groupDir1->cd(); gStyle->SetFrameBorderMode(0); @@ -1509,14 +1590,19 @@ bool HanOutputFile::saveHistogramToFileSuperimposed( std::string nameHis, std::s TH1* h(0),*hist2(0); TH2* h2(0),*h2_2(0),*h2Diff(0); TGraph* g(0),*g2(0); + TEfficiency *e(0), *e2(0); - std::string name=nameHis; - name+=".png"; + std::string json; + std::string nameJSON = nameHis; + std::string namePNG = nameHis; + namePNG+=".png"; + nameJSON+=".json"; std::string::size_type i = location.find_last_of( '/' ); if( i != (location.size()-1) ) { location+="/"; } - name=location + name; + namePNG =location + namePNG; + nameJSON =location + nameJSON; std::string AlgoName=getStringName(pathname+"/"+nameHis+"_/Config/name"); int ww = 550; int wh = 490; @@ -1562,7 +1648,8 @@ bool HanOutputFile::saveHistogramToFileSuperimposed( std::string nameHis, std::s tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - myC->SaveAs( name.c_str() ); + convertToGraphics(cnvsType,myC,namePNG,nameJSON); + } else if( h != 0 && hist2!=0){ h->SetMarkerColor(1); h->SetFillStyle(0); @@ -1599,7 +1686,9 @@ bool HanOutputFile::saveHistogramToFileSuperimposed( std::string nameHis, std::s tt.SetNDC(); tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - myC->SaveAs(name.c_str()); + + convertToGraphics(cnvsType,myC,namePNG,nameJSON); + } //end histogram drawing delete myC; delete h2Diff; @@ -1628,7 +1717,35 @@ bool HanOutputFile::saveHistogramToFileSuperimposed( std::string nameHis, std::s tt.SetNDC(); tt.SetTextSize(0.03); tt.DrawLatex(0.02,0.01,pathName.c_str()); - myC->SaveAs( name.c_str() ); + + convertToGraphics(cnvsType,myC,namePNG,nameJSON); + + delete myC; + gStyle->Reset(); + } + + if(((e = dynamic_cast<TEfficiency*>(hobj))!=0 ) && ((e2=dynamic_cast<TEfficiency*>(hobj2))!=0) ){ + TCanvas *myC = new TCanvas( nameHis.c_str(), "myC", ww, wh ); + myC->cd(); + + formatTEfficiency( myC, e ); + formatTEfficiency( myC, e2 ); + e->Draw((std::string("AP") + drawopt).c_str()); + displayExtra(myC,display); + e2->SetMarkerColor(2); + e2->SetLineColor(2); + e2->Draw((std::string("P") + drawopt+" same").c_str()); + TLatex t; + t.SetNDC(); + t.SetTextSize(0.03); + t.DrawLatex(0.02,0.04,run_min_LB.c_str()); + TLatex tt; + tt.SetNDC(); + tt.SetTextSize(0.03); + tt.DrawLatex(0.02,0.01,pathName.c_str()); + + convertToGraphics(cnvsType,myC,namePNG,nameJSON); + delete myC; gStyle->Reset(); } @@ -2127,16 +2244,13 @@ void HanOutputFile::ratioplot (TCanvas* myC_upperpad ,TH1* h,TH1* hRef,std::stri TProfile* ph = dynamic_cast<TProfile*>( h ); TH1F *clonehist ; TH1F *clonehistref; - //transform if profiles - if( ph != 0 ) { + if( ph != 0 ) {//profile + std::cout<<"it is a TProfile\n"; clonehist=(TH1F*)ph->ProjectionX(); - } else { - clonehist=(TH1F*)h->Clone(); - clonehist->Sumw2(); - } - if ( phRef != 0 ) { clonehistref=(TH1F*)phRef->ProjectionX(); }else{ + clonehist=(TH1F*)h->Clone(); + clonehist->Sumw2(); clonehistref=(TH1F*)hRef->Clone(); clonehistref->Sumw2(); } @@ -2146,7 +2260,14 @@ void HanOutputFile::ratioplot (TCanvas* myC_upperpad ,TH1* h,TH1* hRef,std::stri formatTH1( myC_ratiopad, clonehist); clonehist->SetTitle(""); - clonehist->SetAxisRange(0.25,1.75,"Y"); + + // extract delta value from string that holds the draw options + double delta = 0.75; + if (display.find("delta(") != std::string::npos) { + delta = std::stod(display.substr(display.find("delta(") + 6)); + } + clonehist->SetAxisRange(1. - delta, 1. + delta, "Y"); + clonehist->GetYaxis()->SetNdivisions(3, true); clonehist->SetMarkerStyle(1); clonehist->Draw("E"); @@ -2576,6 +2697,14 @@ formatTGraph( TCanvas* c, TGraph* g ) const g->SetMarkerStyle(20); } +void HanOutputFile::formatTEfficiency( TCanvas* c, TEfficiency* e ) const { + if( c == 0 || e == 0 ) return; + c->SetLeftMargin(0.15); + c->SetRightMargin(0.13); + c->SetBottomMargin(0.15); + c->SetTopMargin(0.12); +} + // ********************************************************************* // Protected Methods // ********************************************************************* @@ -2603,6 +2732,69 @@ clearData() // gROOT->SetMustClean(useRecursiveDelete); } +bool +HanOutputFile:: +writeToFile(std::string fname ,std::string content) +{ + std::ofstream outfile(fname); + if (!outfile.is_open()){ + std::cerr << "Error writing file to " << fname <<std::endl; + return false; + } + outfile<<content; + outfile.close(); + return true; +} + +void HanOutputFile:: +convertToGraphics(int cnvsType, TCanvas* myC,std::string &json, TImage *img,char **x, int *y) +{ + int GENERATE_PNG = 1; // Make PNG with TImage + int GENERATE_JSON = 2; // Make JSON + if (cnvsType & GENERATE_PNG) + { + if(img) getImageBuffer(img,myC,x,y); + } + if (cnvsType & GENERATE_JSON) + { + json = TBufferJSON::ConvertToJSON(myC); + } +} + +void HanOutputFile:: +convertToGraphics(int cnvsType, TCanvas* myC,std::string namePNG,std::string nameJSON) +{ + int GENERATE_PNG = 1; // Make PNG with TImage + int GENERATE_JSON = 2; // Make JSON + if (cnvsType & GENERATE_PNG) + { + myC->SaveAs(namePNG.c_str()); + } + if (cnvsType & GENERATE_JSON) + { + std::string json = std::string(TBufferJSON::ConvertToJSON(myC)); + writeToFile(nameJSON,json); + } +} + +bool HanOutputFile:: +saveFile(int cnvsType, std::string pngfName,std::string pngContent, std::string jsonfName, std::string jsonfContent) +{ + int GENERATE_PNG = 1; // Make PNG with TImage + int GENERATE_JSON = 2; // Make JSON + + bool png =false; + bool json=false; + if (cnvsType & GENERATE_PNG) + { + png = writeToFile(pngfName,pngContent); + } + if (cnvsType & GENERATE_JSON) + { + json = writeToFile(jsonfName,jsonfContent); + } + return (png || json); +} } // namespace dqutils diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile.cxx index 951ea9669a3d..f80b65917e6b 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile.cxx @@ -37,6 +37,7 @@ #include <TKey.h> #include <TROOT.h> #include <TTree.h> +#include <TEfficiency.h> ClassImp(dqutils::MonitoringFile) @@ -570,6 +571,7 @@ mergeDirectory( TDirectory* outputDir, const std::vector<TFile*>& inputFiles, bo TH1* h(0); TGraph* g(0); + TEfficiency* e(0); TDirectory* d(0); TTree* t(0); TObject* targetObj(0); @@ -579,9 +581,13 @@ mergeDirectory( TDirectory* outputDir, const std::vector<TFile*>& inputFiles, bo // g = dynamic_cast<TGraph*>( obj.get() ); // t = dynamic_cast<TTree*>( obj.get() ); - if((targetDir)&&((h = dynamic_cast<TH1*>( obj.get() )) || //merge only objects below target directory - (g = dynamic_cast<TGraph*>( obj.get() ))|| - ((keyName != "metadata") && (t = dynamic_cast<TTree*>( obj.get() ))))) { + //merge only objects below target directory + if ( (targetDir) && ( (h = dynamic_cast<TH1*>(obj.get())) + || (g = dynamic_cast<TGraph*>(obj.get())) + ||((t = dynamic_cast<TTree*>(obj.get())) && (keyName!="metadata")) + || (e = dynamic_cast<TEfficiency*>(obj.get())) + ) + ) { //skip cases where regexp doesn't match object name, all directories are processed by default if(m_useRE){ if(!boost::regex_search(keyName,*m_mergeMatchHistoRE)){ @@ -615,6 +621,12 @@ mergeDirectory( TDirectory* outputDir, const std::vector<TFile*>& inputFiles, bo << " TTree \"" << keyName << "\" requests merging type " << mergeType << " but only default merging implemented for TTrees\n"; } + if( e && (md.merge != "<default>") ) { + std::cerr << "MonitoringFile::mergeDirectory(): " + << "In directory \"" << inputDir->GetPath() << "\",\n" + << " TEfficiency \"" << keyName << "\" requests merging type " << mergeType + << " but only default merging implemented for TEfficiency\n"; + } }else { std::cerr << "MonitoringFile::mergeDirectory(): " << "In directory \"" << inputDir->GetPath() << "\",\n" @@ -742,7 +754,7 @@ void MonitoringFile:: mergeFiles( std::string outFileName, const std::vector<std::string>& files ) { - //dqi::DisableMustClean disabled; + dqi::DisableMustClean disabled; TH1::AddDirectory(false); if(m_useRE){ std::cout<<" ========== Using regular expressions for selective merging ========== "<<std::endl; @@ -1401,6 +1413,12 @@ execute( TGraph* graph ) return true; } +bool MonitoringFile::CopyHistogram::execute( TEfficiency* eff ) { + m_target->cd(); + eff->Write(); + return true; +} + bool MonitoringFile::CopyHistogram:: @@ -1437,6 +1455,18 @@ executeMD( TGraph* graph, const MetaData& md ) } +bool MonitoringFile::CopyHistogram::executeMD( TEfficiency* eff, const MetaData& md ) { + m_target->cd(); + eff->Write(); + copyString( m_nameData, md.name ); + copyString( m_intervalData, md.interval ); + copyString( m_chainData, md.chain ); + copyString( m_mergeData, md.merge ); + m_metadata->Fill(); + return true; +} + + void MonitoringFile::CopyHistogram:: copyString( char* to, const std::string& from ) @@ -1490,6 +1520,22 @@ execute( TGraph* graph ) } +bool MonitoringFile::GatherStatistics::execute( TEfficiency* eff ) { + ++m_nEfficiency; + + TH1* h_total = eff->GetCopyPassedHisto(); + TH2* h_total2D = dynamic_cast<TH2*>( h_total ); + + if( h_total2D != 0 ) { + m_nEfficiencyBins += (h_total2D->GetNbinsX() * h_total2D->GetNbinsY()); + return true; + } else { + m_nEfficiencyBins += h_total->GetNbinsX(); + return true; + } +} + + MonitoringFile::GatherNames:: GatherNames() { @@ -1514,6 +1560,12 @@ execute( TGraph* graph ) } +bool MonitoringFile::GatherNames::execute( TEfficiency* eff ) { + m_names.push_back( std::string(eff->GetName()) ); + return true; +} + + void MonitoringFile:: clearData() @@ -1582,15 +1634,15 @@ loopOnHistograms( HistogramOperation& fcn, TDirectory* dir ) TKey* key; while( (key = dynamic_cast<TKey*>( next() )) != 0 ) { TObject* obj = key->ReadObj(); - TH1* h = dynamic_cast<TH1*>( obj ); - if( h != 0 ) { + TH1* h(0); + TGraph* g(0); + TEfficiency* e(0); + if ((h = dynamic_cast<TH1*>(obj))) { fcn.execute( h ); - } - else { - TGraph* g = dynamic_cast<TGraph*>( obj ); - if( g != 0 ) { - fcn.execute( g ); - } + } else if ((g = dynamic_cast<TGraph*>(obj))) { + fcn.execute( g ); + } else if ((e = dynamic_cast<TEfficiency*>(obj))) { + fcn.execute( e ); } delete obj; } @@ -1738,6 +1790,7 @@ int MonitoringFile::mergeObjs(TObject *objTarget, TObject *obj, std::string merg TH2 *h2=0, *nextH2=0; TGraph *g=0; TTree *t=0; + TEfficiency *e=0; // h = dynamic_cast<TH1*>( objTarget ); // g = dynamic_cast<TGraph*>( objTarget ); @@ -1794,6 +1847,16 @@ int MonitoringFile::mergeObjs(TObject *objTarget, TObject *obj, std::string merg listG.Add( nextG ); g->Merge( &listG ); listG.Clear(); + }else if( (e = dynamic_cast<TEfficiency*>( objTarget )) ) { // TEfficiencies + if( mergeType != "<default>" ) { + std::cerr << name << ": TEfficiency " << obj->GetName() << " request mergeType = " << mergeType + << " but only default merging implemented for TEfficiencies.\n"; + } + TEfficiency *nextE = dynamic_cast<TEfficiency*>( obj ); + TList listE; + listE.Add( nextE ); + e->Merge( &listE ); + listE.Clear(); }else if ((t = dynamic_cast<TTree*>( objTarget ))) { // TTrees if ( debugLevel >= VERBOSE) { std::cout << "Merging Tree " << obj->GetName() << std::endl; @@ -1908,7 +1971,8 @@ int MonitoringFile::mergeLB_createListOfHistos(TDirectory *dir_top, TDirectory * std::string keyClassName(key->GetClassName()); if( ( (keyClassName.size() > 2) && ( (keyClassName.substr(0,3) == "TH1") || (keyClassName.substr(0,3) == "TH2") ) ) || ( (keyClassName.size() > 7) && ( (keyClassName.substr(0,8) == "TProfile") ) ) || - ( (keyClassName.size() > 5) && ( (keyClassName.substr(0,6) == "TGraph") ) ) ) { + ( (keyClassName.size() > 5) && ( (keyClassName.substr(0,6) == "TGraph") ) ) || + ( (keyClassName.size() > 10) && ( (keyClassName.substr(0,11) == "TEfficiency") ) ) ) { if( debugLevel >= VERBOSE ) std::cout << name << ": found object: " << key->GetName(); @@ -2178,7 +2242,7 @@ void MonitoringFile::buildLBToIntervalMap(std::vector<TDirectory*>& v_dirLBs, st << v_splits[1] << std::endl; try { v_ranges.push_back(std::make_pair(*dirit, std::make_pair(boost::lexical_cast<int>(v_splits[0]), boost::lexical_cast<int>(v_splits[1])))); - } catch (const boost::bad_lexical_cast& e) { + } catch (boost::bad_lexical_cast e) { std::cerr << "Unable to cast to integers: " << v_splits[0] << " " << v_splits[1] << std::endl; } diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTJetPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTJetPostProcess.cxx index e36ab289eeaf..1f25a9b566fc 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTJetPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTJetPostProcess.cxx @@ -36,6 +36,8 @@ namespace dqutils { + static const bool hltjet_debug = false; + void MonitoringFile::HLTJetPostProcess( std::string inFilename, bool /* isIncremental */ ) { diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMETPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMETPostProcess.cxx index c44591fde9d7..0fe1fdb0eff4 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMETPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMETPostProcess.cxx @@ -36,6 +36,8 @@ namespace dqutils { + static const bool hltmet_debug = false; + void MonitoringFile::HLTMETPostProcess( std::string inFilename, bool /* isIncremental */ ) { diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMuonHistogramDivision.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMuonHistogramDivision.cxx index fb25403aec48..41738295d353 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMuonHistogramDivision.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_HLTMuonHistogramDivision.cxx @@ -110,7 +110,7 @@ namespace dqutils { TString muon_dir = run_dir + "/HLT/MuonMon/"; TString cm_dir = muon_dir + "Common/"; - TString mf_dir = muon_dir + "muFast/"; + TString mf_dir = muon_dir + "L2MuonSA/"; TString mc_dir = muon_dir + "muComb/"; TString mi_dir = muon_dir + "muIso/"; TString tm_dir = muon_dir + "TileMu/"; @@ -136,10 +136,11 @@ namespace dqutils { TH1F* h1num(0); TH1F* h1den(0); TH1F* h1sumeff(0); // new YY + TH1F *h1effsum(nullptr); TGraphAsymmErrors* h1tmpg; //==Efficiency - // muFast efficiency + // L2MuonSA efficiency TDirectory* dir = mf.GetDirectory(eff_dir); if(!dir){ std::cerr<< "HLTMuonHistogramDivision: directory "<<eff_dir<<" not found"<<std::endl; @@ -147,11 +148,11 @@ namespace dqutils { } std::vector<TString> effnames; - effnames.push_back("muFast_effi_toRecMuonCB_pt"); - effnames.push_back("muFast_effi_toRecMuonCB_pt_barrel"); - effnames.push_back("muFast_effi_toRecMuonCB_pt_endcap"); - effnames.push_back("muFast_effi_toRecMuonCB_eta"); - effnames.push_back("muFast_effi_toRecMuonCB_phi"); + effnames.push_back("L2MuonSA_effi_toRecMuonCB_pt"); + effnames.push_back("L2MuonSA_effi_toRecMuonCB_pt_barrel"); + effnames.push_back("L2MuonSA_effi_toRecMuonCB_pt_endcap"); + effnames.push_back("L2MuonSA_effi_toRecMuonCB_eta"); + effnames.push_back("L2MuonSA_effi_toRecMuonCB_phi"); for( std::vector<TString>::iterator it = effnames.begin(); it != effnames.end(); it++ ){ seff = eff_dir + (*it); @@ -491,8 +492,10 @@ namespace dqutils { //iSTDL = 54; // 15 GeV iSTDH = 75; // 25 GeV }else{ - iSTDL = 91; // 40 GeV + iSTDL = 105; // 60 GeV + //iSTDL = 91; // 40 GeV iSTDH = 120; // 100 GeV + //iSTDH = 120; // 100 GeV } int iMSL = 105; // 60 GeV int iMSH = 120; // 100 GeV @@ -503,7 +506,7 @@ namespace dqutils { } // YY added: enum ieffAlgo { - iMuFast = 0, // StdAlgo + iL2MuonSA = 0, // StdAlgo iMuComb = 1, // StdAlgo iEFCB = 2, // StdAlgo iMuGirl = 3, // StdAlgo @@ -512,8 +515,8 @@ namespace dqutils { }; // Standard Chains - //TString m_alg[5] = {"_MuFast", "_MuComb", "_MuonEFMS", "_MuonEFSA", "_MuonEFCB"}; - //TString m_wrtalg[5] = {"_L1", "_MuFast", "_MuComb", "_MuComb", "_MuComb"}; + //TString alg[5] = {"_L2MuonSA", "_MuComb", "_MuonEFMS", "_MuonEFSA", "_MuonEFCB"}; + //TString wrtalg[5] = {"_L1", "_L2MuonSA", "_MuComb", "_MuComb", "_MuComb"}; // ******************************************************// // start the code add by Yuan // @@ -673,14 +676,14 @@ namespace dqutils { continue; } - int iSTDL = 39; + int iSTDL = 75;//25GeV int iSTDH = 120; if(HI_pp_key){//HI run 4-25GeV iSTDL = 17; iSTDH = 75; } double sumeff, sumerr; - double sumn = h1numb->Integral(iSTDL, iSTDH); // 10-100 GeV + double sumn = h1numb->Integral(iSTDL, iSTDH); // 60-100 GeV double sumd = h1denb->Integral(iSTDL, iSTDH); if (sumd == 0.) { sumeff = 0.; @@ -702,6 +705,7 @@ namespace dqutils { sumeff = (double)sumn / (double) sumd; sumerr = sqrt((double)sumn * (1.-sumeff)) / (double)sumd; } + h1sumL->GetYaxis()->SetTitle("Efficiency"); h1sumL->SetBinContent(2, sumeff); h1sumL->SetBinError(2, sumerr); h1sumL->SetMinimum(0.0); @@ -774,7 +778,7 @@ namespace dqutils { continue; } - sumn = h1num_mu0_15->Integral(iSTDL, iSTDH); // 10-100 GeV + sumn = h1num_mu0_15->Integral(iSTDL, iSTDH); // 25-100 GeV sumd = h1den_mu0_15->Integral(iSTDL, iSTDH); if (sumd == 0.) { sumeff = 0.; @@ -808,16 +812,19 @@ namespace dqutils { sumeff = (double)sumn / (double) sumd; sumerr = sqrt((double)sumn * (1.-sumeff)) / (double)sumd; } + h1sum_mu->GetYaxis()->SetTitle("Efficiency"); h1sum_mu->SetBinContent(3, sumeff); h1sum_mu->SetBinError(3, sumerr); + h1sum_mu->SetMaximum(1.05); + h1sum_mu->SetMinimum(0.0); dir->cd(); h1sum_mu->Write("",TObject::kOverwrite); mf.Write(); } // end of the code add by Yuan // // ******************************************************// - TString alg2[3] = {"_MuFast", "_MuonEFMS", "_MuonEFSA"}; - TString wrtalg2[3] = {"_L1", "_MuFast", "_MuFast"}; + TString alg2[3] = {"_L2MuonSA", "_MuonEFMS", "_MuonEFSA"}; + TString wrtalg2[3] = {"_L1", "_L2MuonSA", "_L2MuonSA"}; // ******************************************************// // ****************** MSonly Chains ********************// @@ -888,7 +895,7 @@ namespace dqutils { } int iholx = -1; if (0 == alg) { - iholx = static_cast<int>(iMuFast); + iholx = static_cast<int>(iL2MuonSA); } else if (2 == alg) { iholx = static_cast<int>(iEFSA); } @@ -905,6 +912,7 @@ namespace dqutils { } h1sumeff->SetBinContent(iholx+1, sumeff); h1sumeff->SetBinError(iholx+1, sumerr); + h1sumeff->GetYaxis()->SetTitleOffset(1.3); h1sumeff->SetMinimum(0.0); h1sumeff->SetMaximum(1.05); // saving @@ -979,7 +987,7 @@ namespace dqutils { } int iholx = -1; if (0 == alg) { - iholx = static_cast<int>(iMuFast); + iholx = static_cast<int>(iL2MuonSA); } else if (2 == alg) { iholx = static_cast<int>(iEFSA); } @@ -994,6 +1002,7 @@ namespace dqutils { } continue; } + h1sumeff->GetYaxis()->SetTitleOffset(1.3); h1sumeff->SetBinContent(iholx+1, sumeff); h1sumeff->SetBinError(iholx+1, sumerr); h1sumeff->SetMinimum(0.0); @@ -1013,7 +1022,7 @@ namespace dqutils { // for ES, L1 ------------------------------------------------------------ if (0 == alg) { sden = nd_dir + chainName + triggerES[ies] + "_Turn_On_Curve_wrt_MuidSA_Denominator"; - snum = nd_dir + chainName + triggerES[ies] + "_MuFast" + "_Turn_On_Curve_wrt" + "_L1" + "_Denominator"; + snum = nd_dir + chainName + triggerES[ies] + "_L2MuonSA" + "_Turn_On_Curve_wrt" + "_L1" + "_Denominator"; seff = eff_dir + chainName + triggerES[ies] + "_L1" + "_Turn_On_Curve_wrt_MuidSA"; seffg = seff + "_Fit"; stmp = chainName + triggerES[alg] + "_L1"+"_Turn_On_Curve_wrt_MuidSA"; @@ -1060,7 +1069,7 @@ namespace dqutils { for (int be = 0; be < 2; be++) { sden = nd_dir + chainName + triggerES[ies] + "_Turn_On_Curve_wrt_MuidSA" + bestr[be] + "_Denominator"; - snum = nd_dir + chainName + triggerES[ies] + "_MuFast" + "_Turn_On_Curve_wrt" + "_L1" + bestr[be] + "_Denominator"; + snum = nd_dir + chainName + triggerES[ies] + "_L2MuonSA" + "_Turn_On_Curve_wrt" + "_L1" + bestr[be] + "_Denominator"; seff = eff_dir + chainName + triggerES[ies] + "_L1" + bestr[be] + "_Turn_On_Curve_wrt_MuidSA"; seffg = seff + "_Fit"; stmp = chainName + triggerES[ies] + "_L1" + bestr[be] + "_Turn_On_Curve_wrt_MuidSA"; @@ -1167,7 +1176,7 @@ namespace dqutils { } int iholx = -1; if (0 == alg) { - iholx = static_cast<int>(iMuFast); + iholx = static_cast<int>(iL2MuonSA); } else if (2 == alg) { iholx = static_cast<int>(iEFSA); } @@ -1182,6 +1191,7 @@ namespace dqutils { } continue; } + h1sumeff->GetYaxis()->SetTitleOffset(1.3); h1sumeff->SetBinContent(iholx+1, sumeff); h1sumeff->SetBinError(iholx+1, sumerr); h1sumeff->SetMinimum(0.0); @@ -1779,14 +1789,14 @@ namespace dqutils { } if(h1num && h1den){ - h1tmp = (TH1F*)h1den->Clone(); - h1tmp->SetName(stmp); - h1tmp->SetTitle(stmp); - h1tmp->GetYaxis()->SetTitle("Efficiency"); - h1tmp->Reset(); - h1tmp->Divide(h1num, h1den, 1., 1., "B"); - dir->cd(); - h1tmp->Write(); + // h1tmp = (TH1F*)h1den->Clone(); + // h1tmp->SetName(stmp); + // h1tmp->SetTitle(stmp); + // h1tmp->GetYaxis()->SetTitle("Efficiency"); + // h1tmp->Reset(); + // h1tmp->Divide(h1num, h1den, 1., 1., "B"); + // dir->cd(); + // h1tmp->Write(); h1tmpg = new TGraphAsymmErrors(); h1tmpg->SetName(stmpg); h1tmpg->SetMarkerStyle(20); @@ -1795,7 +1805,7 @@ namespace dqutils { h1tmpg->BayesDivide(h1num, h1den); h1tmpg->GetYaxis()->SetTitle("Efficiency"); h1tmpg->GetXaxis()->SetTitle(h1den->GetXaxis()->GetTitle()); - dir->cd(); + ztpdir->cd(); h1tmpg->Write(); delete h1tmpg; } @@ -1933,7 +1943,7 @@ namespace dqutils { //const int MAXARR = 3; //std::string charr[MAXARR] = {"mu36_tight", "mu24i_tight", "mu50_MSonly_barrel_tight"}; //std::string monarr[MAXARR] = {"_EFmuon", "_EFmuon", "_MuonEFSA"}; - //std::string monL2arr[MAXARR] = {"_MuFast", "_MuFast", "_MuFast"}; + //std::string monL2arr[MAXARR] = {"_L2MuonSA", "_L2MuonSA", "_L2MuonSA"}; //bool isBarrelMon[MAXARR] = {false, false, true}; // enable MSonly //bool isMSbMon[MAXARR] = {true, false, false}; // Skip isol and MSonly //bool monL1[MAXARR] = {true, true, false}; // Skip MSonly @@ -1943,7 +1953,7 @@ namespace dqutils { const int MAXARR = 6; std::string charr[MAXARR] = {"muChain1", "muChain2", "muChainEFiso1", "muChainEFiso2","muChainMSonly1","muChainMSonly2"}; std::string monarr[MAXARR] = {"_EFmuon", "_EFmuon", "_EFmuon", "_EFmuon", "_MuonEFSA", "_MuonEFSA"}; - std::string monL2arr[MAXARR] = {"_MuFast", "_MuFast", "_MuFast", "_MuFast", "_MuFast", "_MuFast"}; + std::string monL2arr[MAXARR] = {"_L2MuonSA", "_L2MuonSA", "_L2MuonSA", "_L2MuonSA", "_L2MuonSA", "_L2MuonSA"}; bool isBarrelMon[MAXARR] = {false, false, false, false, true, true}; // enable MSonly bool isMSbMon[MAXARR] = {true, true,false, false,false, false}; // Skip isol and MSonly bool monL1[MAXARR] = {true, true, true, true, false, false}; // Skip MSonly @@ -2006,6 +2016,7 @@ namespace dqutils { sumeff = (double)sumn / (double) sumd; sumerr = sqrt((double)sumn * (1.-sumeff)) / (double)sumd; } + h1eff->GetYaxis()->SetTitle("Efficiency"); h1eff->SetBinContent(ibin-1, sumeff); //// h1eff->SetBinError(ibin-1, sumerr); //// h1eff->SetMinimum(0.0); @@ -2016,8 +2027,8 @@ namespace dqutils { /* 3. Picking up chainDQ MSonly graph abandoned !!!*/ /* EF efficiency wrt L1, as for the ztp graph = overall HLT efficiency wrt L1: not possible, wrt offline if (isMSbMon[ialg]) { // skip muIso and MSonly !!! - TString histChNum = nd_dir + chainName + m_MSchainName + MoniAlg + "_Turn_On_Curve_Numerator"; - TString histChDen = nd_dir + chainName + m_MSchainName + MoniL2Alg + "_Turn_On_Curve_wrt_L1_Denominator"; + TString histChNum = nd_dir + chainName + MSchainName + MoniAlg + "_Turn_On_Curve_Numerator"; + TString histChDen = nd_dir + chainName + MSchainName + MoniL2Alg + "_Turn_On_Curve_wrt_L1_Denominator"; h1num = 0; mf.get(histChNum, h1num); if (!h1num) { @@ -2100,9 +2111,11 @@ namespace dqutils { double sumeff, sumerr; double sumn = h1numb->Integral(13, 25); // 12-25 GeV - if(HI_pp_key)sumn = h1numb->Integral(7, 10); // 30-50 GeV + if(HI_pp_key)sumn = h1numb->Integral(13, 20); // 60-100 GeV + //if(HI_pp_key)sumn = h1numb->Integral(7, 10); // 30-50 GeV double sumd = h1denb->Integral(13, 25); - if(HI_pp_key)sumd = h1denb->Integral(7, 10); + if(HI_pp_key)sumd = h1denb->Integral(13, 20); + //if(HI_pp_key)sumd = h1denb->Integral(7, 10); if (sumd == 0.) { sumeff = 0.; sumerr = 0.; @@ -2114,9 +2127,11 @@ namespace dqutils { h1sumL->SetBinError(1, sumerr); sumn = h1nume->Integral(13, 25); - if(HI_pp_key)sumn = h1numb->Integral(7, 10); // 30-50 GeV + if(HI_pp_key)sumn = h1numb->Integral(13, 20); // 60-100 GeV + //if(HI_pp_key)sumn = h1numb->Integral(7, 10); // 30-50 GeV sumd = h1dene->Integral(13, 25); - if(HI_pp_key)sumd = h1denb->Integral(7, 10); + if(HI_pp_key)sumd = h1denb->Integral(13, 20); + //if(HI_pp_key)sumd = h1denb->Integral(7, 10); if (sumd == 0.) { sumeff = 0.; sumerr = 0.; @@ -2124,6 +2139,7 @@ namespace dqutils { sumeff = (double)sumn / (double) sumd; sumerr = sqrt((double)sumn * (1.-sumeff)) / (double)sumd; } + h1sumL->GetYaxis()->SetTitle("Efficiency"); h1sumL->SetBinContent(2, sumeff); h1sumL->SetBinError(2, sumerr); h1sumL->SetMinimum(0.0); @@ -2139,8 +2155,8 @@ namespace dqutils { // ******************************************************// // ********************* generic ***********************// // ******************************************************// - TString monalg[3]={"_MuFast", "_MuComb", "_EFmuon"}; - TString wrtalg[3]={"_L1", "_MuFast", "_MuComb"}; + TString monalg[3]={"_L2MuonSA", "_MuComb", "_EFmuon"}; + TString wrtalg[3]={"_L1", "_L2MuonSA", "_MuComb"}; TString numer, denom, effi; TString histdireff = eff_dir; @@ -2194,14 +2210,14 @@ namespace dqutils { // L1 efficiency: new for 2011 HI runs and afterward // only division once since it is "the zero-th" algorithm denom = chainName + triggerES[i] + "_Turn_On_Curve_wrt_MuidCB_Denominator"; - numer = chainName + triggerES[i] + "_MuFast" + "_Turn_On_Curve_wrt" + "_L1" + "_Denominator"; + numer = chainName + triggerES[i] + "_L2MuonSA" + "_Turn_On_Curve_wrt" + "_L1" + "_Denominator"; effi = chainName + triggerES[i] + "_L1" + "_Turn_On_Curve_wrt_MuidCB"; HLTMuonHDiv(mf, histdireff, numer, denom, effi, "_Fit"); // Need to implement barrel and endcap ... for (int be = 0; be < 2; be++) { denom = chainName + triggerES[i] + "_Turn_On_Curve_wrt_MuidCB" + bestr[be] + "_Denominator"; - numer = chainName + triggerES[i] + "_MuFast" + "_Turn_On_Curve_wrt" + "_L1" + bestr[be] + "_Denominator"; + numer = chainName + triggerES[i] + "_L2MuonSA" + "_Turn_On_Curve_wrt" + "_L1" + bestr[be] + "_Denominator"; effi = chainName + triggerES[i] + "_L1" + bestr[be] + "_Turn_On_Curve_wrt_MuidCB"; HLTMuonHDiv(mf, histdireff, numer, denom, effi, "_Fit"); @@ -2225,7 +2241,7 @@ namespace dqutils { if (ESINDEP == i) { // integrating over and fill in a summary histogram double sumeff, sumerr; - double sumn = h1num->Integral(iSTDL, iSTDH); // 40-80 GeV + double sumn = h1num->Integral(iSTDL, iSTDH); // 60-100 GeV double sumd = h1den->Integral(iSTDL, iSTDH); if (sumd == 0.) { sumeff = 0.; @@ -2290,7 +2306,7 @@ namespace dqutils { } int iholx = -1; if (0 == alg) { - iholx = static_cast<int>(iMuFast); + iholx = static_cast<int>(iL2MuonSA); } else if (1 == alg) { iholx = static_cast<int>(iMuComb); } else if (2 == alg) { @@ -2298,14 +2314,14 @@ namespace dqutils { } TString s = histdireff + chainName + "_highpt_effsummary_by" + triggerES[i]; - TH1F *h1effsum = 0; mf.get(s, h1effsum); if (!h1effsum) { if (fdbg) { - std::cerr <<"HLTMuon PostProcessing: no such histogram!! "<< sden << std::endl; + std::cerr <<"HLTMuon PostProcessing: no such histogram!! "<< s << std::endl; } continue; } + h1effsum->GetYaxis()->SetTitleOffset(1.3); h1effsum->SetBinContent(iholx+1, sumeff); h1effsum->SetBinError(iholx+1, sumerr); h1effsum->SetMinimum(0.0); @@ -2366,7 +2382,7 @@ namespace dqutils { TH1F* h1tmpf(0); TH1F* h1num(0); TH1F* h1den(0); - TGraphAsymmErrors* h1tmpfg = new TGraphAsymmErrors(); + TGraphAsymmErrors* h1tmpfg = new TGraphAsymmErrors();; TString stmp = seff + seffg; h1num = 0; mf.get(sdir + "NumDenom/" + snum, h1num); @@ -2394,6 +2410,10 @@ namespace dqutils { h1tmpf->GetYaxis()->SetTitle("Efficiency"); h1tmpf->Reset(); h1tmpf->Divide(h1num, h1den, 1., 1., "B"); + h1tmpf->GetXaxis()->SetTitle(h1den->GetXaxis()->GetTitle()); + h1tmpf->SetMinimum(0.0); + h1tmpfg->SetMaximum(1.05); + h1tmpf->SetName(stmp); dir->cd(); h1tmpf->Write(); h1tmpfg->SetMarkerStyle(20); @@ -2404,7 +2424,7 @@ namespace dqutils { h1tmpfg->GetXaxis()->SetTitle(h1den->GetXaxis()->GetTitle()); dir->cd(); h1tmpfg->SetName(stmp); - h1tmpfg->Write(); + h1tmpfg->Write(); delete h1tmpfg; } } diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx index 57e079c6f300..b59486cc0125 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx @@ -1091,11 +1091,11 @@ fitMergedFile_IDAlignMonResiduals( TFile* f, std::string run_dir, std::string tr pix_ecc_yresvsmodphi->GetYaxis()->SetTitle("Mean Residual Y [mm]"); pix_ecc_yresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(pix_ecc_yresvsmodphi_2d,pix_ecc_yresvsmodphi,2); - TH1F* sct_eca_xresvsmodphi = new TH1F("sct_eca_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap A",495,0,495); + TH1F* sct_eca_xresvsmodphi = new TH1F("sct_eca_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap A",558,0,558); sct_eca_xresvsmodphi->GetYaxis()->SetTitle("Mean Residual X [mm]"); sct_eca_xresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(sct_eca_xresvsmodphi_2d,sct_eca_xresvsmodphi,2); - TH1F* sct_ecc_xresvsmodphi = new TH1F("sct_ecc_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap C",495,0,495); + TH1F* sct_ecc_xresvsmodphi = new TH1F("sct_ecc_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap C",558,0,558); sct_ecc_xresvsmodphi->GetYaxis()->SetTitle("Mean Residual X [mm]"); sct_ecc_xresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(sct_ecc_xresvsmodphi_2d,sct_ecc_xresvsmodphi,2); diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_IDPerfPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_IDPerfPostProcess.cxx index 531bcc735c7c..34c0312da7ad 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_IDPerfPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_IDPerfPostProcess.cxx @@ -371,18 +371,18 @@ fitMergedFile_IDPerfMonKshort( TFile* f, std::string run_dir, std::string Trigge h_rate->SetBinError(1,rate_error); h_rate->Write("",TObject::kOverwrite); } -// TH1F* m_mass_scaled = (TH1F*)(f->Get((path+"/ks_mass").c_str())->Clone("ks_mass_scaled_copy")); -// TString title(m_mass_scaled->GetTitle()); +// TH1F* h_mass_scaled = (TH1F*)(f->Get((path+"/ks_mass").c_str())->Clone("ks_mass_scaled_copy")); +// TString title(h_mass_scaled->GetTitle()); // if (CheckHistogram(f,(path+"/ks_mass_scaled").c_str())) { // if (CheckHistogram(f,(path+"/Nevents").c_str())) { -// TH1F* Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); -// double Ntot =Nevents->GetEntries(); -// if (Ntot!=0.) m_mass_scaled->Scale(1./Ntot); -// m_mass_scaled->SetTitle(title+" (per event)"); -// m_mass_scaled->Write("ks_mass_scaled",TObject::kOverwrite); +// TH1F* h_Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); +// double Ntot =h_Nevents->GetEntries(); +// if (Ntot!=0.) h_mass_scaled->Scale(1./Ntot); +// h_mass_scaled->SetTitle(title+" (per event)"); +// h_mass_scaled->Write("ks_mass_scaled",TObject::kOverwrite); // } // } -// delete m_mass_scaled; +// delete h_mass_scaled; h_massVPtBinFittedHistos[0] = (TH1F*)(f->Get((path+"/MassVptBinFitted0").c_str())->Clone()); h_massVPtBinFittedHistos[1] = (TH1F*)(f->Get((path+"/MassVptBinFitted1").c_str())->Clone()); @@ -796,19 +796,19 @@ fitMergedFile_IDPerfMonJpsi( TFile* f, std::string run_dir, std::string TriggerN h_rate->SetBinError(1,rate_error); h_rate->Write("",TObject::kOverwrite); } -// TH1F* m_mass_scaled = (TH1F*)(f->Get((path+"/Jpsi_invmass").c_str())->Clone("Jpsi_invmass_scaled_copy")); -// m_mass_scaled->SetMarkerStyle(21); -// TString title(m_mass_scaled->GetTitle()); +// TH1F* h_mass_scaled = (TH1F*)(f->Get((path+"/Jpsi_invmass").c_str())->Clone("Jpsi_invmass_scaled_copy")); +// h_mass_scaled->SetMarkerStyle(21); +// TString title(h_mass_scaled->GetTitle()); // if (CheckHistogram(f,(path+"/Jpsi_invmass_scaled").c_str())) { // if (CheckHistogram(f,(path+"/Nevents").c_str())) { -// TH1F* Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); -// double Ntot =Nevents->GetEntries(); -// if (Ntot!=0.) m_mass_scaled->Scale(1./Ntot); -// m_mass_scaled->SetTitle(title+" (per event)"); -// m_mass_scaled->Write("Jpsi_invmass_scaled",TObject::kOverwrite); +// TH1F* h_Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); +// double Ntot =h_Nevents->GetEntries(); +// if (Ntot!=0.) h_mass_scaled->Scale(1./Ntot); +// h_mass_scaled->SetTitle(title+" (per event)"); +// h_mass_scaled->Write("Jpsi_invmass_scaled",TObject::kOverwrite); // } // } -// delete m_mass_scaled; +// delete h_mass_scaled; if (CheckHistogram( f,(path+"/Jpsi_invmass").c_str())) { TH1F* h_mass_rebin = (TH1F*)(f->Get((path+"/Jpsi_invmass").c_str())->Clone("Jpsi_invmass_rebin")); TString title = h_mass_rebin->GetTitle(); @@ -910,7 +910,7 @@ fitMergedFile_IDPerfMonJpsi( TFile* f, std::string run_dir, std::string TriggerN TCanvas *myCanvas = new TCanvas("MyCanvas"); myCanvas->cd(); -// mass->Fit(f1,"RQMN"); +// h_mass->Fit(f1,"RQMN"); fitJpsiHistograms(h_jpsi_invmass_vs_pt,h_jpsi_width_vs_pt,hpt,nbins); fitJpsiHistograms(h_jpsi_invmass_vs_z0,h_jpsi_width_vs_z0,hz0,nbins); @@ -1117,19 +1117,19 @@ fitMergedFile_IDPerfMonUpsilon( TFile* f, std::string run_dir, std::string Trigg h_rate->SetBinError(1,rate_error); h_rate->Write("",TObject::kOverwrite); } -// TH1F* m_mass_scaled = (TH1F*)(f->Get((path+"/Upsilon_invmass").c_str())->Clone("Upsilon_invmass_scaled_copy")); -// m_mass_scaled->SetMarkerStyle(21); -// TString title(m_mass_scaled->GetTitle()); +// TH1F* h_mass_scaled = (TH1F*)(f->Get((path+"/Upsilon_invmass").c_str())->Clone("Upsilon_invmass_scaled_copy")); +// h_mass_scaled->SetMarkerStyle(21); +// TString title(h_mass_scaled->GetTitle()); // if (CheckHistogram(f,(path+"/Upsilon_invmass_scaled").c_str())) { // if (CheckHistogram(f,(path+"/Nevents").c_str())) { -// TH1F* Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); -// double Ntot =Nevents->GetEntries(); -// if (Ntot!=0.) m_mass_scaled->Scale(1./Ntot); -// m_mass_scaled->SetTitle(title+" (per event)"); -// m_mass_scaled->Write("Upsilon_invmass_scaled",TObject::kOverwrite); +// TH1F* h_Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); +// double Ntot =h_Nevents->GetEntries(); +// if (Ntot!=0.) h_mass_scaled->Scale(1./Ntot); +// h_mass_scaled->SetTitle(title+" (per event)"); +// h_mass_scaled->Write("Upsilon_invmass_scaled",TObject::kOverwrite); // } // } -// delete m_mass_scaled; +// delete h_mass_scaled; if (CheckHistogram( f,(path+"/Upsilon_invmass").c_str())) { TH1F* h_mass_rebin = (TH1F*)(f->Get((path+"/Upsilon_invmass").c_str())->Clone("Upsilon_invmass_rebin")); TString title = h_mass_rebin->GetTitle(); @@ -1216,7 +1216,7 @@ fitMergedFile_IDPerfMonUpsilon( TFile* f, std::string run_dir, std::string Trigg TCanvas *myCanvas = new TCanvas("MyCanvas"); myCanvas->cd(); -// mass->Fit(f1,"RQMN"); +// h_mass->Fit(f1,"RQMN"); fitUpsilonHistograms(h_upsilon_invmass_vs_pt,h_upsilon_width_vs_pt,hpt,nbins); @@ -1346,20 +1346,20 @@ fitMergedFile_IDPerfMonZee ( TFile* f, std::string run_dir,std::string TriggerNa h_rate->SetBinError(1,rate_error); h_rate->Write("",TObject::kOverwrite); } -// TH1F* m_mass_scaled = (TH1F*)(f->Get((path+"/Zee_trk_invmass").c_str())->Clone("Zee_trk_invmass_scaled_copy")); -// TString title(m_mass_scaled->GetTitle()); +// TH1F* h_mass_scaled = (TH1F*)(f->Get((path+"/Zee_trk_invmass").c_str())->Clone("Zee_trk_invmass_scaled_copy")); +// TString title(h_mass_scaled->GetTitle()); // if (CheckHistogram(f,(path+"/Zee_trk_invmass_scaled").c_str())) { // if (CheckHistogram(f,(path+"/Nevents").c_str())) { -// TH1F* Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); -// double Ntot =Nevents->GetEntries(); -// if (Ntot!=0.) m_mass_scaled->Scale(1./Ntot); -// m_mass_scaled->SetTitle(title+" (per event)"); -// m_mass_scaled->Write("Zee_trk_invmass_scaled",TObject::kOverwrite); +// TH1F* h_Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); +// double Ntot =h_Nevents->GetEntries(); +// if (Ntot!=0.) h_mass_scaled->Scale(1./Ntot); +// h_mass_scaled->SetTitle(title+" (per event)"); +// h_mass_scaled->Write("Zee_trk_invmass_scaled",TObject::kOverwrite); // } // } -// delete m_mass_scaled; +// delete h_mass_scaled; - enum m_eta_region { incl, barrel, eca, ecc, Nregions }; + enum eta_region { incl, barrel, eca, ecc, Nregions }; std::vector<std::string> region_strings; region_strings.push_back("incl"); region_strings.push_back("barrel"); @@ -1529,20 +1529,20 @@ fitMergedFile_IDPerfMonWenu ( TFile* f, std::string run_dir,std::string TriggerN h_rate->SetBinError(1,rate_error); h_rate->Write("",TObject::kOverwrite); } -// TH1F* m_mass_scaled = (TH1F*)(f->Get((path+"/Wenu_trk_transmass_sel").c_str())->Clone("Wenu_trk_transmass_sel_scaled_copy")); -// TString title(m_mass_scaled->GetTitle()); +// TH1F* h_mass_scaled = (TH1F*)(f->Get((path+"/Wenu_trk_transmass_sel").c_str())->Clone("Wenu_trk_transmass_sel_scaled_copy")); +// TString title(h_mass_scaled->GetTitle()); // if (CheckHistogram(f,(path+"/Wenu_trk_transmass_sel_scaled").c_str())) { // if (CheckHistogram(f,(path+"/Nevents").c_str())) { -// TH1F* Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); -// double Ntot =Nevents->GetEntries(); -// if (Ntot!=0.) m_mass_scaled->Scale(1./Ntot); -// m_mass_scaled->SetTitle(title+" (per event)"); -// m_mass_scaled->Write("Wenu_trk_transmass_sel_scaled",TObject::kOverwrite); +// TH1F* h_Nevents=(TH1F*)f->Get((path+"/Nevents").c_str()); +// double Ntot =h_Nevents->GetEntries(); +// if (Ntot!=0.) h_mass_scaled->Scale(1./Ntot); +// h_mass_scaled->SetTitle(title+" (per event)"); +// h_mass_scaled->Write("Wenu_trk_transmass_sel_scaled",TObject::kOverwrite); // } // } -// delete m_mass_scaled; +// delete h_mass_scaled; - enum m_eta_region { incl, barrel, eca, ecc, Nregions }; + enum eta_region { incl, barrel, eca, ecc, Nregions }; std::vector<std::string> region_strings; region_strings.push_back("incl"); region_strings.push_back("barrel"); diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_RPCPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_RPCPostProcess.cxx index 657953b7a574..038dd3899b4a 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_RPCPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_RPCPostProcess.cxx @@ -30,6 +30,13 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ { // std::cout << "Running RPC post processing \n" ; + bool applyEffThreshold = true; + bool EffThreshold = false; + bool printout = true ; + float Minimum_efficiency = 0.5; + + + TFile* f = TFile::Open(inFilename.c_str(),"UPDATE"); if (f == 0) { std::cerr << "MonitoringFile::RPCPostProcess(): " @@ -602,7 +609,7 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ int countpanelindb = 0 ; int countpaneleff0 = 0 ; int countpaneltrack0 = 0 ; - for (int i_sec=0; i_sec!=15+1; i_sec++) { + for (int i_sec=0; i_sec!=15*1+1; i_sec++) { char sector_char[100] ; std::string sector_name ; sprintf(sector_char,"_Sector%.2d",i_sec+1) ; // sector number with 2 digits @@ -1102,6 +1109,7 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ float cl_sizeeta = -9999; float cl_sizephi = -9999; char arr_cl_sizeeta [10]; char arr_cl_sizephi [10]; float errcl_sizeeta = -1; float errcl_sizephi =-1; char arr_errcl_sizeeta [10]; char arr_errcl_sizephi [10]; + float eta_effphi = 0; float phi_effeta = 0; int PanelCode = 0; int Binposition = 0; @@ -1124,75 +1132,75 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ if (h_TrackProj) n_tr_pphi =(int)h_TrackProj -> GetBinContent(ibin) ; if(n_tr_pphi <1000 ) continue; - if ( h_Eff )effphi = h_Eff ->GetBinContent(ibin) ; - sprintf(arr_effphi , "%f ", effphi ) ; arr_effphi [5] =0; - if ( h_Eff )erreffphi = h_Eff ->GetBinError (ibin) ; - sprintf(arr_erreffphi , "%f ", erreffphi ) ; arr_erreffphi [5] =0; - if ( h_Res_CS1 )resphi_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; - sprintf(arr_resphi_cs1 , "%f ", resphi_cs1 ) ; arr_resphi_cs1 [5] =0; - if ( h_Res_CS1 )errresphi_cs1 = h_Res_CS1 ->GetBinError (ibin) ; - sprintf(arr_errresphi_cs1 , "%f ", errresphi_cs1 ) ; arr_errresphi_cs1 [5] =0; - if ( h_Res_CS2 )resphi_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; - sprintf(arr_resphi_cs2 , "%f ", resphi_cs2 ) ; arr_resphi_cs2 [5] =0; - if ( h_Res_CS2 )errresphi_cs2 = h_Res_CS2 ->GetBinError (ibin) ; - sprintf(arr_errresphi_cs2 , "%f ", errresphi_cs2 ) ; arr_errresphi_cs2 [5] =0; - if ( h_Res_CSmore2 )resphi_csother = h_Res_CSmore2 ->GetBinContent(ibin) ; - sprintf(arr_resphi_csother , "%f ", resphi_csother ) ; arr_resphi_csother [5] =0; - if ( h_Res_CSmore2 )errresphi_csother = h_Res_CSmore2 ->GetBinError (ibin) ; - sprintf(arr_errresphi_csother, "%f ", errresphi_csother ) ; arr_errresphi_csother[5] =0; - if ( h_Time )timephi = h_Time ->GetBinContent(ibin) ; - sprintf(arr_timephi , "%f ", timephi ) ; arr_timephi [5] =0; - if ( h_Time )errtimephi = h_Time ->GetBinError (ibin) ; - sprintf(arr_errtimephi , "%f ", errtimephi ) ; arr_errtimephi [5] =0; - if ( h_NoiseTot )noisephi = h_NoiseTot ->GetBinContent(ibin) ; - sprintf(arr_noisephi , "%f ", noisephi ) ; arr_noisephi [5] =0; - if ( h_NoiseTot )errnoisephi = h_NoiseTot ->GetBinError (ibin) ; - sprintf(arr_errnoisephi , "%f ", errnoisephi ) ; arr_errnoisephi [5] =0; - if ( h_NoiseCorr )noisephi_cor = h_NoiseCorr ->GetBinContent(ibin) ; - sprintf(arr_noisephi_cor , "%f ", noisephi_cor ) ; arr_noisephi_cor [5] =0; - if ( h_NoiseCorr )errnoisephi_cor = h_NoiseCorr ->GetBinError (ibin) ; - sprintf(arr_errnoisephi_cor , "%f ", errnoisephi_cor ) ; arr_errnoisephi_cor [5] =0; - if ( h_CS )cl_sizephi = h_CS ->GetBinContent(ibin) ; - sprintf(arr_cl_sizephi , "%f ", cl_sizephi ) ; arr_cl_sizephi [5] =0; - if ( h_CS )errcl_sizephi = h_CS ->GetBinError (ibin) ; - sprintf(arr_errcl_sizephi , "%f ", errcl_sizephi ) ; arr_errcl_sizephi [5] =0; + if ( h_Eff )effphi = h_Eff ->GetBinContent(ibin) ; + sprintf(arr_effphi , "%f ", effphi ) ; arr_effphi [5] =0; + if ( h_Eff )erreffphi = h_Eff ->GetBinError (ibin) ; + sprintf(arr_erreffphi , "%f ", erreffphi ) ; arr_erreffphi [5] =0; + if ( h_Res_CS1 )resphi_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; + sprintf(arr_resphi_cs1 , "%f ", resphi_cs1 ) ; arr_resphi_cs1 [5] =0; + if ( h_Res_CS1 )errresphi_cs1 = h_Res_CS1 ->GetBinError (ibin) ; + sprintf(arr_errresphi_cs1 , "%f ", errresphi_cs1 ) ; arr_errresphi_cs1 [5] =0; + if ( h_Res_CS2 )resphi_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; + sprintf(arr_resphi_cs2 , "%f ", resphi_cs2 ) ; arr_resphi_cs2 [5] =0; + if ( h_Res_CS2 )errresphi_cs2 = h_Res_CS2 ->GetBinError (ibin) ; + sprintf(arr_errresphi_cs2 , "%f ", errresphi_cs2 ) ; arr_errresphi_cs2 [5] =0; + if ( h_Res_CSmore2 )resphi_csother = h_Res_CSmore2 ->GetBinContent(ibin) ; + sprintf(arr_resphi_csother , "%f ", resphi_csother ) ; arr_resphi_csother [5] =0; + if ( h_Res_CSmore2 )errresphi_csother = h_Res_CSmore2 ->GetBinError (ibin) ; + sprintf(arr_errresphi_csother, "%f ", errresphi_csother ) ; arr_errresphi_csother[5] =0; + if ( h_Time )timephi = h_Time ->GetBinContent(ibin) ; + sprintf(arr_timephi , "%f ", timephi ) ; arr_timephi [5] =0; + if ( h_Time )errtimephi = h_Time ->GetBinError (ibin) ; + sprintf(arr_errtimephi , "%f ", errtimephi ) ; arr_errtimephi [5] =0; + if ( h_NoiseTot )noisephi = h_NoiseTot ->GetBinContent(ibin) ; + sprintf(arr_noisephi , "%f ", noisephi ) ; arr_noisephi [5] =0; + if ( h_NoiseTot )errnoisephi = h_NoiseTot ->GetBinError (ibin) ; + sprintf(arr_errnoisephi , "%f ", errnoisephi ) ; arr_errnoisephi [5] =0; + if ( h_NoiseCorr )noisephi_cor = h_NoiseCorr ->GetBinContent(ibin) ; + sprintf(arr_noisephi_cor , "%f ", noisephi_cor ) ; arr_noisephi_cor [5] =0; + if ( h_NoiseCorr )errnoisephi_cor = h_NoiseCorr ->GetBinError (ibin) ; + sprintf(arr_errnoisephi_cor , "%f ", errnoisephi_cor ) ; arr_errnoisephi_cor [5] =0; + if ( h_CS )cl_sizephi = h_CS ->GetBinContent(ibin) ; + sprintf(arr_cl_sizephi , "%f ", cl_sizephi ) ; arr_cl_sizephi [5] =0; + if ( h_CS )errcl_sizephi = h_CS ->GetBinError (ibin) ; + sprintf(arr_errcl_sizephi , "%f ", errcl_sizephi ) ; arr_errcl_sizephi [5] =0; }else{ if (h_TrackProj) {n_tr_peta =(int)h_TrackProj -> GetBinContent(ibin) ;} if(n_tr_peta <1000) continue; - if ( h_Eff )effeta = h_Eff ->GetBinContent(ibin) ; - sprintf(arr_effeta , "%f ", effeta ) ; arr_effeta [5] =0; - if ( h_Eff )erreffeta = h_Eff ->GetBinError (ibin) ; - sprintf(arr_erreffeta , "%f ", erreffeta ) ; arr_erreffeta [5] =0; - if ( h_Res_CS1 )reseta_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; - sprintf(arr_reseta_cs1 , "%f ", reseta_cs1 ) ; arr_reseta_cs1 [5] =0; - if ( h_Res_CS1 )errreseta_cs1 = h_Res_CS1 ->GetBinError (ibin) ; - sprintf(arr_errreseta_cs1 , "%f ", errreseta_cs1 ) ; arr_errreseta_cs1 [5] =0; - if ( h_Res_CS2 )reseta_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; - sprintf(arr_reseta_cs2 , "%f ", reseta_cs2 ) ; arr_reseta_cs2 [5] =0; - if ( h_Res_CS2 )errreseta_cs2 = h_Res_CS2 ->GetBinError (ibin) ; - sprintf(arr_errreseta_cs2 , "%f ", errreseta_cs2 ) ; arr_errreseta_cs2 [5] =0; - if ( h_Res_CSmore2)reseta_csother = h_Res_CSmore2 ->GetBinContent(ibin) ; - sprintf(arr_reseta_csother , "%f ", reseta_csother ) ; arr_reseta_csother [5] =0; - if ( h_Res_CSmore2)errreseta_csother = h_Res_CSmore2 ->GetBinError (ibin) ; - sprintf(arr_errreseta_csother, "%f ", errreseta_csother ) ; arr_errreseta_csother[5] =0; - if ( h_Time )timeeta = h_Time ->GetBinContent(ibin) ; - sprintf(arr_timeeta , "%f ", timeeta ) ; arr_timeeta [5] =0; - if ( h_Time )errtimeeta = h_Time ->GetBinError (ibin) ; - sprintf(arr_errtimeeta , "%f ", errtimeeta ) ; arr_errtimeeta [5] =0; - if ( h_NoiseTot )noiseeta = h_NoiseTot ->GetBinContent(ibin) ; - sprintf(arr_noiseeta , "%f ", noiseeta ) ; arr_noiseeta [5] =0; - if ( h_NoiseTot )errnoiseeta = h_NoiseTot ->GetBinError (ibin) ; - sprintf(arr_errnoiseeta , "%f ", errnoiseeta ) ; arr_errnoiseeta [5] =0; - if ( h_NoiseCorr )noiseeta_cor = h_NoiseCorr ->GetBinContent(ibin) ; - sprintf(arr_noiseeta_cor , "%f ", noiseeta_cor ) ; arr_noiseeta_cor [5] =0; - if ( h_NoiseCorr )errnoiseeta_cor = h_NoiseCorr ->GetBinError (ibin) ; - sprintf(arr_errnoiseeta_cor , "%f ", errnoiseeta_cor ) ; arr_errnoiseeta_cor [5] =0; - if ( h_CS )cl_sizeeta = h_CS ->GetBinContent(ibin) ; - sprintf(arr_cl_sizeeta , "%f ", cl_sizeeta ) ; arr_cl_sizeeta [5] =0; - if ( h_CS )errcl_sizeeta = h_CS ->GetBinError (ibin) ; - sprintf(arr_errcl_sizeeta , "%f ", errcl_sizeeta ) ; arr_errcl_sizeeta [5] =0; + if ( h_Eff )effeta = h_Eff ->GetBinContent(ibin) ; + sprintf(arr_effeta , "%f ", effeta ) ; arr_effeta [5] =0; + if ( h_Eff )erreffeta = h_Eff ->GetBinError (ibin) ; + sprintf(arr_erreffeta , "%f ", erreffeta ) ; arr_erreffeta [5] =0; + if ( h_Res_CS1 )reseta_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; + sprintf(arr_reseta_cs1 , "%f ", reseta_cs1 ) ; arr_reseta_cs1 [5] =0; + if ( h_Res_CS1 )errreseta_cs1 = h_Res_CS1 ->GetBinError (ibin) ; + sprintf(arr_errreseta_cs1 , "%f ", errreseta_cs1 ) ; arr_errreseta_cs1 [5] =0; + if ( h_Res_CS2 )reseta_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; + sprintf(arr_reseta_cs2 , "%f ", reseta_cs2 ) ; arr_reseta_cs2 [5] =0; + if ( h_Res_CS2 )errreseta_cs2 = h_Res_CS2 ->GetBinError (ibin) ; + sprintf(arr_errreseta_cs2 , "%f ", errreseta_cs2 ) ; arr_errreseta_cs2 [5] =0; + if ( h_Res_CSmore2)reseta_csother = h_Res_CSmore2 ->GetBinContent(ibin) ; + sprintf(arr_reseta_csother , "%f ", reseta_csother ) ; arr_reseta_csother [5] =0; + if ( h_Res_CSmore2)errreseta_csother = h_Res_CSmore2 ->GetBinError (ibin) ; + sprintf(arr_errreseta_csother, "%f ", errreseta_csother ) ; arr_errreseta_csother[5] =0; + if ( h_Time )timeeta = h_Time ->GetBinContent(ibin) ; + sprintf(arr_timeeta , "%f ", timeeta ) ; arr_timeeta [5] =0; + if ( h_Time )errtimeeta = h_Time ->GetBinError (ibin) ; + sprintf(arr_errtimeeta , "%f ", errtimeeta ) ; arr_errtimeeta [5] =0; + if ( h_NoiseTot )noiseeta = h_NoiseTot ->GetBinContent(ibin) ; + sprintf(arr_noiseeta , "%f ", noiseeta ) ; arr_noiseeta [5] =0; + if ( h_NoiseTot )errnoiseeta = h_NoiseTot ->GetBinError (ibin) ; + sprintf(arr_errnoiseeta , "%f ", errnoiseeta ) ; arr_errnoiseeta [5] =0; + if ( h_NoiseCorr )noiseeta_cor = h_NoiseCorr ->GetBinContent(ibin) ; + sprintf(arr_noiseeta_cor , "%f ", noiseeta_cor ) ; arr_noiseeta_cor [5] =0; + if ( h_NoiseCorr )errnoiseeta_cor = h_NoiseCorr ->GetBinError (ibin) ; + sprintf(arr_errnoiseeta_cor , "%f ", errnoiseeta_cor ) ; arr_errnoiseeta_cor [5] =0; + if ( h_CS )cl_sizeeta = h_CS ->GetBinContent(ibin) ; + sprintf(arr_cl_sizeeta , "%f ", cl_sizeeta ) ; arr_cl_sizeeta [5] =0; + if ( h_CS )errcl_sizeeta = h_CS ->GetBinError (ibin) ; + sprintf(arr_errcl_sizeeta , "%f ", errcl_sizeeta ) ; arr_errcl_sizeeta [5] =0; //std::cout<<"PanelCode "<<PanelCode<<" etaprimo "<<"\n"; @@ -1220,10 +1228,10 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ //////////////////////////////////////////////////////////////////////////////////////////////////////// int TableVersionCondDB = 2 ; //RPC conditionDB table versioning - float effeleeta = -9999; char arr_effeleeta [10]; - float erreffeleeta = -1; char arr_erreffeleeta [10]; - float effelephi = -9999; char arr_effelephi [10]; - float erreffelephi = -1; char arr_erreffelephi [10]; + float gapeffeta = -9999; char arr_gapeffeta [10]; + float errgapeffeta = -1; char arr_errgapeffeta [10]; + float gapeffphi = -9999; char arr_gapeffphi [10]; + float errgapeffphi = -1; char arr_errgapeffphi [10]; float gapeff = -9999; float errgapeff = -1; float entriesCSeta = -1; @@ -1238,6 +1246,8 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ float rateCS1phi = -1; char arr_rateCS1phi [10]; float rateCS2phi = -1; char arr_rateCS2phi [10]; float rateCSmore2phi = -1; char arr_rateCSmore2phi [10]; + + coolrpc.coolDbFolder("sqlite://;schema=RPCConditionDB.db;dbname=RPC_DQA","/OFFLINE/FINAL"); std::string dir_cool_raw = run_dir + "/Muon/MuonRawDataMonitoring/RPC/CoolDB/"; @@ -1257,7 +1267,7 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ int StripProfileContenent = 0; for ( std::vector<std::string>::const_iterator iter=layerList.begin(); iter!=layerList.end(); iter++ ) { - for ( int i_dblPhi=0; i_dblPhi!=2; i_dblPhi++ ) { + for ( int i_dblPhi=0; i_dblPhi!=2*1+1; i_dblPhi++ ) { char coolName[40]; sprintf(coolName, "Sector%.2d_%s_dblPhi%d", i_sec+1, (*iter).c_str(), i_dblPhi+1 ); std::string stripId_name = dir_cool_raw + coolName + "_PanelId" ; @@ -1273,8 +1283,10 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ int SingleStripsValue = 0; int StripsOnPanel = 1; //number of strip on panel - char SingleStripsStatus[80] ; - std::string PanelStripsStatus; + char SingleStripsStatus [80] ; + char SingleStripsStatusOK[80] ; + std::string PanelStripsStatus ; + std::string PanelStripsStatusOK; NumberLayerStrip = h_stripProfile->GetNbinsX() ; for(int Nstrips=1 ; Nstrips!=NumberLayerStrip+1 ; Nstrips++){ @@ -1286,11 +1298,14 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ if (StripOccupancy>0.9) SingleStripsValue=9; if(h_stripId-> GetBinCenter(Nstrips) > 0){ - sprintf(SingleStripsStatus, "%d 000.0 0.000|", SingleStripsValue ); + sprintf(SingleStripsStatus , "%d 000.0 0.000|", SingleStripsValue ); + sprintf(SingleStripsStatusOK, "5 000.0 0.000|" ); }else{ sprintf(SingleStripsStatus, "|000.0 0.000 %d", SingleStripsValue ); + sprintf(SingleStripsStatusOK, "|000.0 0.000 5" ); } - PanelStripsStatus = PanelStripsStatus + SingleStripsStatus; + PanelStripsStatus = PanelStripsStatus + SingleStripsStatus; + PanelStripsStatusOK = PanelStripsStatusOK + SingleStripsStatusOK; @@ -1302,7 +1317,8 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ if(h_stripId-> GetBinCenter(Nstrips) < 0){ //std::cout << " PanelStripsStatus " << PanelStripsStatus <<std::endl; - std::reverse(PanelStripsStatus.begin(), PanelStripsStatus.end()); + std::reverse(PanelStripsStatus .begin(), PanelStripsStatus .end()); + std::reverse(PanelStripsStatusOK.begin(), PanelStripsStatusOK.end()); } for(int ibin=1 ; ibin!=nbin+1 ; ibin++){ @@ -1310,13 +1326,27 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ if(PanelCode !=PanelStripId)continue; if(ibin%2!=0){ if (h_TrackProj) {n_tr_peta =(int)h_TrackProj -> GetBinContent(ibin) ;} - //if(n_tr_peta >0){ - + //if(n_tr_peta >0){ + if ( h_PanelId )Binposition = (int)h_PanelId-> GetBinCenter(ibin) ; + int ibin_perp=0; + if(Binposition>0){ + ibin_perp=ibin+1; + if ( h_Eff )eta_effphi = h_Eff ->GetBinContent(ibin+1) ; + }else{ + ibin_perp=ibin-1; + if ( h_Eff )eta_effphi = h_Eff ->GetBinContent(ibin-1) ; + } if ( h_GapEff )gapeff = h_GapEff ->GetBinContent(ibin) ; - if ( h_GapEff )errgapeff = h_GapEff ->GetBinError (ibin) ; + if ( h_GapEff )errgapeff = h_GapEff ->GetBinError (ibin) ; if ( h_Eff )effeta = h_Eff ->GetBinContent(ibin) ; if ( h_Eff )erreffeta = h_Eff ->GetBinError (ibin) ; - if ( h_Res_CS1 )reseta_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; + + gapeffeta = gapeff; + errgapeffeta= errgapeff; + EffThreshold = (effeta<Minimum_efficiency)|| (eta_effphi<Minimum_efficiency); + + + if ( h_Res_CS1 )reseta_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; if ( h_Res_CS1 )errreseta_cs1 = h_Res_CS1 ->GetBinError (ibin) ; if ( h_Res_CS2 )reseta_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; if ( h_Res_CS2 )errreseta_cs2 = h_Res_CS2 ->GetBinError (ibin) ; @@ -1339,19 +1369,42 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ rateCSmore2eta =(entriesCSeta-(entriesCS1eta+entriesCS2eta))/entriesCSeta; } - if(gapeff!=0 && effeta !=0){ - effeleeta=effeta/gapeff; - erreffeleeta=((erreffeta/effeta)+(errgapeff/gapeff))*effeleeta; - }else{ - effeleeta =0.000; - erreffeleeta =0.000; - } - //std::cout << " effeleeta " << effeleeta <<" erreffeleeta "<<erreffeleeta<<" erreffeta "<<erreffeta << " effeta "<<effeta <<" errgapeff "<<errgapeff << " gapeff "<<gapeff <<" rateCS1eta "<< rateCS1eta << " rateCS2eta " << rateCS2eta <<std::endl; + if (applyEffThreshold){ + if(effeta<Minimum_efficiency&&eta_effphi<Minimum_efficiency){ + effeta =Minimum_efficiency; + gapeffeta =Minimum_efficiency; + erreffeta = 0.1; + errgapeffeta= 0.1; + PanelStripsStatus = PanelStripsStatusOK; + cl_sizeeta = 1; + errcl_sizeeta = 0.1, + rateCS1eta = 1; + rateCS2eta = 0; + rateCSmore2eta = 0; + } + else if(effeta<Minimum_efficiency&&eta_effphi>Minimum_efficiency){ + effeta = Minimum_efficiency; + gapeffeta = eta_effphi; + erreffeta = 0.1; + errgapeffeta= 0.1; + PanelStripsStatus = PanelStripsStatusOK; + cl_sizeeta = 1; + errcl_sizeeta = 0.1, + rateCS1eta = 1; + rateCS2eta = 0; + rateCSmore2eta = 0; + } + else if(effeta>Minimum_efficiency&&eta_effphi<Minimum_efficiency){ + gapeffeta = effeta; + errgapeffeta= 0.1; + } + } + //std::cout << " erreffeta "<<erreffeta << " effeta "<<effeta <<" errgapeff "<<errgapeff << " gapeff "<<gapeff <<" rateCS1eta "<< rateCS1eta << " rateCS2eta " << rateCS2eta <<std::endl; sprintf(arr_effeta , "%f ", effeta ) ; arr_effeta [5] =0; sprintf(arr_erreffeta , "%f ", erreffeta ) ; arr_erreffeta [5] =0; - sprintf(arr_effeleeta , "%f ", effeleeta ) ; arr_effeleeta [5] =0; - sprintf(arr_erreffeleeta , "%f ", erreffeleeta ) ; arr_erreffeleeta [5] =0; + sprintf(arr_gapeffeta , "%f ", gapeffeta ) ; arr_gapeffeta [5] =0; + sprintf(arr_errgapeffeta , "%f ", errgapeffeta ) ; arr_errgapeffeta [5] =0; sprintf(arr_reseta_cs1 , "%f ", reseta_cs1 ) ; arr_reseta_cs1 [5] =0; sprintf(arr_errreseta_cs1 , "%f ", errreseta_cs1 ) ; arr_errreseta_cs1 [5] =0; sprintf(arr_reseta_cs2 , "%f ", reseta_cs2 ) ; arr_reseta_cs2 [5] =0; @@ -1371,31 +1424,45 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ char PanelRes [255]; //eff_eta, res_cs1, res_cs2, res_csother, time, mean and rms char StripStatus [4096]; //strips status 0 to 9 for dead noisy strips - sprintf(PanelRes, "%d %d %d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", TableVersionCondDB, n_tr_peta, StripsOnPanel, arr_effeta, arr_erreffeta, arr_effeleeta, arr_erreffeleeta, arr_reseta_cs1, arr_errreseta_cs1, arr_reseta_cs2, arr_errreseta_cs2, arr_reseta_csother, arr_errreseta_csother, arr_noiseeta, arr_errnoiseeta, arr_noiseeta_cor, arr_errnoiseeta_cor, arr_cl_sizeeta, arr_errcl_sizeeta, arr_rateCS1eta, arr_rateCS2eta, arr_rateCSmore2eta) ; + sprintf(PanelRes, "%d %d %d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", TableVersionCondDB, n_tr_peta, StripsOnPanel, arr_effeta, arr_erreffeta, arr_gapeffeta, arr_errgapeffeta, arr_reseta_cs1, arr_errreseta_cs1, arr_reseta_cs2, arr_errreseta_cs2, arr_reseta_csother, arr_errreseta_csother, arr_noiseeta, arr_errnoiseeta, arr_noiseeta_cor, arr_errnoiseeta_cor, arr_cl_sizeeta, arr_errcl_sizeeta, arr_rateCS1eta, arr_rateCS2eta, arr_rateCSmore2eta) ; sprintf(StripStatus, "%s", PanelStripsStatus.c_str()) ; std::string cool_tagCondDB="RecoCondDB"; coolrpc.setSince(0U,0U); coolrpc.setUntil(4294967295U,0U); coolrpc.insertCondDB_withTag(run_number*0+429496729U,PanelCode,PanelRes, StripStatus,cool_tagCondDB); - //std::cout <<"Eta " << PanelCode << " --- " << PanelRes<< " --- " << StripStatus << std::endl; + if(printout&&EffThreshold)std::cout << stripProfile_name << " under THR "<< EffThreshold <<" "<< PanelCode << " ibin " << ibin << " h_EffEta " << h_Eff->GetBinContent(ibin) <<" h_EffPhi " << h_Eff->GetBinContent(ibin_perp) << " h_GapEffEta " << h_GapEff->GetBinContent(ibin) <<" h_GapEffPhi " << h_GapEff->GetBinContent(ibin_perp) << " cool_EtaEff "<< effeta <<" cool_GapEffEta "<< gapeffeta <<" --- Eta Summary " << PanelRes<< " --- StripStatus " << StripStatus << std::endl; + if(printout&&EffThreshold)std::cout<<"inCOOL_ETA_id_ntrk_panelEff_gapEff "<<PanelCode<<" "<<n_tr_peta<<" "<<(int)(n_tr_peta*effeta)<<" "<<(int)(n_tr_peta*gapeffeta)<<std::endl; countpanelindb++; if(effeta==0.0)countpaneleff0++; if(n_tr_peta==0)countpaneltrack0++; - //} + }else{ if (h_TrackProj) n_tr_pphi =(int)h_TrackProj -> GetBinContent(ibin) ; //if(n_tr_pphi >0){ if ( h_PanelId )Binposition = (int)h_PanelId-> GetBinCenter(ibin) ; + int ibin_perp=0; if(Binposition>0){ + ibin_perp=ibin-1; if ( h_GapEff )gapeff = h_GapEff ->GetBinContent(ibin-1) ; if ( h_GapEff )errgapeff = h_GapEff ->GetBinError (ibin-1) ; + if ( h_Eff )phi_effeta = h_Eff ->GetBinContent(ibin-1) ; + }else{ + ibin_perp=ibin+1; if ( h_GapEff )gapeff = h_GapEff ->GetBinContent(ibin+1) ; if ( h_GapEff )errgapeff = h_GapEff ->GetBinError (ibin+1) ; + if ( h_Eff )phi_effeta = h_Eff ->GetBinContent(ibin+1) ; } if ( h_Eff )effphi = h_Eff ->GetBinContent(ibin) ; if ( h_Eff )erreffphi = h_Eff ->GetBinError (ibin) ; + + + gapeffphi = gapeff; + errgapeffphi= errgapeff; + EffThreshold = (effphi<Minimum_efficiency)|| (phi_effeta<Minimum_efficiency); + + if ( h_Res_CS1 )resphi_cs1 = h_Res_CS1 ->GetBinContent(ibin) ; if ( h_Res_CS1 )errresphi_cs1 = h_Res_CS1 ->GetBinError (ibin) ; if ( h_Res_CS2 )resphi_cs2 = h_Res_CS2 ->GetBinContent(ibin) ; @@ -1415,21 +1482,54 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ rateCS1phi =entriesCS1phi/entriesCSphi; rateCS2phi =entriesCS2phi/entriesCSphi; rateCSmore2phi =(entriesCSphi-(entriesCS1phi+entriesCS2phi))/entriesCSphi; - } - if(gapeff !=0 && effphi !=0){ - effelephi=effphi/gapeff; - erreffelephi=((erreffphi/effphi)+(errgapeff/gapeff))*effelephi; - }else{ - effelephi = 0.000; - erreffelephi = 0.000; - } - //std::cout << " effelephi " << effelephi <<" erreffelephi "<<erreffelephi<<" erreffphi "<<erreffphi << " effphi "<<effphi <<" errgapeff "<<errgapeff << " gapeff "<<gapeff << " rateCS1phi "<<rateCS1phi<< " rateCS2phi "<<rateCS2phi<<std::endl; + } + + + if (applyEffThreshold){ + if(effphi<Minimum_efficiency&&phi_effeta<Minimum_efficiency){ + effphi =Minimum_efficiency; + gapeffphi =Minimum_efficiency; + erreffphi = 0.1; + errgapeffphi= 0.1; + PanelStripsStatus = PanelStripsStatusOK; + cl_sizephi = 1; + errcl_sizephi = 0.1, + rateCS1phi = 1; + rateCS2phi = 0; + rateCSmore2phi = 0; + } + else if(effphi<Minimum_efficiency&&phi_effeta>Minimum_efficiency){ + effphi = Minimum_efficiency; + gapeffphi = phi_effeta; + erreffphi = 0.1; + errgapeffphi= 0.1; + PanelStripsStatus = PanelStripsStatusOK; + cl_sizephi = 1; + errcl_sizephi = 0.1, + rateCS1phi = 1; + rateCS2phi = 0; + rateCSmore2phi = 0; + } + else if(effphi>Minimum_efficiency&&phi_effeta<Minimum_efficiency){ + gapeffphi = effphi; + errgapeffphi= 0.1; + PanelStripsStatus = PanelStripsStatusOK; + } + } + + + + + + + + //std::cout << " erreffphi "<<erreffphi << " effphi "<<effphi <<" errgapeff "<<errgapeff << " gapeff "<<gapeff << " rateCS1phi "<<rateCS1phi<< " rateCS2phi "<<rateCS2phi<<std::endl; sprintf(arr_effphi , "%f ", effphi ) ; arr_effphi [5] =0; sprintf(arr_erreffphi , "%f ", erreffphi ) ; arr_erreffphi [5] =0; - sprintf(arr_effelephi , "%f ", effelephi ) ; arr_effelephi [5] =0; - sprintf(arr_erreffelephi , "%f ", erreffelephi ) ; arr_erreffelephi [5] =0; + sprintf(arr_gapeffphi , "%f ", gapeffphi ) ; arr_gapeffphi [5] =0; + sprintf(arr_errgapeffphi , "%f ", errgapeffphi ) ; arr_errgapeffphi [5] =0; sprintf(arr_resphi_cs1 , "%f ", resphi_cs1 ) ; arr_resphi_cs1 [5] =0; sprintf(arr_errresphi_cs1 , "%f ", errresphi_cs1 ) ; arr_errresphi_cs1 [5] =0; sprintf(arr_resphi_cs2 , "%f ", resphi_cs2 ) ; arr_resphi_cs2 [5] =0; @@ -1448,24 +1548,26 @@ MonitoringFile::RPCPostProcess( std::string inFilename, bool /* isIncremental */ char PanelRes [255]; //eff_eta, res_cs1, res_cs2, res_csother, time, mean and rms char StripStatus [4096]; //strips status 0 to 9 for dead noisy strips - sprintf(PanelRes, "%d %d %d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", TableVersionCondDB, n_tr_pphi, StripsOnPanel, arr_effphi, arr_erreffphi, arr_effelephi, arr_erreffelephi, arr_resphi_cs1, arr_errresphi_cs1, arr_resphi_cs2, arr_errresphi_cs2, arr_resphi_csother, arr_errresphi_csother, arr_noisephi, arr_errnoisephi, arr_noisephi_cor, arr_errnoisephi_cor, arr_cl_sizephi, arr_errcl_sizephi, arr_rateCS1phi, arr_rateCS2phi, arr_rateCSmore2phi) ; + sprintf(PanelRes, "%d %d %d %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", TableVersionCondDB, n_tr_pphi, StripsOnPanel, arr_effphi, arr_erreffphi, arr_gapeffphi, arr_errgapeffphi, arr_resphi_cs1, arr_errresphi_cs1, arr_resphi_cs2, arr_errresphi_cs2, arr_resphi_csother, arr_errresphi_csother, arr_noisephi, arr_errnoisephi, arr_noisephi_cor, arr_errnoisephi_cor, arr_cl_sizephi, arr_errcl_sizephi, arr_rateCS1phi, arr_rateCS2phi, arr_rateCSmore2phi) ; sprintf(StripStatus, "%s", PanelStripsStatus.c_str()) ; std::string cool_tag="RecoCondDB"; coolrpc.setSince(0U,0U); coolrpc.setUntil(4294967295U,0U); coolrpc.insertCondDB_withTag(run_number*0+429496729U,PanelCode,PanelRes, StripStatus,cool_tag); - //std::cout <<"Phi " << PanelCode << " --- " << PanelRes<< " --- " << StripStatus << std::endl; - //} + if(printout&&EffThreshold)std::cout << stripProfile_name << " under THR "<< EffThreshold <<" " << PanelCode << " ibin " << ibin << " h_EffPhi " << h_Eff->GetBinContent(ibin) <<" h_EffEta " << h_Eff->GetBinContent(ibin_perp) << " h_GapEffPhi " << h_GapEff->GetBinContent(ibin) <<" h_GapEffEta " << h_GapEff->GetBinContent(ibin_perp) << " cool_PhiEff "<< effphi <<" cool_GapEffPhi "<< gapeffphi <<" --- Phi Summary " << PanelRes<< " --- StripStatus " << StripStatus << std::endl; + if(printout&&EffThreshold)std::cout<<"inCOOL_PHI_id_ntrk_panelEff_gapEff "<<PanelCode<<" "<<n_tr_pphi<<" "<<(int)(n_tr_pphi*effphi)<<" "<<(int)(n_tr_pphi*gapeffphi)<<std::endl; countpanelindb++; if(effphi==0.0)countpaneleff0++; if(n_tr_pphi==0)countpaneltrack0++; } StripsOnPanel=1; PanelStripsStatus.clear(); + PanelStripsStatusOK.clear(); } //if(StripsOnPanel>1) std::cout<<stripProfile_name<< " bin " << Nstrips << " Not found PanelStripId " << PanelStripId<< std::endl; StripsOnPanel=1; - PanelStripsStatus.clear(); + PanelStripsStatus.clear(); + PanelStripsStatusOK.clear(); } } } diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_SCTPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_SCTPostProcess.cxx index 989f4ef68ac3..283dabc91a8f 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_SCTPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_SCTPostProcess.cxx @@ -37,265 +37,541 @@ namespace dqutils { - static const bool rno_debug = false; - - void - MonitoringFile::SCTPostProcess( std::string inFilename, bool /* isIncremental */ ) - { - if (rno_debug) std::cout << "Start SCT post-processing" <<std::endl; - - TFile *infile = TFile::Open(inFilename.c_str(),"UPDATE"); - if(infile==0 || ! infile->IsOpen()){ - std::cerr << "--> SCTPostProcess: Input file not opened" <<std::endl; - return; - } - if(infile->IsZombie()){ - std::cerr << "--> SCTPostProcess: Input file " << inFilename << " cannot be opened" <<std::endl; - return; - } - if(infile->GetSize()<1000){ - std::cerr << "--> SCTPostProcess: Input file empty " <<std::endl; - return; - } - - //start postprocessing - - TIter next_run(infile->GetListOfKeys()); - TKey *key_run(0); - key_run = (TKey*)next_run(); - TDirectory *dir0 = dynamic_cast<TDirectory*> (key_run->ReadObj()); - if (!dir0) return; // should never fail - dir0->cd(); - - TString run_dir; - const int N_dir=4; - const int N_BARREL=4, N_DISKS=9; - TString subDetName[N_dir] = {"/GENERAL", "/SCTEC", "/SCTB", "/SCTEA"}; - int times = 1; - while (times--) { // just once - run_dir = dir0->GetName(); - - TString rno_dir = run_dir + "/SCT/GENERAL/RatioNoise/"; - TDirectory *dir = infile->GetDirectory(rno_dir); - if(!dir){ - std::cerr << "--> SCTPostProcess: directory " << rno_dir << " not found " <<std::endl; - return; - } - TString noSideHitHist = rno_dir + "h_NZ1_vs_modnum"; - TString oneSideHitHist = rno_dir + "h_N11_vs_modnum"; - TH1F *h_nosidehit = (TH1F*)infile->Get(noSideHitHist); - TH1F *h_onesidehit = (TH1F*)infile->Get(oneSideHitHist); - if(!h_nosidehit || !h_onesidehit){ - std::cerr << "--> SCTPostProcess: no such histogram " <<std::endl; - return; - } - - TString maxerrortitles[15]={"SCTMaskedLinkmaxVsLbs","SCTROBFragmentmaxVsLbs","SCTABCDerrsmaxVsLbs","SCTRawerrsmaxVsLbs","SCTTimeOutmaxVsLbs","SCTLVL1IDerrsmaxVsLbs","SCTBCIDerrsmaxVsLbs","SCTPreamblemaxVsLbs","SCTFormattererrsmaxVsLbs","SCTRODClockerrsmaxVsLbs","SCTTruncatedRODmaxVsLbs","SCTBSParseerrsmaxVsLbs","SCTMissingLinkmaxVsLbs","SCTmaxNumberOfErrors","SCTmaxModulesWithErrors"}; - TString conf_dir = run_dir + "/SCT/GENERAL/Conf/"; - TString err_dir = run_dir + "/SCT/GENERAL/errors/tmp/"; - TDirectory *confdir = infile->GetDirectory(conf_dir); - if(!confdir){ - std::cerr << "--> SCTPostProcess: directory " << conf_dir << " not found " <<std::endl; - return; - } - - TString maxErrHist[15]; - TH1F *maxErrHist_new[15]; - TString maxerrortitles_2d[15]; - for(int i=0;i<15;i++){ - maxErrHist[i] = conf_dir + maxerrortitles[i]; - maxErrHist_new[i] = (TH1F*)infile->Get(maxErrHist[i]); - maxerrortitles_2d[i] = err_dir + maxerrortitles[i] + "_2d"; - } - - //Name of directory where there are efficiency maps - TString posi_eff[3] = {"m_eff_", "eff_", "p_eff_"}; - TString eff_dir[N_dir]; - //Object of directoty - TDirectory *effDir[N_dir]; - //Name of histogram - TString mapName[N_DISKS*2 + N_BARREL][2]; - //Histogram - std::array < std::array < TProfile2D *, 2 >, N_DISKS*2 + N_BARREL > effMap; - //New histogram is made by postprocessing - TH1F *h_EffDist = new TH1F("SctEffDistribution", "SCT Efficiency Distribution", 500, 0, 1); - h_EffDist->GetXaxis()->SetTitle("Efficiency"); - h_EffDist->GetYaxis()->SetTitle("Links"); - // - int det_num=-1; - int layers[3] = {N_DISKS, N_BARREL, N_DISKS}; - // - for(int i=0;i<N_dir;i++){ - eff_dir[i] = run_dir + "/SCT" + subDetName[i] + "/eff/"; - effDir[i] = (TDirectory*)infile->GetDirectory(eff_dir[i]); - if(!effDir[i]){ - std::cerr << "--> SCTPostProcess: directory " << eff_dir[i] << " not found " <<std::endl; - return; - } - } - //Calculate and Fill - for(Long_t i=0;i<3;i++){ - effDir[i+1]->cd(); - for(Long_t j=0;j<layers[i];j++){ - if(i==0) det_num=j; - else if(i==1) det_num=j+N_DISKS; - else if(i==2) det_num=j+N_DISKS+N_BARREL; - else { - std::cerr << "--> Detector region (barrel, endcap A, endcap C) could not be determined" <<std::endl; - return; - } - for(Long_t k=0;k<2;k++){ - mapName[det_num][k] = eff_dir[i+1] + posi_eff[i]+j+"_"+k; - effMap[det_num][k] = (TProfile2D*) infile->Get(mapName[det_num][k]); - if(!effMap[det_num][k] ){ - std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName[det_num][k]<<std::endl; - continue; - } - for(int xbin=1;xbin<effMap[det_num][k]->GetNbinsX()+1;xbin++){ - for(int ybin=1;ybin<effMap[det_num][k]->GetNbinsY()+1;ybin++){ - if(effMap[det_num][k]->GetBinEntries(effMap[det_num][k]->GetBin(xbin,ybin))==0) continue; - h_EffDist->Fill(effMap[det_num][k]->GetBinContent(xbin,ybin)); - } - } - } - } - } - effDir[0]->cd(); - //Overwriting - h_EffDist->Write("", TObject::kOverwrite); - //end of eff dist 15.09.2016 - TH1F *hist_all = new TH1F("h_NO","Noise Occupancy for Barrel and Endcaps",500,0.,100.); - TH1F *hist_bar = new TH1F("h_NOb","Noise Occupancy for Barrel",500,0.,100.); - TH1F *hist_end = new TH1F("h_NOEC","Noise Occupancy for Endcaps",500,0.,100.); - TH1F *hist_endc = new TH1F("hist_endcapC","endcap C",500,0.,100.); - TH1F *hist_enda = new TH1F("hist_endcapA","endcap A",500,0.,100.); - - TH1F *hist_bar_layer[4]; - for(int i=0;i<4;i++){ - hist_bar_layer[i] = new TH1F(Form("h_NOb_layer%d",i),Form("Noise Occupancy Barrel Layer %d",i),500,0.,100.); - } - TH1F *hist_endC_disk[9]; - for(int i=0;i<9;i++){ - hist_endC_disk[i] = new TH1F(Form("h_NOECC_disk%d",i),Form("Noise Occupancy Endcap C disk %d",i),500,0.,100.); - } - TH1F *hist_endA_disk[9]; - for(int i=0;i<9;i++){ - hist_endA_disk[i] = new TH1F(Form("h_NOECA_disk%d",i),Form("Noise Occupancy Endcap A disk %d",i),500,0.,100.); - } - TH1F *hist_inner = new TH1F("h_NOEC_Inner","Noise Occupancy Inner Endcap Modules",500,0.,100.); - TH1F *hist_middle = new TH1F("h_NOEC_Middle","Noise Occupancy Middle Endcap Modules",500,0.,100.); - TH1F *hist_outer = new TH1F("h_NOEC_Outer","Noise Occupancy Outer Endcap Modules",500,0.,100.); - TH1F *hist_smiddle = new TH1F("h_NOEC_ShortMiddle","Noise Occupancy Short Middle Endcap Modules",500,0.,100.); - - int nModuleEndCap1[9] = {0, 92, 224, 356, 488, 620, 752, 844, 936}; - int nModuleEndCap2[9] = {92, 224, 356, 488, 620, 752, 844, 936, 988}; - int nModuleBarrel1[4] = {0, 384, 864, 1440}; - int nModuleBarrel2[4] = {384, 864, 1440, 2112}; - - - for(int i=0;i<4088;i++){ - int nosidehit = h_nosidehit->GetBinContent(i+1); - int onesidehit = h_onesidehit->GetBinContent(i+1); - if(nosidehit>0){ - double Rval = (double)onesidehit/(double)nosidehit; - double NOval = 1./768.*Rval/(2.+Rval); - if(NOval!=0){ - hist_all->Fill(100000.*NOval); - if(i>=0 && i<988){ - hist_end->Fill(100000.*NOval); - hist_endc->Fill(100000.*NOval); - for(int j=0;j<9;j++){ - if(i>=nModuleEndCap1[j] && i<nModuleEndCap2[j]){ - hist_endC_disk[j]->Fill(100000.*NOval); - if(i-nModuleEndCap1[j]<52){ - hist_outer->Fill(100000.*NOval); - }else if(i-nModuleEndCap1[j]>=52 && i-nModuleEndCap1[j]<92){ - if(i<844){ - hist_middle->Fill(100000.*NOval); - }else if(i>=844){ - hist_smiddle->Fill(100000.*NOval); - } - }else if(i-nModuleEndCap1[j]>=92 && i-nModuleEndCap1[j]<132){ - hist_inner->Fill(100000.*NOval); - } - } - } - }else if(i>=988 && i<3100){ - hist_bar->Fill(100000.*NOval); - for(int j=0;j<4;j++){ - if(i>=nModuleBarrel1[j]+988 && i<nModuleBarrel2[j]+988){ - hist_bar_layer[j]->Fill(100000*NOval); - } - } - }else if(i>=3100 && i<4088){ - hist_end->Fill(100000.*NOval); - hist_enda->Fill(100000.*NOval); - for(int j=0;j<9;j++){ - if(i>=nModuleEndCap1[j]+3100 && i<nModuleEndCap2[j]+3100){ - hist_endA_disk[j]->Fill(100000*NOval); - if(i-nModuleEndCap1[j]-3100<52){ - hist_outer->Fill(100000.*NOval); - }else if(i-nModuleEndCap1[j]-3100>=52 && i-nModuleEndCap1[j]-3100<92){ - if(i-3100<844){ - hist_middle->Fill(100000.*NOval); - }else if(i-3100>=844){ - hist_smiddle->Fill(100000.*NOval); - } - }else if(i-nModuleEndCap1[j]-3100>=92 && i-nModuleEndCap1[j]-3100<132){ - hist_inner->Fill(100000.*NOval); - } - } - } - } - } - } - } - hist_all->SetBinContent(hist_all->GetNbinsX(),hist_all->GetBinContent(hist_all->GetNbinsX() ) + hist_all->GetBinContent(hist_all->GetNbinsX() +1)); - hist_bar->SetBinContent(hist_bar->GetNbinsX(),hist_bar->GetBinContent(hist_bar->GetNbinsX() ) + hist_bar->GetBinContent(hist_bar->GetNbinsX() +1)); - hist_end->SetBinContent(hist_end->GetNbinsX(),hist_end->GetBinContent(hist_end->GetNbinsX() ) + hist_end->GetBinContent(hist_end->GetNbinsX() +1)); - - dir->cd(); - hist_all->Write("", TObject::kOverwrite); - hist_bar->Write("", TObject::kOverwrite); - hist_end->Write("", TObject::kOverwrite); - for(int i=0;i<4;i++){ - hist_bar_layer[i]->Write("", TObject::kOverwrite); - } - for(int i=0;i<9;i++){ - hist_endC_disk[i]->Write("", TObject::kOverwrite); - } - for(int i=0;i<9;i++){ - hist_endA_disk[i]->Write("", TObject::kOverwrite); - } - hist_inner->Write("", TObject::kOverwrite); - hist_middle->Write("", TObject::kOverwrite); - hist_outer->Write("", TObject::kOverwrite); - hist_smiddle->Write("", TObject::kOverwrite); - - TH2I *h2_maxErrHist[15]; - confdir->cd(); - TDirectory *errdir = infile->GetDirectory(err_dir); - if(errdir){ - for(int i=0;i<15;i++){ - h2_maxErrHist[i] = (TH2I*)infile->Get(maxerrortitles_2d[i]); - if(h2_maxErrHist[i]&&maxErrHist_new[i]){ - for(int m=0;m<h2_maxErrHist[i]->GetXaxis()->GetNbins();m++){ - for(int n=0;n<8176;n++){ - int maxModErrs = h2_maxErrHist[i]->GetBinContent(m+1,8176-n); - if(maxModErrs!=0){ - maxErrHist_new[i]->SetBinContent(m+1,8176-n); - break; - } - } - } - maxErrHist_new[i]->Write("", TObject::kOverwrite); - } - } - } - - infile->Write(); - - }//while + static const bool rno_debug = false; + + void + MonitoringFile::SCTPostProcess( std::string inFilename, bool /* isIncremental */ ) + { + if (rno_debug) std::cout << "Start SCT post-processing" <<std::endl; + + TH1::SetDefaultSumw2(); + TFile *infile = TFile::Open(inFilename.c_str(),"UPDATE"); + if(infile==0 || ! infile->IsOpen()){ + std::cerr << "--> SCTPostProcess: Input file not opened" <<std::endl; + return; + } + if(infile->IsZombie()){ + std::cerr << "--> SCTPostProcess: Input file " << inFilename << " cannot be opened" <<std::endl; + return; + } + if(infile->GetSize()<1000){ + std::cerr << "--> SCTPostProcess: Input file empty " <<std::endl; + return; + } + + // start postprocessing + + TIter next_run(infile->GetListOfKeys()); + TKey *key_run(0); + key_run = (TKey*)next_run(); + TDirectory *dir0 = dynamic_cast<TDirectory*> (key_run->ReadObj()); + if(!dir0) return; // should never fail + dir0->cd(); + + TString run_dir; + const int N_dir=4; + const int N_BARREL=4, N_DISKS=9; + TString subDetName[N_dir] = {"/GENERAL", "/SCTEC", "/SCTB", "/SCTEA"}; + + int times = 1; + while (times--) { // just once + run_dir = dir0->GetName(); + bool do_rno = true; + bool do_no = true; + bool do_conf = true; + bool do_eff = true; + + // setup directories + + TString rno_dir[N_dir]; + TDirectory *rnodir[N_dir]; + for(int i=0;i<N_dir;i++){ + rno_dir[i] = run_dir + "/SCT" + subDetName[i] + "/RatioNoise/"; + rnodir[i] = (TDirectory*)infile->GetDirectory(rno_dir[i]); + if(!rnodir[i]){ + std::cerr << "--> SCTPostProcess: directory " << rno_dir[i] << " not found " <<std::endl; + do_rno = false; + //return; + } + } + + TString no_dir[N_dir]; + TDirectory *nodir[N_dir]; + for(int i=0;i<N_dir;i++){ + if(i==0)no_dir[i] = run_dir + "/SCT" + subDetName[i] + "/noise/"; + else no_dir[i] = run_dir + "/SCT" + subDetName[i] + "/Noise/"; + nodir[i] = (TDirectory*)infile->GetDirectory(no_dir[i]); + if(!nodir[i]){ + std::cerr << "--> SCTPostProcess: directory " << no_dir[i] << " not found " <<std::endl; + do_no = false; + //return; + } + } + + TString conf_dir[N_dir]; + TDirectory *confdir[N_dir]; + for(int i=0;i<N_dir;i++){ + conf_dir[i] = run_dir + "/SCT" + subDetName[i] + "/Conf/"; + confdir[i] = (TDirectory*)infile->GetDirectory(conf_dir[i]); + if(!confdir[i]){ + std::cerr << "--> SCTPostProcess: directory " << conf_dir[i] << " not found " <<std::endl; + do_conf = false; + //return; + } + } + + TString eff_dir[N_dir]; + TDirectory *effdir[N_dir]; + for(int i=0;i<N_dir;i++){ + eff_dir[i] = run_dir + "/SCT" + subDetName[i] + "/eff/"; + effdir[i] = (TDirectory*)infile->GetDirectory(eff_dir[i]); + if(!effdir[i]){ + std::cerr << "--> SCTPostProcess: directory " << eff_dir[i] << " not found " <<std::endl; + do_eff = false; + //return; + } + } + + int layers[3] = {N_DISKS, N_BARREL, N_DISKS}; + if (rno_debug) std::cout << "SCT post-processing: efficiency" <<std::endl; + // efficiency + if(do_eff){ + TString posi_eff[3] = {"m_eff_", "eff_", "p_eff_"}; + + effdir[0]->cd(); + TH1F *h_EffDist = new TH1F("SctEffDistribution", "SCT Efficiency Distribution", 500, 0, 1); + h_EffDist->GetXaxis()->SetTitle("Efficiency"); + h_EffDist->GetYaxis()->SetTitle("Links"); + + TString mapName = ""; + TProfile2D *tp2dMap = 0; + + for(Long_t i=0;i<3;i++){ + effdir[i+1]->cd(); + for(Long_t j=0;j<layers[i];j++){ + for(Long_t k=0;k<2;k++){ + mapName = eff_dir[i+1] + posi_eff[i]+j+"_"+k; + tp2dMap = (TProfile2D*) infile->Get(mapName); + if(!tp2dMap){ + std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName<<std::endl; + continue; + } + for(int xbin=1;xbin<tp2dMap->GetNbinsX()+1;xbin++){ + for(int ybin=1;ybin<tp2dMap->GetNbinsY()+1;ybin++){ + if(tp2dMap->GetBinEntries(tp2dMap->GetBin(xbin,ybin))==0) continue; + h_EffDist->Fill(tp2dMap->GetBinContent(xbin,ybin)); + } + } + } + } + } + effdir[0]->cd(); + h_EffDist->Write("", TObject::kOverwrite); + } + + if (rno_debug) std::cout << "SCT post-processing: ratio noise" <<std::endl; + // ratio noise + if(do_rno){ + int nModuleEndCap1[9] = {0, 92, 224, 356, 488, 620, 752, 844, 936}; + int nModuleEndCap2[9] = {92, 224, 356, 488, 620, 752, 844, 936, 988}; + int nModuleBarrel1[4] = {0, 384, 864, 1440}; + int nModuleBarrel2[4] = {384, 864, 1440, 2112}; + + rnodir[0]->cd(); + TH1F *hist_all = new TH1F("h_NO","Noise Occupancy for Barrel and Endcaps",500,0.,100.); + TH1F *hist_bar = new TH1F("h_NOb","Noise Occupancy for Barrel",500,0.,100.); + TH1F *hist_end = new TH1F("h_NOEC","Noise Occupancy for Endcaps",500,0.,100.); + TH1F *hist_endc = new TH1F("hist_endcapC","endcap C",500,0.,100.); + TH1F *hist_enda = new TH1F("hist_endcapA","endcap A",500,0.,100.); + + TH1F *hist_inner = new TH1F("h_NOEC_Inner","Noise Occupancy Inner Endcap Modules",500,0.,100.); + TH1F *hist_middle = new TH1F("h_NOEC_Middle","Noise Occupancy Middle Endcap Modules",500,0.,100.); + TH1F *hist_outer = new TH1F("h_NOEC_Outer","Noise Occupancy Outer Endcap Modules",500,0.,100.); + TH1F *hist_smiddle = new TH1F("h_NOEC_ShortMiddle","Noise Occupancy Short Middle Endcap Modules",500,0.,100.); + + TH1F *hist_bar_layer[4]; + for(int i=0;i<4;i++){ + rnodir[2]->cd(); + hist_bar_layer[i] = new TH1F(Form("h_NOb_layer%d",i),Form("Noise Occupancy Barrel Layer %d",i),500,0.,100.); + } + TH1F *hist_endC_disk[9]; + for(int i=0;i<9;i++){ + rnodir[1]->cd(); + hist_endC_disk[i] = new TH1F(Form("h_NOECC_disk%d",i),Form("Noise Occupancy Endcap C disk %d",i),500,0.,100.); + } + TH1F *hist_endA_disk[9]; + for(int i=0;i<9;i++){ + rnodir[3]->cd(); + hist_endA_disk[i] = new TH1F(Form("h_NOECA_disk%d",i),Form("Noise Occupancy Endcap A disk %d",i),500,0.,100.); + } + + rnodir[0]->cd(); + TString noSideHitHist = rno_dir[0] + "h_NZ1_vs_modnum"; + TString oneSideHitHist = rno_dir[0] + "h_N11_vs_modnum"; + TH1F *h_nosidehit = (TH1F*)infile->Get(noSideHitHist); + TH1F *h_onesidehit = (TH1F*)infile->Get(oneSideHitHist); + if(!h_nosidehit || !h_onesidehit){ + std::cerr << "--> SCTPostProcess: no such histograms " << noSideHitHist << "and/or" << oneSideHitHist <<std::endl; + } + + for(int i=0;i<4088;i++){ + int nosidehit = h_nosidehit ? h_nosidehit->GetBinContent(i+1): -999; + int onesidehit = h_onesidehit ? h_onesidehit->GetBinContent(i+1): -999; + if(nosidehit>0 && onesidehit>-999){ + double Rval = (double)onesidehit/(double)nosidehit; + double NOval = 1./768.*Rval/(2.+Rval); + if(NOval!=0){ + hist_all->Fill(100000.*NOval); + if(i>=0 && i<988){ + hist_end->Fill(100000.*NOval); + hist_endc->Fill(100000.*NOval); + for(int j=0;j<9;j++){ + if(i>=nModuleEndCap1[j] && i<nModuleEndCap2[j]){ + hist_endC_disk[j]->Fill(100000.*NOval); + if(i-nModuleEndCap1[j]<52){ + hist_outer->Fill(100000.*NOval); + }else if(i-nModuleEndCap1[j]>=52 && i-nModuleEndCap1[j]<92){ + if(i<844){ + hist_middle->Fill(100000.*NOval); + }else if(i>=844){ + hist_smiddle->Fill(100000.*NOval); + } + }else if(i-nModuleEndCap1[j]>=92 && i-nModuleEndCap1[j]<132){ + hist_inner->Fill(100000.*NOval); + } + } + } + }else if(i>=988 && i<3100){ + hist_bar->Fill(100000.*NOval); + for(int j=0;j<4;j++){ + if(i>=nModuleBarrel1[j]+988 && i<nModuleBarrel2[j]+988){ + hist_bar_layer[j]->Fill(100000*NOval); + } + } + }else if(i>=3100 && i<4088){ + hist_end->Fill(100000.*NOval); + hist_enda->Fill(100000.*NOval); + for(int j=0;j<9;j++){ + if(i>=nModuleEndCap1[j]+3100 && i<nModuleEndCap2[j]+3100){ + hist_endA_disk[j]->Fill(100000*NOval); + if(i-nModuleEndCap1[j]-3100<52){ + hist_outer->Fill(100000.*NOval); + }else if(i-nModuleEndCap1[j]-3100>=52 && i-nModuleEndCap1[j]-3100<92){ + if(i-3100<844){ + hist_middle->Fill(100000.*NOval); + }else if(i-3100>=844){ + hist_smiddle->Fill(100000.*NOval); + } + }else if(i-nModuleEndCap1[j]-3100>=92 && i-nModuleEndCap1[j]-3100<132){ + hist_inner->Fill(100000.*NOval); + } + } + } + } + } + } + } + hist_all->SetBinContent(hist_all->GetNbinsX(),hist_all->GetBinContent(hist_all->GetNbinsX() ) + hist_all->GetBinContent(hist_all->GetNbinsX() +1)); + hist_bar->SetBinContent(hist_bar->GetNbinsX(),hist_bar->GetBinContent(hist_bar->GetNbinsX() ) + hist_bar->GetBinContent(hist_bar->GetNbinsX() +1)); + hist_end->SetBinContent(hist_end->GetNbinsX(),hist_end->GetBinContent(hist_end->GetNbinsX() ) + hist_end->GetBinContent(hist_end->GetNbinsX() +1)); + + rnodir[0]->cd(); + hist_all->Write("", TObject::kOverwrite); + hist_bar->Write("", TObject::kOverwrite); + hist_end->Write("", TObject::kOverwrite); + hist_inner->Write("", TObject::kOverwrite); + hist_middle->Write("", TObject::kOverwrite); + hist_outer->Write("", TObject::kOverwrite); + hist_smiddle->Write("", TObject::kOverwrite); + for(int i=0;i<9;i++){ + rnodir[1]->cd(); + hist_endC_disk[i]->Write("", TObject::kOverwrite); + } + for(int i=0;i<4;i++){ + rnodir[2]->cd(); + hist_bar_layer[i]->Write("", TObject::kOverwrite); + } + for(int i=0;i<9;i++){ + rnodir[3]->cd(); + hist_endA_disk[i]->Write("", TObject::kOverwrite); + } + } + + if (rno_debug) std::cout << "SCT post-processing: noise occupancy" <<std::endl; + // noise occupancy + if(do_no){ + TString posi_notrg[3] = {"/noiseoccupancymaptriggerECm_", "/noiseoccupancymaptrigger_", "/noiseoccupancymaptriggerECp_"}; + TString posi_no[3] = {"/noiseoccupancymapECm_", "/noiseoccupancymap_", "/noiseoccupancymapECp_"}; + TString posi_hotrg[3] = {"/hitoccupancymaptriggerECm_", "/hitoccupancymaptrigger_", "/hitoccupancymaptriggerECp_"}; + TString posi_ho[3] = {"/hitoccupancymapECm_", "/hitoccupancymap_", "/hitoccupancymapECp_"}; + + TString tmpName = no_dir[0]+"SCTNOdistributionTrigger"; + TString NO_title = ""; + nodir[0]->cd(); + TH1F* h_SCTNOTrigger = 0; + if(!infile->Get(tmpName)){ + NO_title = "NO Distribution for the SCT for EMPTY trigger"; + } + else{ + NO_title = ((TH1F*)infile->Get(tmpName))->GetTitle(); + } + h_SCTNOTrigger = new TH1F("SCTNOdistributionTrigger", NO_title, 8000,1e-1 ,20000); + h_SCTNOTrigger->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_SCTNOTrigger->GetYaxis()->SetTitle("Modules"); + + TH1F* h_SCTNO = new TH1F("SCTNOdistribution", "NO Distribution for the SCT", 8000,1e-1 ,20000); + h_SCTNO->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_SCTNO->GetYaxis()->SetTitle("Modules"); + + NO_title.ReplaceAll("SCT", "Barrel"); + TH1F* h_barrelNOTrigger = new TH1F("barrelNOdistributionTrigger", NO_title, 8000,1e-1 ,20000); + h_barrelNOTrigger->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_barrelNOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_barrelNO = new TH1F("barrelNOdistribution", "NO Distribution for the Barrel", 8000,1e-1 ,20000); + h_barrelNO->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_barrelNO->GetYaxis()->SetTitle("Modules"); + + NO_title.ReplaceAll("Barrel", "EndCap A"); + TH1F* h_ECANOTrigger = new TH1F("ECANOdistributionTrigger", NO_title, 8000,1e-1 ,20000); + h_ECANOTrigger->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_ECANOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_ECANO = new TH1F("ECANOdistribution", "NO Distribution for the EndCap A", 8000,1e-1 ,20000); + h_ECANO->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_ECANO->GetYaxis()->SetTitle("Modules"); + + NO_title.ReplaceAll("EndCap A", "EndCap C"); + TH1F* h_ECCNOTrigger = new TH1F("ECCNOdistributionTrigger", NO_title, 8000,1e-1 ,20000); + h_ECCNOTrigger->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_ECCNOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_ECCNO = new TH1F("ECCNOdistribution", "NO Distribution for the EndCap C", 8000,1e-1 ,20000); + h_ECCNO->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_ECCNO->GetYaxis()->SetTitle("Modules"); + + tmpName = no_dir[0]+"SCTHOdistributionTrigger"; + TString HO_title = ""; + nodir[0]->cd(); + TH1F* h_SCTHOTrigger = 0; + if(!infile->Get(tmpName)){ + HO_title = "HO Distribution for the SCT for EMPTY trigger"; + } + else{ + HO_title = ((TH1F*)infile->Get(tmpName))->GetTitle(); + } + h_SCTHOTrigger = new TH1F("SCTHOdistributionTrigger", HO_title, 8000,1e-1 ,20000); + h_SCTHOTrigger->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_SCTHOTrigger->GetYaxis()->SetTitle("Modules"); + + TH1F* h_SCTHO = new TH1F("SCTHOdistribution", "HO Distribution for the SCT", 8000,1e-1 ,20000); + h_SCTHO->GetXaxis()->SetTitle("Noise Occupancy [10^{-5}]"); + h_SCTHO->GetYaxis()->SetTitle("Modules"); + + HO_title.ReplaceAll("SCT", "Barrel"); + TH1F* h_barrelHOTrigger = new TH1F("barrelHOdistributionTrigger", HO_title, 8000,1e-1 ,20000); + h_barrelHOTrigger->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_barrelHOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_barrelHO = new TH1F("barrelHOdistribution", "HO Distribution for the Barrel", 8000,1e-1 ,20000); + h_barrelHO->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_barrelHO->GetYaxis()->SetTitle("Modules"); + + HO_title.ReplaceAll("Barrel", "EndCap A"); + TH1F* h_ECAHOTrigger = new TH1F("ECAHOdistributionTrigger", HO_title, 8000,1e-1 ,20000); + h_ECAHOTrigger->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_ECAHOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_ECAHO = new TH1F("ECAHOdistribution", "HO Distribution for the EndCap A", 8000,1e-1 ,20000); + h_ECAHO->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_ECAHO->GetYaxis()->SetTitle("Modules"); + + HO_title.ReplaceAll("EndCap A", "EndCap C"); + TH1F* h_ECCHOTrigger = new TH1F("ECCHOdistributionTrigger", HO_title, 8000,1e-1 ,20000); + h_ECCHOTrigger->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_ECCHOTrigger->GetYaxis()->SetTitle("Modules"); + TH1F* h_ECCHO = new TH1F("ECCHOdistribution", "HO Distribution for the EndCap C", 8000,1e-1 ,20000); + h_ECCHO->GetXaxis()->SetTitle("Hit Occupancy [10^{-5}]"); + h_ECCHO->GetYaxis()->SetTitle("Modules"); + + TString mapName = ""; + TProfile2D *tp2dMap = 0; + + for(Long_t i=0;i<3;i++){ + nodir[i+1]->cd(); + for(Long_t j=0;j<layers[i];j++){ + for(Long_t k=0;k<2;k++){ + mapName = no_dir[i+1] + posi_no[i]+j+"_"+k; + tp2dMap = (TProfile2D*) infile->Get(mapName); + if(!tp2dMap){ + std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName<<std::endl; + continue; + } + for(int xbin=1;xbin<tp2dMap->GetNbinsX()+1;xbin++){ + for(int ybin=1;ybin<tp2dMap->GetNbinsY()+1;ybin++){ + if(tp2dMap->GetBinEntries(tp2dMap->GetBin(xbin,ybin))==0) continue; + h_SCTNO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==0) h_ECCNO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==1) h_barrelNO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==2) h_ECANO->Fill(tp2dMap->GetBinContent(xbin,ybin)); } + } + } + for(Long_t k=0;k<2;k++){ + mapName = no_dir[i+1] + posi_notrg[i]+j+"_"+k; + tp2dMap = (TProfile2D*) infile->Get(mapName); + if(!tp2dMap){ + std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName<<std::endl; + continue; + } + for(int xbin=1;xbin<tp2dMap->GetNbinsX()+1;xbin++){ + for(int ybin=1;ybin<tp2dMap->GetNbinsY()+1;ybin++){ + if(tp2dMap->GetBinEntries(tp2dMap->GetBin(xbin,ybin))==0) continue; + h_SCTNOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==0) h_ECCNOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==1) h_barrelNOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==2) h_ECANOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + } + } + } + for(Long_t k=0;k<2;k++){ + mapName = no_dir[i+1] + posi_ho[i]+j+"_"+k; + tp2dMap = (TProfile2D*) infile->Get(mapName); + if(!tp2dMap){ + std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName<<std::endl; + continue; + } + for(int xbin=1;xbin<tp2dMap->GetNbinsX()+1;xbin++){ + for(int ybin=1;ybin<tp2dMap->GetNbinsY()+1;ybin++){ + if(tp2dMap->GetBinEntries(tp2dMap->GetBin(xbin,ybin))==0) continue; + h_SCTHO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==0) h_ECCHO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==1) h_barrelHO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==2) h_ECAHO->Fill(tp2dMap->GetBinContent(xbin,ybin)); + } + } + } + for(Long_t k=0;k<2;k++){ + mapName = no_dir[i+1] + posi_hotrg[i]+j+"_"+k; + tp2dMap = (TProfile2D*) infile->Get(mapName); + if(!tp2dMap){ + std::cerr << "--> SCTPostProcess: no such histogram: "<<mapName<<std::endl; + continue; + } + for(int xbin=1;xbin<tp2dMap->GetNbinsX()+1;xbin++){ + for(int ybin=1;ybin<tp2dMap->GetNbinsY()+1;ybin++){ + if(tp2dMap->GetBinEntries(tp2dMap->GetBin(xbin,ybin))==0) continue; + h_SCTHOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==0) h_ECCHOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==1) h_barrelHOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + if(i==2) h_ECAHOTrigger->Fill(tp2dMap->GetBinContent(xbin,ybin)); + } + } + } + } + } + + nodir[0]->cd(); + + h_SCTNOTrigger->Write("", TObject::kOverwrite); + h_SCTNO->Write("", TObject::kOverwrite); + h_barrelNOTrigger->Write("", TObject::kOverwrite); + h_barrelNO->Write("", TObject::kOverwrite); + h_ECCNOTrigger->Write("", TObject::kOverwrite); + h_ECCNO->Write("", TObject::kOverwrite); + h_ECANOTrigger->Write("", TObject::kOverwrite); + h_ECANO->Write("", TObject::kOverwrite); + + h_SCTHOTrigger->Write("", TObject::kOverwrite); + h_SCTHO->Write("", TObject::kOverwrite); + h_barrelHOTrigger->Write("", TObject::kOverwrite); + h_barrelHO->Write("", TObject::kOverwrite); + h_ECCHOTrigger->Write("", TObject::kOverwrite); + h_ECCHO->Write("", TObject::kOverwrite); + h_ECAHOTrigger->Write("", TObject::kOverwrite); + h_ECAHO->Write("", TObject::kOverwrite); + } + + if (rno_debug) std::cout << "SCT post-processing: Configuration" <<std::endl; + // Configuration + if(do_conf){ + const int N_hist = 3; + double Threshold[N_hist] = {0.7,0.1,150}; + TString name_hist[N_hist][N_dir] = { + {"","/errors/Errors/SCT_NumberOfErrorsEC_", "/errors/Errors/SCT_NumberOfErrorsB_", "/errors/Errors/SCT_NumberOfErrorsEA_"}, + {"","/eff/ineffm_", "/eff/ineff_", "/eff/ineffp_"}, + {"","/Noise/noiseoccupancymaptriggerECm_", "/Noise/noiseoccupancymaptrigger_", "/Noise/noiseoccupancymaptriggerECp_"} + }; + int countM[N_hist][N_dir]; + for (int ibc = 0; ibc != N_dir; ++ibc) { // region + for(int ih = 0; ih != N_hist; ++ih) { // hist + countM[ih][ibc]=0; + } + } + + TH2F* hist0 = 0; + TH2F* hist1 = 0; + TString mapName = ""; + + confdir[0]->cd(); + for (int ibc = 1; ibc != N_dir; ++ibc) { // region(B=1,ECA=2,ECC=3) + for (int lyr = 0; lyr != layers[ibc-1]; ++lyr) { // layer + for (int ih = 0; ih!= N_hist; ++ih) { // hist + hist0 = 0; hist1 = 0; + mapName = run_dir + "/SCT" + subDetName[ibc] + name_hist[ih][ibc] + TString::Itoa(lyr,10) + "_0"; + hist0 = (TH2F*)infile->Get(mapName); + mapName = run_dir + "/SCT" + subDetName[ibc] + name_hist[ih][ibc] + TString::Itoa(lyr,10) + "_1"; + hist1 = (TH2F*)infile->Get(mapName); + if(!hist0 || !hist1){ + std::cerr << "--> SCTPostProcess: no such histogram: " << mapName + " or _0" <<std::endl; + continue; + } + int xbins = hist0->GetNbinsX() + 1; + int ybins = hist0->GetNbinsY() + 1; + for (int xb = 1; xb != xbins; ++xb) { + for (int yb = 1; yb != ybins; ++yb) { + if (hist0->GetBinContent(xb,yb) > Threshold[ih] || hist1->GetBinContent(xb,yb) > Threshold[ih]){ + countM[ih][0]++; + countM[ih][ibc]++; + } + } + } + } + } + } + + dir0->cd(); + TString conftitleNew[N_dir] = { + "SCTConf", "SCTConfEndcapC", "SCTConfBarrel", "SCTConfEndcapA" + }; + TString conflabel[N_dir] = { + "Num of Problematic Module in All Region", "Num of Problematic Module in EndcapC", + "Num of Problematic Module in Barrel", "Num of Problematic Module in EndcapA" + }; + TH1F *ConfNew[N_dir]; + for(int i=0;i<N_dir;i++){ + TH1F* h_tmp = (TH1F*)infile->Get(conf_dir[i] + conftitleNew[i]); + confdir[i]->cd(); + ConfNew[i] = new TH1F(conftitleNew[i]+"New", conflabel[i], 5, -0.5, 4.5); + ConfNew[i]->GetXaxis()->SetBinLabel(1,"Flagged Links"); + if(h_tmp) ConfNew[i]->SetBinContent(1,h_tmp->GetBinContent(2)); + if(h_tmp) ConfNew[i]->SetBinError(1,TMath::Sqrt(h_tmp->GetBinContent(2))); + ConfNew[i]->GetXaxis()->SetBinLabel(2,"Masked Links"); + if(h_tmp) ConfNew[i]->SetBinContent(2,h_tmp->GetBinContent(3)); + if(h_tmp) ConfNew[i]->SetBinError(2,TMath::Sqrt(h_tmp->GetBinContent(3))); + ConfNew[i]->GetXaxis()->SetBinLabel(3,"Errors"); + ConfNew[i]->SetBinContent(3,countM[0][i]); + ConfNew[i]->SetBinError(3,TMath::Sqrt(countM[0][i])); + ConfNew[i]->GetXaxis()->SetBinLabel(4,"Inefficient"); + ConfNew[i]->SetBinContent(4,countM[1][i]); + ConfNew[i]->SetBinError(4,TMath::Sqrt(countM[1][i])); + ConfNew[i]->GetXaxis()->SetBinLabel(5,"Noisy"); + ConfNew[i]->SetBinContent(5,countM[2][i]); + ConfNew[i]->SetBinError(5,TMath::Sqrt(countM[2][i])); + ConfNew[i]->Write("", TObject::kOverwrite); + } + } + + if (rno_debug) std::cout<<"Writing Histograms for SCT..."<<std::endl; + infile->Write(); + + }//while + //infile->Close(); + } }//namespace diff --git a/DataQuality/ZLumiScripts/CMakeLists.txt b/DataQuality/ZLumiScripts/CMakeLists.txt new file mode 100644 index 000000000000..b658acb5bba6 --- /dev/null +++ b/DataQuality/ZLumiScripts/CMakeLists.txt @@ -0,0 +1,15 @@ +################################################################################ +# Package: ZLumiScripts +################################################################################ + +# Declare the package name: +atlas_subdir( ZLumiScripts ) + +# Declare the package's dependencies: +#atlas_depends_on_subdirs( ) + +# External dependencies: +find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) + +# Install files from the package: +atlas_install_scripts( scripts/*.py ) diff --git a/DataQuality/ZLumiScripts/scripts/dqt_zlumi_alleff_HIST.py b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_alleff_HIST.py new file mode 100755 index 000000000000..ecb4f90b5e0d --- /dev/null +++ b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_alleff_HIST.py @@ -0,0 +1,229 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +import sys, os, glob +import ROOT + +ROOT.gStyle.SetOptStat(0) + +#ACCEPTANCE = 3.173927e-01 +ACCEPTANCE = 3.323224e-01 + +import argparse +parser = argparse.ArgumentParser() +parser.add_argument('infile', type=str, help='input HIST file') +parser.add_argument('--out', type=str, help='output ROOT file') +parser.add_argument('--plotdir', type=str, help='Directory to dump plots', + default='plots') +parser.add_argument('--debug', action='store_true', help='Be verbose in output') +parser.add_argument('--mode', type=str, help='Zee or Zmumu') + + +args = parser.parse_args() + +infilename = args.infile +infile = ROOT.TFile.Open(infilename, 'READ') + +runmode = args.mode +print 'Running in', runmode, 'mode' + + +runname = None +for k in infile.GetListOfKeys(): + if k.GetName().startswith('run_'): + runname = k.GetName() + break +if not runname: + print 'Cannot find run directory in input file' + sys.exit(1) +else: + print 'Found runname', runname + +lbdirs = [] +for k in infile.Get(runname).GetListOfKeys(): + if k.GetName().startswith('lb_'): + lbdirs.append(k.GetName()) + +print 'Now to dump' +lbnums = sorted([int(_[3:]) for _ in lbdirs]) + +effcyt = ROOT.TH1F('effcyt', 'Trigger efficiency', lbnums[-1]-lbnums[0]+1, lbnums[0]-0.5, + lbnums[-1]+0.5) +effcyr = ROOT.TH1F('effcyr', 'Loose muon reco efficiency', lbnums[-1]-lbnums[0]+1, lbnums[0]-0.5, + lbnums[-1]+0.5) +effcya = ROOT.TH1F('effcya', 'Combined acc x efficiency', lbnums[-1]-lbnums[0]+1, lbnums[0]-0.5, + lbnums[-1]+0.5) +effcydir = ROOT.TH1F('effcydir', 'Direct acc x efficiency', lbnums[-1]-lbnums[0]+1, lbnums[0]-0.5, + lbnums[-1]+0.5) + +from array import array +fout = ROOT.TFile(args.out if args.out else '%s_all.root' % runname[4:], 'RECREATE') +o_run = array('I', [0]) +o_lb = array('I', [0]) +o_lbwhen = array('d', [0., 0.]) +o_z_one = array('f', [0.]) +o_z_two = array('f', [0.]) +o_trigeff = array('f', [0.]) +o_trigeffstat = array('f', [0.]) +o_recoeff = array('f', [0.]) +o_recoeffstat = array('f', [0.]) +o_alleff = array('f', [0.]) +o_alleffstat = array('f', [0.]) +o_ae = array('f', [0.]) +o_aestat = array('f', [0.]) +tl = ROOT.TTree( 'lumitree', 'Luminosity tree' ) +tl.Branch('run', o_run, 'run/i') +tl.Branch('lb', o_lb, 'lb/i') +tl.Branch('lbwhen', o_lbwhen, 'lbwhen[2]/D') +tl.Branch('z_one', o_z_one, 'z_one/F') +tl.Branch('z_two', o_z_two, 'z_two/F') +tl.Branch('trigeff', o_trigeff, 'trigeff/F') +tl.Branch('trigeffstat', o_trigeffstat, 'trigeffstat/F') +tl.Branch('recoeff', o_recoeff, 'recoeff/F') +tl.Branch('recoeffstat', o_recoeffstat, 'recoeffstat/F') +tl.Branch('alleff', o_alleff, 'alleff/F') +tl.Branch('alleffstat', o_alleffstat, 'alleffstat/F') +tl.Branch('ae', o_ae, 'ae/F') +tl.Branch('aestat', o_aestat, 'aestat/F') + + +from DQUtils import fetch_iovs +#rset=set(_[0] for _ in rlb) +#print rset +lblb = fetch_iovs("LBLB", runs=int(runname[4:])).by_run +for lb in sorted(lbdirs): + if runmode == "Zee": + h = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_eltrigtp_matches' % (runname, lb)) + hmo = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_ele_tight_good_os' % (runname, lb)) + hms = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_ele_tight_good_ss' % (runname, lb)) + hno = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_ele_tight_bad_os' % (runname, lb)) + hns = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_ele_tight_bad_ss' % (runname, lb)) + if runmode == "Zmumu": + h = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_mutrigtp_matches' % (runname, lb)) + hmo = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_muloosetp_match_os' % (runname, lb)) + hms = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_muloosetp_match_ss' % (runname, lb)) + hno = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_muloosetp_nomatch_os' % (runname, lb)) + hns = infile.Get('%s/%s/GLOBAL/DQTGlobalWZFinder/m_muloosetp_nomatch_ss' % (runname, lb)) + lbnum = int(lb[3:]) + yld = (h[2], h[3]) + ylderr = (h.GetBinError(2), h.GetBinError(3)) + #print yld, ylderr + A, B = yld + o_z_one[0], o_z_two[0] = yld + if B == 0: continue + eff = 1./(float(A)/B/2.+1.) + inverrsq = ((1/2./B)*ylderr[0])**2+((A/2./B**2)*ylderr[1])**2 + o_trigeff[0] = eff + o_trigeffstat[0] = (inverrsq**.5)*(eff**2) + o_run[0], o_lb[0] = int(runname[4:]), lbnum + try: + iov = lblb[int(runname[4:])][lbnum-1] + o_lbwhen[0], o_lbwhen[1] = iov.StartTime/1e9, iov.EndTime/1e9 + except Exception, e: + o_lbwhen[0], o_lbwhen[1] = 0, 0 + effcyt.SetBinContent(lbnum-lbnums[0]+1, eff) + effcyt.SetBinError(lbnum-lbnums[0]+1, o_trigeffstat[0]) + + def extract(histogram): + dbl = ROOT.Double() + rv1 = histogram.IntegralAndError(21, 30, dbl) + return (rv1, float(dbl)) + matchos, matchoserr = extract(hmo) + matchss, matchsserr = extract(hms) + nomatchos, nomatchoserr = extract(hno) + nomatchss, nomatchsserr = extract(hns) + if args.debug: + print lb + print ' ->', matchos, matchoserr + print ' ->', matchss, matchsserr + print ' ->', nomatchos, nomatchoserr + print ' ->', nomatchss, nomatchsserr + A = float(matchos-matchss) + Aerr = (matchoserr**2+matchsserr**2)**.5 + B = float(nomatchos-nomatchss) + Berr = (nomatchoserr**2+nomatchsserr**2)**.5 + if Berr == 0: Berr = 1. + if A == 0 or B/A == -1: + eff = 1. + inverrsq = 1. + else: + eff = 1./(1.+B/A) + inverrsq = ((-B/A**2)*Aerr)**2+((1./A)*Berr)**2 + o_recoeff[0] = eff + o_recoeffstat[0] = (inverrsq**.5)*(eff**2) + effcyr.SetBinContent(lbnum-lbnums[0]+1, eff) + effcyr.SetBinError(lbnum-lbnums[0]+1, o_recoeffstat[0]) + + o_ae[0] = ACCEPTANCE*(1-(1-o_trigeff[0])**2)*(o_recoeff[0])**2 + o_aestat[0] = ACCEPTANCE*((o_recoeff[0]**2*2*(1-o_trigeff[0])*o_trigeffstat[0])**2+(2*o_recoeff[0]*(1-(1-o_trigeff[0])**2)*o_recoeffstat[0])**2)**.5 + o_alleff[0] = (1-(1-o_trigeff[0])**2)*(o_recoeff[0])**2 + o_alleffstat[0] = ((o_recoeff[0]**2*2*(1-o_trigeff[0])*o_trigeffstat[0])**2+(2*o_recoeff[0]*(1-(1-o_trigeff[0])**2)*o_recoeffstat[0])**2)**.5 + effcya.SetBinContent(lbnum-lbnums[0]+1, o_ae[0]) + effcya.SetBinError(lbnum-lbnums[0]+1, o_aestat[0]) + + + tl.Fill() +tl.Write() +print 'Done' + +c1 = ROOT.TCanvas() +effcya.SetMarkerStyle(21) +effcya.SetMarkerColor(ROOT.kBlue) +effcya.GetYaxis().SetRangeUser(0.25,0.31) +effcya.Draw('PE') +c1.Print(os.path.join(args.plotdir, '%s_combined_efficiency.eps' % runname[4:])) +fout.WriteTObject(effcya) +c1.Clear() +effcyt.SetMarkerStyle(21) +effcyt.SetMarkerColor(ROOT.kBlue) +effcyt.GetYaxis().SetRangeUser(0.66,0.86) +effcyt.Draw('PE') +c1.Print(os.path.join(args.plotdir, '%s_trigger_efficiency.eps' % runname[4:])) +fout.WriteTObject(effcyt) +c1.Clear() +effcyr.SetMarkerStyle(21) +effcyr.SetMarkerColor(ROOT.kBlue) +effcyr.GetYaxis().SetRangeUser(0.9,1.0) +effcyr.Draw('PE') +c1.Print(os.path.join(args.plotdir, '%s_reco_efficiency.eps' % runname[4:])) +fout.WriteTObject(effcyr) +fout.Close() + +if runmode == "Zee": + sumweights = infile.Get('%s/GLOBAL/DQTDataFlow/m_sumweights' % runname) + ctr = infile.Get('%s/GLOBAL/DQTGlobalWZFinder/m_Z_Counter_el' % runname) +if runmode == "Zmumu": + sumweights = infile.Get('%s/GLOBAL/DQTDataFlow/m_sumweights' % runname) + ctr = infile.Get('%s/GLOBAL/DQTGlobalWZFinder/m_Z_Counter_mu' % runname) +if sumweights: + for ibin in xrange(1,sumweights.GetNbinsX()+1): + o_lb[0] = int(sumweights.GetBinCenter(ibin)) + ctrbin = ctr.FindBin(o_lb[0]) + print ibin, o_lb[0], sumweights[ibin], ctr[ctrbin] + if sumweights[ibin] == 0: continue + p = ctr[ctrbin]/sumweights[ibin] + o_alleff[0]=p + try: + o_alleffstat[0]=(p*(1-p))**.5*(sumweights.GetBinError(ibin)/sumweights[ibin]) + except ValueError: + o_alleffstat[0]=(sumweights.GetBinError(ibin)/sumweights[ibin]) + effcydir.SetBinContent(effcydir.FindBin(o_lb[0]), p) + effcydir.SetBinError(effcydir.FindBin(o_lb[0]), o_alleffstat[0]) + + effcya.GetYaxis().SetRangeUser(0.27,0.31) + effcya.Draw('PE') + effcydir.SetMarkerStyle(20) + effcydir.SetMarkerColor(ROOT.kRed) + effcydir.Draw('SAME,PE') + leg=ROOT.TLegend(0.65, 0.7, 0.89, 0.89) + leg.AddEntry(effcya, 'Predicted A#epsilon', 'PE') + leg.AddEntry(effcydir, 'Actual A#epsilon', 'PE') + leg.Draw() + c1.Print(os.path.join(args.plotdir, '%s_tp_comparison.eps' % runname[4:])) + + effcyrat=effcydir.Clone() + effcyrat.Divide(effcya) + effcyrat.SetTitle('MC Correction Factor') + effcyrat.SetXTitle('<#mu>') + effcyrat.Draw('PE') + effcyrat.Fit('pol1') + c1.Print(os.path.join(args.plotdir, '%s_tp_correction.eps' % runname[4:])) diff --git a/DataQuality/ZLumiScripts/scripts/dqt_zlumi_combine_lumi.py b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_combine_lumi.py new file mode 100755 index 000000000000..9cefac39d981 --- /dev/null +++ b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_combine_lumi.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +import ROOT +import sys + +import argparse +parser = argparse.ArgumentParser() +parser.add_argument('recofile', type=str, help='File with per-LB yields') +parser.add_argument('efffile', type=str, help='File with efficiencies') +parser.add_argument('outfile', type=str, help='Output file') +parser.add_argument('--nlb', type=int, help='# of LBs to combine', + default=20) +args = parser.parse_args() + +recozfname = args.recofile +effzfname = args.efffile +outfname = args.outfile + +LUMIBLOCKS = args.nlb +#ACCEPTANCE = 3.173927e-01 +ACCEPTANCE = 3.323224e-01 +ZXSEC=1.929 +ZPURITYFACTOR=0.9935 + +def correction(mu): + # R20.7 + # return 1.04524-0.000108956*mu + # R21 + #return 1.04701-0.000206159*mu + return 0.998758-0.000157214*mu + #return 1. + +recozfile = ROOT.TFile.Open(recozfname) +effzfile = ROOT.TFile.Open(effzfname) + +recoztree = recozfile.lumitree +effztree = effzfile.lumitree + +entrydict = {} + +for i in xrange(recoztree.GetEntries()): + recoztree.GetEntry(i) + if not recoztree.pass_grl: continue + # If livetime less than 10 sec, ignore + if recoztree.lblive < 10 : continue + effztree.Draw('alleff:alleffstat', 'run==%s&&lb==%s' % (recoztree.run, recoztree.lb), 'goff') + if effztree.GetSelectedRows() == 0: + print 'Broken for run, lb %s %s' % (recoztree.run, recoztree.lb) + print 'We THINK there are %d events here ...' % (recoztree.zraw) + continue + lbzero = (recoztree.lb // LUMIBLOCKS)*LUMIBLOCKS + run = recoztree.run + if (run, lbzero) not in entrydict: entrydict[(run, lbzero)] = {'zcount': 0., 'zcounterrsq': 0., 'livetime': 0., 'lbwhen': [-1, -1], 'mu': 0., 'offlumi': 0., 'rolleff': 0., 'rollefferrsq': 0., 'lhcfill': recoztree.lhcfill} + thisdict = entrydict[(run, lbzero)] + effcy = (effztree.GetV1()[0]*correction(recoztree.mu)) + #thisdict['zcount'] += recoztree.zraw/effcy + #thisdict['zcounterrsq'] += (1/effcy*recoztree.zrawstat)**2+(recoztree.zraw/effcy**2*effztree.GetV2()[0])**2 + thisdict['zcount'] += recoztree.zraw + thisdict['zcounterrsq'] += recoztree.zrawstat**2 + effcywght = (effztree.GetV2()[0]*correction(recoztree.mu))**2 + thisdict['rolleff'] += effcy/effcywght + thisdict['rollefferrsq'] += 1/effcywght + loclivetime = recoztree.lblive + #loclivetime = (recoztree.lbwhen[1]-recoztree.lbwhen[0]) + thisdict['livetime'] += loclivetime + thisdict['mu'] += recoztree.mu*loclivetime + thisdict['offlumi'] += recoztree.offlumi*loclivetime + if thisdict['lbwhen'][0] > recoztree.lbwhen[0] or thisdict['lbwhen'][0] == -1: + thisdict['lbwhen'][0] = recoztree.lbwhen[0] + if thisdict['lbwhen'][1] < recoztree.lbwhen[1] or thisdict['lbwhen'][1] == -1: + thisdict['lbwhen'][1] = recoztree.lbwhen[1] + +from array import array + +fout = ROOT.TFile.Open(outfname, 'RECREATE') +o_run = array('I', [0]) +o_lb = array('I', [0]) +o_lbwhen = array('d', [0., 0.]) +o_zrate = array('f', [0.]) +o_zratestat = array('f', [0.]) +o_zlumi = array('f', [0.]) +o_zlumistat = array('f', [0.]) +o_mu = array('f', [0.]) +o_alleffcorr = array('f', [0.]) +o_alleffcorrstat = array('f', [0.]) +o_offlumi = array('f', [0.]) +o_lblive = array('f', [0.]) +o_lhcfill = array('I', [0]) +t = ROOT.TTree( 'lumitree', 'Luminosity tree' ) +t.Branch('run', o_run, 'run/i') +t.Branch('lb', o_lb, 'lb/i') +t.Branch('lbwhen', o_lbwhen, 'lbwhen[2]/D') +t.Branch('zrate', o_zrate, 'zrate/F') +t.Branch('zratestat', o_zratestat, 'zratestat/F') +t.Branch('zlumi', o_zlumi, 'zlumi/F') +t.Branch('zlumistat', o_zlumistat, 'zlumistat/F') +t.Branch('offlumi', o_offlumi, 'offlumi/F') +t.Branch('mu', o_mu, 'mu/F') +t.Branch('alleffcorr', o_alleffcorr, 'alleffcorr/F') +t.Branch('alleffcorrstat', o_alleffcorrstat, 'alleffcorrstat/F') +t.Branch('lblive', o_lblive, 'lblive/F') +t.Branch('lhcfill', o_lhcfill, 'lhcfill/i') + +for entry, entryval in sorted(entrydict.items()): + if entryval['livetime'] > 0: + entryval['mu'] /= entryval['livetime'] + entryval['offlumi'] /= entryval['livetime'] + eff = entryval['rolleff']/entryval['rollefferrsq'] + efferr = 1/entryval['rollefferrsq']**.5 + #print 'LIVETIME2', entryval['livetime'] + entryval['zrate'] = entryval['zcount']/eff/entryval['livetime'] + entryval['zratestat'] = (entryval['zcounterrsq']/eff/eff + (entryval['zcount']/eff**2*efferr)**2)**.5/entryval['livetime'] + o_run[0], o_lb[0] = entry + o_lbwhen[0], o_lbwhen[1] = entryval['lbwhen'] + o_zrate[0] = entryval['zrate'] + o_zratestat[0] = entryval['zratestat'] + o_zlumi[0] = o_zrate[0]*ZPURITYFACTOR/ACCEPTANCE/ZXSEC + o_zlumistat[0] = o_zratestat[0]*ZPURITYFACTOR/ACCEPTANCE/ZXSEC + o_mu[0] = entryval['mu'] + o_alleffcorr[0] = eff + o_alleffcorrstat[0] = efferr + o_offlumi[0] = entryval['offlumi'] + o_lblive[0] = entryval['livetime'] + o_lhcfill[0] = entryval['lhcfill'] + if o_zlumi[0] < 4 or o_zlumi[0] > 15: + print o_lb[0], o_zlumi[0], entryval['zcount'], eff, entryval['livetime'] + t.Fill() +#t.Write() +newrzt = recoztree.CloneTree() +newrzt.SetName("recolumitree") +newezt = effztree.CloneTree() +newezt.SetName("efflumitree") +fout.Write() +fout.Close() + diff --git a/DataQuality/ZLumiScripts/scripts/dqt_zlumi_compute_lumi.py b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_compute_lumi.py new file mode 100755 index 000000000000..44a2e9f770cd --- /dev/null +++ b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_compute_lumi.py @@ -0,0 +1,325 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + +import ROOT +import sys, os +import logging +logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO) +import argparse +parser = argparse.ArgumentParser() +parser.add_argument('infile', type=str, help='input HIST file') +parser.add_argument('--grl', type=str, help='Specify an input GRL') +parser.add_argument('--out', type=str, help='output ROOT file') +parser.add_argument('--tag', type=str, help='Lumi tag', + default='OflLumiAcct-001') +parser.add_argument('--useofficial', action='store_true', help='Use official lumi folder (otherwise, use OflLumiAcct') +parser.add_argument('--lumifolder', type=str, help='Lumi folder', default='/TRIGGER/OFLLUMI/OflPrefLumi') +parser.add_argument('--lumitag', type=str, help='Lumi tag', default='OflLumi-13TeV-009') +parser.add_argument('--plotdir', type=str, help='Directory to dump plots', + default='plots') +parser.add_argument('--mudep', type=int, help='Run mu-dependent efficiencies', + default=0) +parser.add_argument('--dblivetime', action='store_true', + help='Look up livetime from DB') +parser.add_argument('--mode', type=str, help='Zee or Zmumu') + +args = parser.parse_args() + +BINWIDTH=10 + +ZPURITYFACTOR=0.9935 +ZXSEC=1.929 +#ZATIMESC=0.2578 +ZATIMESC=0.29632 + +def mu_dep_eff(mu): + #make breakpoint at 8 match + if 0 <= mu < 8: return 0.3152 #0.3141 + elif 8 <= mu < 27: return 0.3191 - 0.000493*mu + elif 27 <= mu: return 0.3443 - 0.00143*mu + else: + print 'WTF??' + return ZATIMESC + +ROOT.gStyle.SetOptStat(0) + +fin = ROOT.TFile.Open(args.infile) +runname = None +for key in fin.GetListOfKeys(): + if key.GetName().startswith('run_'): + runname = key.GetName() + break + +if args.grl: + import DQUtils + grl = DQUtils.grl.load_grl(args.grl) +else: + grl = None + +if not runname: + logging.critical("Can't find run_* directory in input file %s", args.infile) + sys.exit(1) + +z_m = fin.Get('%s/GLOBAL/DQTGlobalWZFinder/m_Z_Counter_mu' % runname) +if args.out: + outfname = args.out +else: + outfname = '%s_data.root' % runname[4:] + +runmode = args.mode +print 'Running in', runmode, 'mode' +if runmode == 'Zee': + z_m = fin.Get('%s/GLOBAL/DQTGlobalWZFinder/m_Z_Counter_el' % runname) + if not z_m: + logging.critical("Can't retrieve m_Z_Counter_el") + sys.exit(1) + +if runmode == 'Zmumu': + z_m = fin.Get('%s/GLOBAL/DQTGlobalWZFinder/m_Z_Counter_mu' % runname) + if not z_m: + logging.critical("Can't retrieve m_Z_Counter_mu") + sys.exit(1) + + +fout = None +t = None + +from array import array +o_passgrl = array('i', [0]) +o_mu = array('f', [0.]) + +o_lb_rb = array('I', [0,0]) +o_lbwhen_rb = array('d', [0., 0.]) +o_zlumi_rb = array('f', [0.]) +o_zlumistat_rb = array('f', [0.]) +o_offlumi_rb = array('f', [0.]) +o_mu_rb = array('f', [0.]) +o_lblive_rb = array('f', [0.]) +if True: + fout = ROOT.TFile.Open(outfname, 'RECREATE') + o_run = array('I', [int(runname[4:])]) + o_lb = array('I', [0]) + o_lbwhen = array('d', [0., 0.]) + o_zraw = array('f', [0.]) + o_zrawstat = array('f', [0.]) + o_zlumi = array('f', [0.]) + o_zlumistat = array('f', [0.]) + o_offlumi = array('f', [0.]) + o_lblive = array('f', [0.]) + o_lhcfill = array('I', [0]) + t = ROOT.TTree( 'lumitree', 'Luminosity tree' ) + t.Branch('run', o_run, 'run/i') + t.Branch('lb', o_lb, 'lb/i') + t.Branch('lbwhen', o_lbwhen, 'lbwhen[2]/D') + t.Branch('zraw', o_zraw, 'zraw/F') + t.Branch('zrawstat', o_zrawstat, 'zrawstat/F') + t.Branch('zlumi', o_zlumi, 'zlumi/F') + t.Branch('zlumistat', o_zlumistat, 'zlumistat/F') + t.Branch('offlumi', o_offlumi, 'offlumi/F') + t.Branch('mu', o_mu, 'mu/F') + t.Branch('lblive', o_lblive, 'lblive/F') + t.Branch('pass_grl', o_passgrl, 'pass_grl/I') + t.Branch('lhcfill', o_lhcfill, 'lhcfill/i') + + t_rb = ROOT.TTree( 'lumitree_rb', 'Luminosity tree, rebinned' ) + t_rb.Branch('run', o_run, 'run/i') + t_rb.Branch('lb', o_lb_rb, 'lb[2]/i') + t_rb.Branch('lbwhen', o_lbwhen_rb, 'lbwhen[2]/D') + t_rb.Branch('zlumi', o_zlumi_rb, 'zlumi/F') + t_rb.Branch('zlumistat', o_zlumistat_rb, 'zlumistat/F') + t_rb.Branch('offlumi', o_offlumi_rb, 'offlumi/F') + t_rb.Branch('mu', o_mu_rb, 'mu/F') + t_rb.Branch('lblive', o_lblive_rb, 'lblive/F') + + ROOT.gROOT.cd('/') + + +lb_length = fin.Get('%s/GLOBAL/DQTGlobalWZFinder/m_lblength_lb' % runname) +lbmin, lbmax = lb_length.GetXaxis().GetXmin(), lb_length.GetXaxis().GetXmax() +logging.info('low, high LBs: %s, %s', lbmin, lbmax) + +if args.dblivetime: + logging.info('Starting livetime lookup ... (remove when we have a proper in-file implementation ...)') + livetime = ROOT.TProfile('livetime', 'Livetime', int(lbmax-lbmin), lbmin, lbmax) +else: + livetime = fin.Get('%s/GLOBAL/DQTGlobalWZFinder/m_livetime_lb' % runname) + +official_lum = ROOT.TProfile('official_lum', 'official integrated luminosity', int(lbmax-lbmin), lbmin, lbmax) +official_lum_zero = ROOT.TProfile('official_lum_zero', 'official inst luminosity', int(lbmax-lbmin), lbmin, lbmax) +official_mu = ROOT.TProfile('official_mu', 'official mu', int(lbmax-lbmin), lbmin, lbmax) +from DQUtils import fetch_iovs +from DQUtils.iov_arrangement import inverse_lblb +lblb = fetch_iovs("LBLB", runs=int(runname[4:])) +lbtime = inverse_lblb(lblb) +#print list(lbtime) +iovs_acct = fetch_iovs('COOLOFL_TRIGGER::/TRIGGER/OFLLUMI/LumiAccounting', lbtime.first.since, lbtime.last.until, tag=args.tag) +if args.useofficial: + iovs_lum = fetch_iovs('COOLOFL_TRIGGER::%s' % args.lumifolder, lblb.first.since, lblb.last.until, tag=args.lumitag, channels=[0]) + #print list(iovs_lum) +lb_start_end = {} +lb_lhcfill = {} +for iov in lblb: + lb_start_end[iov.since & 0xffffffff] = (iov.StartTime/1e9, iov.EndTime/1e9) + +for iov in iovs_acct: + if not lbmin < iov.LumiBlock < lbmax: + continue + lb_lhcfill[iov.LumiBlock] = iov.FillNumber + if args.dblivetime: + livetime.Fill(iov.LumiBlock, iov.LiveFraction) + #print iov.InstLumi, iovs_lum[iov.LumiBlock-1].LBAvInstLumi + if not args.useofficial: + official_lum_zero.Fill(iov.LumiBlock, iov.InstLumi/1e3) + official_lum.Fill(iov.LumiBlock, iov.InstLumi*iov.LBTime*iov.LiveFraction/1e3) + official_mu.Fill(iov.LumiBlock, iov.AvEvtsPerBX) + else: + offlumiov = [_ for _ in iovs_lum if _.since.lumi==iov.LumiBlock] + if len(offlumiov) != 1: + print 'MAJOR PROBLEM, LUMI IOV MISMATCH' + print len(offlumiov) + continue + offlumiov = offlumiov[0] + official_lum_zero.Fill(iov.LumiBlock, offlumiov.LBAvInstLumi/1e3) + official_lum.Fill(iov.LumiBlock, offlumiov.LBAvInstLumi*iov.LBTime*iov.LiveFraction/1e3) + official_mu.Fill(iov.LumiBlock, offlumiov.LBAvEvtsPerBX) + +divisor = lb_length.Clone('divisor').ProjectionX() +px = livetime.ProjectionX() +divisor.Multiply(px) + +nrebinned_bins = ((lbmax-lbmin) // BINWIDTH) + 1 + +if runmode == 'Zee': + lumititle = 'Lumi, Z->ee (Run %s)' % runname[4:] + efftitle = 'eff #sigma, Z->ee' + lumirawtitle = 'Lumi, Z->ee per LB' +if runmode == 'Zmumu': + lumititle = 'Lumi, Z->#mu#mu (Run %s)' % runname[4:] + efftitle = 'eff #sigma, Z->#mu#mu' + lumirawtitle = 'Lumi, Z->#mu#mu per LB' + + +lumiplot_m = ROOT.TH1F('lumiplot_m', lumititle % runname[4:], + int(nrebinned_bins), + lbmin, lbmin+BINWIDTH*nrebinned_bins) +lumiplot_m_ratio = ROOT.TH1F('lumiplot_m_ratio', 'Z/official lumi ratio (Run %s)' % runname[4:], + int(nrebinned_bins), + lbmin, lbmin+BINWIDTH*nrebinned_bins) +lumiplot_m.SetXTitle('LB') +lumiplot_m.SetYTitle('Luminosity (x 10^{33} cm^{-2} s^{-1})') +xsec_m = ROOT.TH1F('xsec_m', efftitle, int(nrebinned_bins), + lbmin, lbmin+BINWIDTH*nrebinned_bins) +lumiplot_raw_m = ROOT.TH1F('lumiplot_raw_m', lumirawtitle, + int(lbmax-lbmin), + lbmin, lbmax) + +num_m, lum, denom, weighted_mu = 0, 0, 0, 0 +tot_num_m, tot_denom, tot_lum = 0, 0, 0 +for ibin in xrange(1, int(lbmax-lbmin)+1): + profileflag=True + try: + z_m[ibin] + except IndexError, e: + logging.error('Something unfortunate has happened; LB %d missing from Z count' % (ibin + lbmin - 1)) + profileflag=False + if args.mudep: + l_zatimesc = mu_dep_eff(official_mu[ibin]) + else: + l_zatimesc = ZATIMESC + if grl and not DQUtils.grl.grl_contains_run_lb(grl, (int(runname[4:]), int(lumiplot_raw_m.GetBinCenter(ibin)))): + o_passgrl[0]=0 + else: + o_passgrl[0]=1 + if divisor[ibin] > 0 and profileflag: + lumiplot_raw_m.SetBinContent(ibin, z_m[ibin]/divisor[ibin]*ZPURITYFACTOR/l_zatimesc/ZXSEC) + lumiplot_raw_m.SetBinError(ibin, z_m[ibin]**.5/divisor[ibin]*ZPURITYFACTOR/l_zatimesc/ZXSEC) + o_mu[0] = official_mu[ibin] + if o_passgrl[0]: + if profileflag: + num_m += z_m[ibin]; tot_num_m += z_m[ibin] + denom += divisor[ibin]; tot_denom += divisor[ibin] + lum += official_lum[ibin]; tot_lum += official_lum[ibin] + weighted_mu += o_mu[0]*divisor[ibin] + + + # fill tree + if t: + #print ibin, lumiplot_raw_m.GetBinCenter(ibin) + o_lb[0] = int(lumiplot_raw_m.GetBinCenter(ibin)) + o_lbwhen[0] = lb_start_end[o_lb[0]][0] + o_lbwhen[1] = lb_start_end[o_lb[0]][1] + o_zraw[0] = z_m[ibin] if profileflag else 0 + o_zrawstat[0] = z_m.GetBinError(ibin) if profileflag else 0 + o_zlumi[0] = lumiplot_raw_m[ibin] + o_zlumistat[0] = lumiplot_raw_m.GetBinError(ibin) + o_offlumi[0] = official_lum_zero[ibin] + o_lblive[0] = divisor[ibin] + o_lhcfill[0] = lb_lhcfill[o_lb[0]] + t.Fill() + + if (ibin % BINWIDTH) == 0: + ribin = int(ibin // BINWIDTH) + o_mu_rb[0] = weighted_mu/denom if denom > 0 else 0 + if args.mudep: + l_zatimesc = mu_dep_eff(o_mu_rb[0]) + else: + l_zatimesc = ZATIMESC + if denom > 0: + lumiplot_m.SetBinContent(ribin, num_m/denom*ZPURITYFACTOR/l_zatimesc/ZXSEC) + lumiplot_m.SetBinError(ribin, num_m**.5/denom*ZPURITYFACTOR/l_zatimesc/ZXSEC) + if lum > 0: + xsec_m.SetBinContent(ribin, num_m/lum*ZPURITYFACTOR/l_zatimesc) + xsec_m.SetBinError(ribin, num_m**.5/lum*ZPURITYFACTOR/l_zatimesc) + if denom > 0: + o_zlumi_rb[0] = num_m/denom*ZPURITYFACTOR/l_zatimesc/ZXSEC + o_zlumistat_rb[0] = num_m**.5/denom*ZPURITYFACTOR/l_zatimesc/ZXSEC + o_offlumi_rb[0] = lum/denom + if o_offlumi_rb[0] > 0: + lumiplot_m_ratio.SetBinContent(ribin, o_zlumi_rb[0]/o_offlumi_rb[0]) + lumiplot_m_ratio.SetBinError(ribin, o_zlumistat_rb[0]/o_offlumi_rb[0]) + else: + o_zlumi_rb[0] = 0. + o_zlumistat_rb[0] = 0. + o_offlumi_rb[0] = 0. + o_mu_rb[0] = 0. + o_lb_rb[1] = int(lumiplot_raw_m.GetBinCenter(ibin)) + o_lb_rb[0] = int(lumiplot_raw_m.GetBinCenter(ibin)-BINWIDTH+1) + o_lbwhen_rb[0] = lb_start_end[o_lb_rb[0]][0] + o_lbwhen_rb[1] = lb_start_end[o_lb_rb[1]][1] + o_lblive_rb[0] = denom + if t: + t_rb.Fill() + + num_m, lum, denom, weighted_mu = 0, 0, 0, 0 + +if fout: + fout.cd() + t.Write() + t_rb.Write() + + if tot_lum > 0: + tge = ROOT.TGraphErrors(1) + tge.SetPoint(0, int(runname[4:]), tot_num_m*ZPURITYFACTOR/ZATIMESC/ZXSEC/tot_lum) + tge.SetPointError(0, 0, tot_num_m**.5*ZPURITYFACTOR/ZATIMESC/ZXSEC/tot_lum) + tge.SetName('lum_ratio') + tge.Write() + fout.Close() + +c1 = ROOT.TCanvas() +c1.SetTickx() +c1.SetTicky() +leg = ROOT.TLegend(0.6, 0.75, 0.89, 0.88) +lumiplot_m.Draw() +official_lum_zero.SetLineColor(ROOT.kRed) +official_lum_zero.Draw('SAME,HIST') +leg.AddEntry(lumiplot_m, 'Z luminosity') +leg.AddEntry(official_lum_zero, 'ATLAS preferred lumi', 'L') +leg.SetBorderSize(0) +leg.Draw() +c1.Print(os.path.join(args.plotdir, '%s_lumi.eps' % runname[4:])) +c1.Print(os.path.join(args.plotdir, '%s_lumi.png' % runname[4:])) + +c1.Clear() +lumiplot_m_ratio.Draw() +c1.Print(os.path.join(args.plotdir, '%s_lumi_ratio.eps' % runname[4:])) +c1.Print(os.path.join(args.plotdir, '%s_lumi_ratio.png' % runname[4:])) diff --git a/DataQuality/ZLumiScripts/scripts/dqt_zlumi_display_z_rate.py b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_display_z_rate.py new file mode 100755 index 000000000000..ca5211c06ebd --- /dev/null +++ b/DataQuality/ZLumiScripts/scripts/dqt_zlumi_display_z_rate.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + +import ROOT +import sys, os +import array +import argparse +import time + +parser = argparse.ArgumentParser() +parser.add_argument('infile', type=str, help='input HIST file') +parser.add_argument('--indir', type=str, help='Directory with input file', + default='') +parser.add_argument('--plotdir', type=str, help='Directory to dump plots', + default='plots') +args = parser.parse_args() + +# runnum = sys.argv[1].split('_')[0] +runnum = args.infile.split('_')[0] +# f = ROOT.TFile.Open(sys.argv[1], 'UPDATE') +f = ROOT.TFile.Open(os.path.join(args.indir, args.infile), 'UPDATE') +c1 = ROOT.TCanvas() +lumitree = f.lumitree +#get range +runs=[0,1]; fills=[0,1] +lumitree.Draw("run:lhcfill", "", "goff") +if lumitree.GetSelectedRows() > 0: + runs = list(lumitree.GetV1()[_] for _ in xrange(lumitree.GetSelectedRows())) + fills = list(lumitree.GetV2()[_] for _ in xrange(lumitree.GetSelectedRows())) +titlestr = '' +if min(fills)==max(fills): + titlestr += 'Fill %d' % min(fills) +if min(runs) == max(runs): + titlestr += ' Run %d' % min(runs) + +lumitree.Draw("zrate:lb+10:zratestat", "", "goff") +print 'Selected rows', lumitree.GetSelectedRows() +if lumitree.GetSelectedRows() > 0: + gr = ROOT.TGraphErrors(lumitree.GetSelectedRows(), lumitree.GetV2(), lumitree.GetV1(), ROOT.nullptr, lumitree.GetV3()) + gr.Draw("ap") + gr.GetHistogram().SetXTitle('LB') + gr.GetHistogram().SetYTitle('Fiducial Z yield/second') + gr.SetMarkerStyle(20) + gr.SetTitle('') + f.WriteTObject(gr, 'fid_z_rate') + c1.Update() + c1.Print(os.path.join(args.plotdir, '%s_fidyield.eps' % runnum)) + +# dump CSV +csvout = open(os.path.join(args.plotdir, '%s_zrate.csv' % runnum), 'w') +lumitree.Draw("zrate:lbwhen[0]:lbwhen[1]:lhcfill:lblive:offlumi", "", "goff,para") +timeformat = '%y/%m/%d %H:%M:%S' +#timeformat = '%m/%d %H:%M:%S' +for i in xrange(lumitree.GetSelectedRows()): + zrate = lumitree.GetV1()[i] + instlumi = lumitree.GetVal(5)[i] + livetime = lumitree.GetVal(4)[i] + print >>csvout, '%d, %s, %s, %6f, %6f, %4f, %6f' % (lumitree.GetV4()[i], + time.strftime(timeformat, time.gmtime(lumitree.GetV2()[i])), + time.strftime(timeformat, time.gmtime(lumitree.GetV3()[i])), + lumitree.GetV1()[i], + instlumi/1e3, + instlumi*livetime/1e3, + lumitree.GetV1()[i]*livetime + ) +csvout.close() + +lumitree.Draw("zlumi:lb+10:zlumistat", "", "goff") +if lumitree.GetSelectedRows() > 0: + gr = ROOT.TGraphErrors(lumitree.GetSelectedRows(), lumitree.GetV2(), lumitree.GetV1(), ROOT.nullptr, lumitree.GetV3()) + zlumi = list(lumitree.GetV1()[_] for _ in xrange(lumitree.GetSelectedRows())); + zlumierr = list(lumitree.GetV3()[_] for _ in xrange(lumitree.GetSelectedRows())) + gr.Draw("ap") + gr.GetHistogram().SetXTitle('LB') + gr.GetHistogram().SetYTitle('Luminosity (x10^{33})') + gr.SetMarkerStyle(20) + gr.SetTitle(titlestr) + f.WriteTObject(gr, 'z_lumi') + lumitree.Draw("offlumi:lb+10", "", "goff") + gr2 = ROOT.TGraphErrors(lumitree.GetSelectedRows(), lumitree.GetV2(), lumitree.GetV1()) + offlumi = list(lumitree.GetV1()[_] for _ in xrange(lumitree.GetSelectedRows())) + gr2.SetMarkerStyle(21) + gr2.SetMarkerSize(0.5) + gr2.SetMarkerColor(ROOT.kRed) + gr2.SetLineColor(ROOT.kRed) + gr2.Draw('same,l') + f.WriteTObject(gr2, 'official_lumi') + leg = ROOT.TLegend(0.65, 0.7, 0.89, 0.89) + leg.SetBorderSize(0) + leg.AddEntry(gr, 'Z luminosity', 'pl') + leg.AddEntry(gr2, 'Official', 'l') + leg.Draw() + c1.Update() + c1.Print(os.path.join(args.plotdir, '%s_lumicomp.eps' % runnum)) + f.WriteTObject(c1, 'lumicomp_canvas') + zlumirat = array.array('d', [_[0]/_[1] for _ in zip(zlumi, offlumi)]) + zlumiraterr = array.array('d', [_[0]/_[1] for _ in zip(zlumierr, offlumi)]) + gr3 = ROOT.TGraphErrors(lumitree.GetSelectedRows(), lumitree.GetV2(), zlumirat, ROOT.nullptr, zlumiraterr) + c1.Clear() + gr3.SetMarkerStyle(20) + gr3.Draw('ap') + gr3.SetTitle(titlestr) + gr3.GetHistogram().SetXTitle('LB') + gr3.GetHistogram().SetYTitle('Z Counting/Official Lumi') + c1.Print(os.path.join(args.plotdir, '%s_lumicompratio.eps' % runnum)) + f.WriteTObject(c1, 'lumicompratio_canvas') + -- GitLab From 96cb060538d21016d921db6f543d30db9ec64d1e Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Mon, 28 Jan 2019 12:24:14 +0100 Subject: [PATCH 165/192] Fix ATLASSIM-3987 by setting the random number service name correctly --- .../ISF_FastCaloSimServices/python/AdditionalConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/AdditionalConfig.py b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/AdditionalConfig.py index 2973f8d11c68..99b8dd896dbf 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/AdditionalConfig.py +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/python/AdditionalConfig.py @@ -716,7 +716,7 @@ def getTimedExtrapolator(name="TimedExtrapolator", **kwargs): def getDefaultFastShowerCellBuilderTool(name, **kwargs): from G4AtlasApps.SimFlags import simFlags from ISF_FastCaloSimServices.ISF_FastCaloSimJobProperties import ISF_FastCaloSimFlags - kwargs.setdefault("RandomService", simFlags.RandomSvc() ) + kwargs.setdefault("RandomService", simFlags.RandomSvcMT() ) kwargs.setdefault("RandomStreamName", ISF_FastCaloSimFlags.RandomStreamName() ) kwargs.setdefault("DoSimulWithInnerDetectorTruthOnly", True ) kwargs.setdefault("ID_cut_off_r", [1150] ) -- GitLab From 85c60fdd418ff74bf903147beb2d9c14a72e8f99 Mon Sep 17 00:00:00 2001 From: Siarhei Harkusha <Siarhei.Harkusha@cern.ch> Date: Mon, 28 Jan 2019 12:46:14 +0100 Subject: [PATCH 166/192] TileRecUtils: Use mutable container in TileRawCorrelatedNoise algorithm Some methods of Tile containers, which allow modifying the contents of containers, violate the const correctness. Clients of these methods are migrated to use Tile mutable containers, which allow modifying the contents of containers in controlled manner. So, TileRawCorrelatedNoise algorithm have been migrated to use Tile mutable digits container. --- .../TileRecUtils/src/TileRawCorrelatedNoise.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/TileCalorimeter/TileRecUtils/src/TileRawCorrelatedNoise.cxx b/TileCalorimeter/TileRecUtils/src/TileRawCorrelatedNoise.cxx index 849a288f9666..6667c817d11b 100644 --- a/TileCalorimeter/TileRecUtils/src/TileRawCorrelatedNoise.cxx +++ b/TileCalorimeter/TileRecUtils/src/TileRawCorrelatedNoise.cxx @@ -5,6 +5,7 @@ // Tile includes #include "TileRecUtils/TileRawCorrelatedNoise.h" #include "TileEvent/TileDigits.h" +#include "TileEvent/TileMutableDigitsContainer.h" #include "TileIdentifier/TileHWID.h" // Atlas includes @@ -382,8 +383,9 @@ StatusCode TileRawCorrelatedNoise::execute() { // create new container TileDigits* NewDigits[4][64][48]; - SG::WriteHandle<TileDigitsContainer> outputDigitsContainer(m_outputDigitsContainerKey); - ATH_CHECK( outputDigitsContainer.record( std::make_unique<TileDigitsContainer>() ) ); + + auto outputDigitsContainer = std::make_unique<TileMutableDigitsContainer>(); + ATH_CHECK( outputDigitsContainer->status() ); // fill new container for (int Ros = 1; Ros < 5; ++Ros) { @@ -403,6 +405,9 @@ StatusCode TileRawCorrelatedNoise::execute() { } } + SG::WriteHandle<TileDigitsContainer> outputDigitsCnt(m_outputDigitsContainerKey); + ATH_CHECK( outputDigitsCnt.record(std::move(outputDigitsContainer)) ); + ATH_MSG_DEBUG( "execute completed successfully" ); -- GitLab From 342fbf68e1f6ee8ec327239b0f71d032f77f8768 Mon Sep 17 00:00:00 2001 From: Scott Snyder <scott.snyder@cern.ch> Date: Mon, 28 Jan 2019 12:31:44 +0000 Subject: [PATCH 167/192] TAccept->AcceptData --- .../src/TrackSelectionTool.cxx | 134 ++++++++------- .../src/TrackSelectionTool.h | 14 +- .../src/TrackTruthSelectionTool.cxx | 48 +++--- .../src/TrackTruthSelectionTool.h | 14 +- .../src/dRMatchingTool.cxx | 82 +++++----- .../src/dRMatchingTool.h | 22 +-- .../PATCore/PATCore/AcceptData.h | 10 +- .../PATCore/PATCore/IAsgSelectionTool.h | 20 +-- .../Root/BTaggingSelectionTool.cxx | 73 +++++---- .../BTaggingSelectionTool.h | 29 ++-- .../IBTaggingSelectionTool.h | 15 +- .../MuonSelectorTools/IMuonSelectionTool.h | 10 +- .../MuonSelectorTools/MuonSelectionTool.h | 40 ++--- .../Root/MuonSelectionTool.cxx | 64 ++++---- .../AsgElectronRingerSelector.h | 95 ++++++----- .../RingerSelectorTools/ElectronTAccept.h | 10 +- .../IAsgElectronRingerSelector.h | 21 +-- .../tools/RingerCommonSelector.h | 9 +- .../Root/AsgElectronRingerSelector.cxx | 105 +++++------- .../Root/ElectronTAccept.cxx | 4 +- .../Root/tools/RingerCommonSelector.cxx | 14 +- .../TauAnalysisTools/Root/SelectionCuts.cxx | 153 ++++++++++++------ .../Root/TauSelectionTool.cxx | 31 ++-- .../TauAnalysisTools/ITauSelectionTool.h | 11 +- .../TauAnalysisTools/SelectionCuts.h | 55 +++++-- .../TauAnalysisTools/TauSelectionTool.h | 24 +-- .../src/CaloRingerElectronsReader.cxx | 16 +- 27 files changed, 583 insertions(+), 540 deletions(-) diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/TrackSelectionTool.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/TrackSelectionTool.cxx index c98f26891122..0994a3551d98 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/TrackSelectionTool.cxx +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/TrackSelectionTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ // InDetPhysValMonitoring includes @@ -157,10 +157,10 @@ TrackSelectionTool::initialize() { // Example. // if (m_maxEta>-1) m_cuts.push_back(std::make_pair("eta", "Cut on (absolute) particle eta")); - // Add cuts to the TAccept. + // Add cuts to the AcceptInfo. for (const auto& cut : m_cuts) { if (m_accept.addCut(cut.first, cut.second) < 0) { - ATH_MSG_ERROR("Failed to add cut " << cut.first << " because the TAccept object is full."); + ATH_MSG_ERROR("Failed to add cut " << cut.first << " because the AcceptInfo object is full."); return StatusCode::FAILURE; } } @@ -171,26 +171,23 @@ TrackSelectionTool::initialize() { return StatusCode::SUCCESS; } -const Root::TAccept& -TrackSelectionTool::getTAccept( ) const { +const asg::AcceptInfo& +TrackSelectionTool::getAcceptInfo( ) const { return m_accept; } -const Root::TAccept& +asg::AcceptData TrackSelectionTool::accept(const xAOD::IParticle* p) const { /*Is this perhaps supposed to be xAOD::TrackParticle? */ - // Reset the result. - m_accept.clear(); - // Check if this is a track. if (!p) { ATH_MSG_ERROR("accept(...) Function received a null pointer"); - return m_accept; + return asg::AcceptData (&m_accept); } if (p->type() != xAOD::Type::TrackParticle) { ATH_MSG_ERROR("accept(...) Function received a non-TrackParticle"); - return m_accept; + return asg::AcceptData (&m_accept); } // Cast it to a track (we have already checked its type so we do not have to dynamic_cast). @@ -200,10 +197,9 @@ TrackSelectionTool::accept(const xAOD::IParticle* p) const { return accept(track); } -const Root::TAccept& +asg::AcceptData TrackSelectionTool::accept(const xAOD::TrackParticle* p) const { - // Reset the TAccept. - m_accept.clear(); + asg::AcceptData acceptData (&m_accept); uint8_t iBLayerHits(0), iBLayerOutliers(0), iBLayerSplitHits(0), iBLayerSharedHits(0); uint8_t iPixHits(0), iPixHoles(0), iPixSharedHits(0), iPixOutliers(0), iPixContribLayers(0), iPixSplitHits(0), @@ -213,182 +209,182 @@ TrackSelectionTool::accept(const xAOD::TrackParticle* p) const { uint8_t iTRTHits(0), iTRTHTHits(0), iTRTOutliers(0), iTRTHTOutliers(0); if (!p->summaryValue(iBLayerHits, xAOD::numberOfInnermostPixelLayerHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iBLayerOutliers, xAOD::numberOfInnermostPixelLayerOutliers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iBLayerSharedHits, xAOD::numberOfInnermostPixelLayerSharedHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iBLayerSplitHits, xAOD::numberOfInnermostPixelLayerSplitHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixHits, xAOD::numberOfPixelHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixHoles, xAOD::numberOfPixelHoles)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixOutliers, xAOD::numberOfPixelOutliers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixContribLayers, xAOD::numberOfContribPixelLayers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixSharedHits, xAOD::numberOfPixelSharedHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixSplitHits, xAOD::numberOfPixelSplitHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iPixGangedHits, xAOD::numberOfGangedPixels)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iSCTHits, xAOD::numberOfSCTHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iSCTHoles, xAOD::numberOfSCTHoles)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iSCTOutliers, xAOD::numberOfSCTOutliers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iSCTDoubleHoles, xAOD::numberOfSCTDoubleHoles)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iSCTSharedHits, xAOD::numberOfSCTSharedHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iTRTOutliers, xAOD::numberOfTRTOutliers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iTRTHTOutliers, xAOD::numberOfTRTHighThresholdOutliers)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iTRTHits, xAOD::numberOfTRTHits)) { - return m_accept; + return acceptData; } if (!p->summaryValue(iTRTHTHits, xAOD::numberOfTRTHighThresholdHits)) { - return m_accept; + return acceptData; } // iSiHits = iPixHits + iSCTHits; // Check cuts. if (m_maxPt > -1) { - m_accept.setCutResult("maxPt", p->pt() < m_maxPt); + acceptData.setCutResult("maxPt", p->pt() < m_maxPt); } if (m_minPt > -1) { - m_accept.setCutResult("minPt", p->pt() > m_minPt); + acceptData.setCutResult("minPt", p->pt() > m_minPt); } if (m_maxEta > -1) { - m_accept.setCutResult("maxEta", p->pt() > 1E-07 ? std::fabs(p->eta()) < m_maxEta : false); + acceptData.setCutResult("maxEta", p->pt() > 1E-07 ? std::fabs(p->eta()) < m_maxEta : false); } if (m_minEta > -1) { - m_accept.setCutResult("minEta", p->pt() > 1E-07 ? std::fabs(p->eta()) > m_minEta : false); + acceptData.setCutResult("minEta", p->pt() > 1E-07 ? std::fabs(p->eta()) > m_minEta : false); } if (m_maxPrimaryImpact > -1) { - m_accept.setCutResult("maxPrimaryImpact", std::fabs(p->d0()) < m_maxPrimaryImpact); + acceptData.setCutResult("maxPrimaryImpact", std::fabs(p->d0()) < m_maxPrimaryImpact); } if (m_maxZImpact > -1) { - m_accept.setCutResult("maxZImpact", std::fabs(p->z0()) < m_maxZImpact); + acceptData.setCutResult("maxZImpact", std::fabs(p->z0()) < m_maxZImpact); } if (m_minPrimaryImpact > -1) { - m_accept.setCutResult("minPrimaryImpact", std::fabs(p->d0()) > m_minPrimaryImpact); + acceptData.setCutResult("minPrimaryImpact", std::fabs(p->d0()) > m_minPrimaryImpact); } if (m_minZImpact > -1) { - m_accept.setCutResult("minZImpact", std::fabs(p->z0()) > m_minZImpact); + acceptData.setCutResult("minZImpact", std::fabs(p->z0()) > m_minZImpact); } if (m_maxSecondaryImpact > -1) { - m_accept.setCutResult("maxSecondaryImpact", true /* nop */); + acceptData.setCutResult("maxSecondaryImpact", true /* nop */); } if (m_minSecondaryPt > -1) { - m_accept.setCutResult("minSecondaryPt", true /* nop */); + acceptData.setCutResult("minSecondaryPt", true /* nop */); } if (m_minClusters > -1) { - m_accept.setCutResult("minClusters", true /* nop */); + acceptData.setCutResult("minClusters", true /* nop */); } if (m_minSiNotShared > -1) { - m_accept.setCutResult("minSiNotShared", + acceptData.setCutResult("minSiNotShared", (iBLayerHits + iPixHits + iSCTHits - iBLayerSharedHits - iPixSharedHits - iSCTSharedHits) >= m_minSiNotShared); } if (m_maxShared > -1) { - m_accept.setCutResult("maxShared", iBLayerSharedHits + iPixSharedHits + iSCTSharedHits <= m_maxShared); + acceptData.setCutResult("maxShared", iBLayerSharedHits + iPixSharedHits + iSCTSharedHits <= m_maxShared); } if (m_minPixelHits > -1) { - m_accept.setCutResult("minPixelHits", iPixHits >= m_minPixelHits); + acceptData.setCutResult("minPixelHits", iPixHits >= m_minPixelHits); } if (m_maxHoles > -1) { - m_accept.setCutResult("maxHoles", iPixHoles + iSCTHoles <= m_maxHoles); + acceptData.setCutResult("maxHoles", iPixHoles + iSCTHoles <= m_maxHoles); } if (m_maxPixelHoles > -1) { - m_accept.setCutResult("maxPixelHoles", iPixHoles <= m_maxPixelHoles); + acceptData.setCutResult("maxPixelHoles", iPixHoles <= m_maxPixelHoles); } if (m_maxSctHoles > -1) { - m_accept.setCutResult("maxSctHoles", iSCTHoles <= m_maxSctHoles); + acceptData.setCutResult("maxSctHoles", iSCTHoles <= m_maxSctHoles); } if (m_maxDoubleHoles > -1) { - m_accept.setCutResult("maxDoubleHoles", iSCTDoubleHoles <= m_maxDoubleHoles); + acceptData.setCutResult("maxDoubleHoles", iSCTDoubleHoles <= m_maxDoubleHoles); } if (m_radMax > -1) { - m_accept.setCutResult("radMax", true /* nop */); + acceptData.setCutResult("radMax", true /* nop */); } if (m_nHolesMax > -1) { - m_accept.setCutResult("nHolesMax", true /* nop */); + acceptData.setCutResult("nHolesMax", true /* nop */); } if (m_nHolesGapMax > -1) { - m_accept.setCutResult("nHolesGapMax", true /* nop */); + acceptData.setCutResult("nHolesGapMax", true /* nop */); } if (m_seedFilterLevel > -1) { - m_accept.setCutResult("seedFilterLevel", true /* nop */); + acceptData.setCutResult("seedFilterLevel", true /* nop */); } if (m_maxTRTHighThresholdHits > -1) { - m_accept.setCutResult("maxTRTHighThresholdHits", iTRTHTHits <= m_maxTRTHighThresholdHits); + acceptData.setCutResult("maxTRTHighThresholdHits", iTRTHTHits <= m_maxTRTHighThresholdHits); } if (m_minTRTHighThresholdHits > -1) { - m_accept.setCutResult("minTRTHighThresholdHits", iTRTHTHits <= m_minTRTHighThresholdHits); + acceptData.setCutResult("minTRTHighThresholdHits", iTRTHTHits <= m_minTRTHighThresholdHits); } if (m_maxTRTHighThresholdOutliers > -1) { - m_accept.setCutResult("maxTRTHighThresholdOutliers", iTRTHTOutliers <= m_maxTRTHighThresholdOutliers); + acceptData.setCutResult("maxTRTHighThresholdOutliers", iTRTHTOutliers <= m_maxTRTHighThresholdOutliers); } if (m_maxSCTHits > -1) { - m_accept.setCutResult("maxSCTHits", iSCTHits <= m_maxSCTHits); + acceptData.setCutResult("maxSCTHits", iSCTHits <= m_maxSCTHits); } if (m_minSCTHits > -1) { - m_accept.setCutResult("minSCTHits", iSCTHits >= m_minSCTHits); + acceptData.setCutResult("minSCTHits", iSCTHits >= m_minSCTHits); } if (m_maxTRTOutliers > -1) { - m_accept.setCutResult("maxTRTOutliers", iTRTOutliers <= m_maxTRTOutliers); + acceptData.setCutResult("maxTRTOutliers", iTRTOutliers <= m_maxTRTOutliers); } if (m_maxBLayerSplitHits > -1) { - m_accept.setCutResult("maxBLayerSplitHits", iBLayerSplitHits <= m_maxBLayerSplitHits); + acceptData.setCutResult("maxBLayerSplitHits", iBLayerSplitHits <= m_maxBLayerSplitHits); } if (m_maxPixelOutliers > -1) { - m_accept.setCutResult("maxPixelOutliers", iPixOutliers <= m_maxPixelOutliers); + acceptData.setCutResult("maxPixelOutliers", iPixOutliers <= m_maxPixelOutliers); } // Example. - // if (m_maxEta>-1) m_accept.setCutResult("eta", (p->pt()>1e-7 ? (fabs(p->eta()) < m_maxEta) : false) ); + // if (m_maxEta>-1) acceptData.setCutResult("eta", (p->pt()>1e-7 ? (fabs(p->eta()) < m_maxEta) : false) ); // Book keep cuts for (const auto&